www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu VorwärtsFehlerKorrektur?


Autor: Schräger Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

gibt es eine Möglichkeit, die FEC "Anschaulich" zu erklären? Also
ohne das gesamte griechischen Alphabet, merkwürdige "Ringkörper"
und "Generator-Polynome"?

Gibt es nicht ein Modell, welches Nicht-Mathematikern, die auf
dem Level der einfache Kurvendiskussion stehengeblieben sind,
ungefähr verdeutlichen kann, was da im wesentlichen passiert?

Ich denke da an so einfache Modelle wie z.B. bei der Triangulation.
Wenn man das mal aufmalt oder sich bildlich vorstellt, wird einem
schnell klar, warum man durch Laufzeitunterschiede eine Position
im Raum bestimmen kann. Auch wenn man sowohl mathematisch als auch
informatisch natürlich noch Meilenweit davon entfernt ist, so etwas
zu implementieren.

Ich habe schon eine Menge über FEC gelesen und eigentlich nur zwei
Arten von Erklärungen gefunden: Der eine Teil der Erklärungen geht
kaum über die Wirkungsweise von FEC hinaus. Der andere Teil geht
sofort dermaßen ins mathematische Detail, dass einem der Kopf raucht.

Vielen Dank!

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz einfache Erklärung:

Man hat eine Anzahl von möglichen Datenblöcken, z.B. 8 Bit lange 
Textzeichen. Um Fehler bei der Übertragung dieser Daten erkennen und 
korrigieren zu können, ordnet man jedem Zeichen einen 50 Bit langen 
Codeblock zu, den man z.B. zufällig (!) wählt. Für jedes zu übertragende 
Zeichen sendet man den zugeordneten Codeblock. Bei der Übertragung 
werden ein paar Bit verfälscht, und die Codeblöcke kommen am Empfänger 
fehlerhaft an. Der Sender muss nun herausfinden, welches Zeichen wohl 
gemeint war. Dazu geht er einfach alle möglichen Zeichen durch, und 
schaut welches am besten mit dem empfangenen Block übereinstimmt.

Das ist das Grundprinzip der blockbasierten FEC. Der einzige Grund warum 
die Algorithmen so kompliziert werden ist, dass es in der Praxis bei 
mehreren tausend Bit langen Blöcken völlig unmöglich ist, alle möglichen 
Codeblöcke vorab in Sender und Empfänger zu speichern, und man deshalb 
"Tricks" braucht um das zu vermeiden.

Hilft das weiter? Oder wo genau hakt es?

Autor: Schräger Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke für Deine Hilfe...mir ging es - wenn ich mich selbst
richtig verstanden habe ;) - um Reed Solomon. Da war doch
irgendetwas mit aufeinanderfolgenden Nullstellen und 50 Bit
Overhead pro Byte ist ganz schön viel. Was Du da erklärt hast,
verstehe ich ja auf Anhieb, aber ich wollte eher wissen, ob man
es sich irgendwie mit Kurven und Nullstellen bildlich vorstellen
kann, wie bei n Bit pro Block genau r Bit Redundanz anhängt werden
und dann bis zu x fehlerhafte Bit erkannt und korrigiert werden.
Dabei sollte n deutlich größer sein als r und x natürlich möglichst
groß sein. Und da dachte ich mir, dass es dort mathematische Tricks
gibt, um durch Einfügen bestimmter Redundanz-Informationen auf
mathematischem Wege die Störung "herauszurechen", und zwar
weitestgehend unabhängig davon, an welcher Stelle im Block
die Störung auftritt.
In verschiedenen Skripten wird dann eiffrig von Stützstellen
und Lagrange-Interpolation geredet, aber davon verstehe
dann immer sogut wie nichts.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schräger Lukas wrote:
> danke für Deine Hilfe...mir ging es - wenn ich mich selbst
> richtig verstanden habe ;) - um Reed Solomon. Da war doch
> irgendetwas mit aufeinanderfolgenden Nullstellen und 50 Bit
> Overhead pro Byte ist ganz schön viel.

Das war doch nur ein Beispiel. Die wichtigste Erkenntnis bei der ganzen 
Sache ist, dass es im Prinzip immer das gleiche ist, egal ob 50, 8, 10 
oder n+r: man versucht den Block zu finden, aus dem der empfangene Block 
mit größter Wahrscheinlichkeit hervorgegangen ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.