- Rückwärtsfehlerkorrektur
-
Vorwärtsfehlerkorrektur (kurz FEC von engl. forward error correction, manchmal auch EDAC, für engl. error detection and correction) ist eine Technik, die dazu dient, die Fehlerrate bei der Speicherung oder der Übertragung digitaler Daten zu senken und stellt ein Fehlerkorrekturverfahren dar. Wenn in einem Übertragungssystem Vorwärtsfehlerkorrektur eingesetzt wird, kodiert der Sender die zu übertragenden Daten in redundanter Weise, so dass der Empfänger Übertragungsfehler ohne Rückfrage beim Sender erkennen und korrigieren kann. Vorwärtsfehlerkorrektur wird beispielsweise auf Compact Discs (CD) und im Mobilfunk eingesetzt.
Grundlegende Techniken
Vorwärtsfehlerkorrektur erfolgt im Rahmen der Kanalcodierung und ist ein Teil der Kodierungstheorie. Dem digitalen, und zunächst quellenkodierten Signal wird auf der Senderseite in einem Kanalencoder gezielt Redundanz hinzugefügt, die es dem Kanaldecoder im Empfänger ermöglichen soll, Fehler, die auf dem Übertragungskanal aufgetreten sind, zu korrigieren.
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.
FEC-Algorithmen lassen sich fundamental danach unterteilen, ob sie auf Datenblöcke fester Länge (Block-Code) oder auf einen fortlaufenden Datenstrom wie die Faltungs-Codes wirken. Beispiele von Block-Codes sind der einfache Hamming-Code oder die wesentlich weiter parametrisierbaren BCH-Codes und die verwandten Reed-Solomon-Codes. Faltungs-Codes werden oft mit dem Viterbi-Algorithmus dekodiert.
Verkettete FEC
Die FEC tritt häufig verkettet auf, die Daten durchlaufen dabei seriell mehrere Kodierschichten, und schon kodierte Abschnitte können mit zusätzlichen Algorithmen robuster gegen Störungen gemacht werden. Beim Digital Video Broadcasting (DVB) werden Blockcode (Reed-Solomon-Code), Faltungscode und Byte-Interleaving auf Ebene des Transportstroms mit 188 Byte Blöcken eingesetzt. Ähnliches gilt für die Kodierungen 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 Kanalkodierung 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 Kanalkodierung 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.
Ein weiterer Anwendungsfall ist die optische Datenübertragung in SDH-Netzen oder in Optischen Transportnetzen. Dort wird durch die Verwendung der fehlerkorrigierenden FEC der abnehmende Signal-Rausch-Abstand bei zunehmender Faserlänge kompensiert. Als besondere Funktion von optischen Transpondern mit FEC kann sich der Empfänger im Betrieb dynamisch an das Eingangssignal anpassen: Durch die Auswertung der Anzahl der korrigierbaren Fehler bei Alternierung verschiedener Betriebsparameter kann eine optimale FEC-Länge ermittelt werden. 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 und 9/10. Dieses n/m Schema bedeutet, dass für n Netto-Bits jeweils m Brutto-Bits aufgewendet werden müssen. Die Viterbi-FEC 9/10 wird bei der terrestrischen Ausstrahlung (DVB-T) nicht verwendet, da Funk sehr störanfällig ist.
Im Bereich der Datenkommunikation ist die Vorwärtsfehlerkorrektur einer Rückwärtsfehlerkorrektur bei sehr schnellen Netzen und langen Signallaufzeiten - etwa beim Zugang über weit entfernte, geostationären Erdsatelliten - vorzuziehen.
Wikimedia Foundation.