Vorwärtsfehlerkorrektur
Vorwärtsfehlerkorrektur (Forward Error Correction, FEC) ist eine Technik, die dazu dient, die Fehlerrate bei der Übertragung digitaler Daten zu senken. Wenn in einem Übertragungssystem Vorwärtsfehlerkorrektur eingesetzt wird, kodiert der Sender die zu übertragenden Daten in redundanter Weise, so dass der Empfänger Fehler erkennen und korrigieren kann. Vorwärtsfehlerkorrektur wird zum Beispiel auf Compact Disks (CD) und im Mobilfunk eingesetzt.
Grundlegene Techniken
Vorwärtsfehlerkorrektur erfolgt zumeist im Rahmen der Kanalcodierung.
Die Ergänzung der zu übertragenden Daten um eine Prüfsumme ist nicht hinreichend, um Vorwärtsfehlerkorrektur zu ermöglichen. Sie erlaubt es dem Empfänger lediglich, zu erkennen, dass ein Fehler aufgetreten ist; der Empfänger muss dann den Sender zu erneuter Übertragung des fehlerhaften Datenblocks auffordern. Ein solches Verfahren wird als "Rückwärtsfehlerkorrektur", "nachgefragte Korrekturübertragung" oder "automatische Wiederholungsanfrage" bezeichnet; es ist in ARQ-Protokollen (Automatic Repeat-reQuest) standardisiert und wird zum Beispiel im TCP-Protokoll eingesetzt.
Echte FEC-Algorithmen lassen sich fundamental danach unterteilen, ob sie auf Datenblöcke fester Länge (Block-Code) oder auf einen fortlaufenden Datenstrom (Faltungs-Code) wirken. Die wichtigsten Block-Codes sind BCH-Codes und/oder Reed-Solomon-Codes; Faltungs-Codes werden oft mit dem Viterbi-Algorithmus dekodiert.
Verkettete FEC
Die FEC tritt häufig verkettet auf (Codierschichten), und schon codierte Abschnitte können mit zusätzlichen Algorithmen robuster gegen Störungen gemacht werden. Beim Digital Video Broadcasting (DVB) werden Blockcode (Reed-Solomon), Faltungscode und Byte-Interleaving auf Ebene des Transportstroms mit 188 Byte Blöcken eingesetzt. Ähnliches gilt für die Codierungen im Global System for Mobile Communications (GSM), die die 260 Bit Blöcke des Sprachcodecs mit Blockcode und Faltungscode auf 456 Bit erweitern, und mit zweifachem Interleaving gegen Burstfehler sichern.
Neben den FEC zur Kanalcodierung treten FEC zur Blocksicherung auf weiteren Ebenen auf. Der übertragene MPEG-Datenstrom eines DVB-Kanals enthält selbst längere Pakete, die mit FEC Bytes eigenständig gesichert sein können, unabhängig vom Übertragungsmedium. Ähnliches tritt für komprimierende Sprachcodecs auf, die neben Fehlererkennung auch Fehlerkorrektur enthalten können. Auf dieser Ebene treten fast nur noch FEC Blockcodes auf, die zusätzlich berechneten FEC Bytes werden hier in die Paketstruktur eingefügt.
Anwendungen
Die Fehlerkorrektur kann in der Kanalcodierung auf störungsreichen Übertragungstrecken wie Funk eingesetzt werden, um entstandene Fehler direkt nach der Übertragung auszugleichen. Je häufiger Fehler bei der Übertragung auftreten können, umso höhere Redundanz wird bei der Auswahl des FEC-Verfahrens gewählt. Entsprechend werden die angefügten FEC-Daten größer, was die Bandbreite einer Übertragungsstrecke für die eigentlichen Nutzdaten entsprechend senkt.
Bei DVB ist die Viterbi FEC für jeden übertragenen Sender wählbar, die möglichen Werte sind FEC 1/2, 2/3, 3/4, 5/6, 7/8. Dieses n/m Schema bedeutet, dass für n Netto-Bits jeweils m Brutto-Bits aufgewendet werden müssen. Die beiden letzten treten bei der terrestrischen Ausstrahlung (DVB-T) nicht auf, da Funk sehr störanfällig ist.
Weiterführende Informationen
Weblinks
- Feature der American Mathematical Society uninformativer Trivialtext, aber brauchbare Bibliographie