Kanalkodierung
aus Wikipedia, der freien Enzyklopädie
Als Kanalkodierung bezeichnet man in der Nachrichtentechnik das Verfahren, digitale Daten bei der Übertragung über gestörte Kanäle durch Hinzufügen von Fehlererkennungs- und Korrekturzeichen gegen Übertragungsfehler zu schützen.
Im Gegensatz dazu reduziert die Quellenkodierung die Ursprungsmenge digitaler Daten, indem es Irrelevanzen und Redundanzen entfernt.
Die mathematischen Grundlagen für die Kanalcodierung stellt die Kodierungstheorie bereit.
Inhaltsverzeichnis |
[Bearbeiten] Verfahren
Die Kanalkodierung fügt den Daten am Eingang eines Übertragungskanals Redundanzzeichen hinzu und dekodiert die Daten an seinem Ausgang. Wenn die Zusatzinformationen lediglich auf einen Fehler hindeuten und eine Neuübertragung der Daten erfordern, spricht man von Rückwärtsfehlerkorrektur. Genügt die Redundanzinformation, den Fehler zu korrigieren, handelt es sich um eine Vorwärtsfehlerkorrektur. Eine effizientere Kanalkodierung kann das zur Erreichung einer bestimmten Datenübertragungsrate erforderliche Signal-Rausch-Verhältnis um mehrere dB senken.
Ein Datencode wird durch seine Rate gekennzeichnet: R = k / n, wobei k die Anzahl der Zeichen eines Wortes am Eingang des Kodierers ist und n die Anzahl am Ausgang. Es werden also k Symbole am Eingang auf n Symbole am Ausgang abgebildet. Eine kleine Rate (großes n) bedeutet einen höheren Anteil an der Datenübertragungsrate. Durch geschicktes Verketten von Codes und das Streuen von Fehlern kann diese Rate oft erheblich vergrößert werden. Die Codes einer Compact Disc erreichen zum Beispiel eine Rate von 3 / 4.
[Bearbeiten] Kanalcodes
Kennt man die Fehlerarten, die in einem Übertragungskanal auftreten, kann man verschiedene Codes konstruieren, die die häufigen Fehlerarten gut, weniger häufigere Fehlerarten weniger gut korrigieren können. Die folgende Abbildung zeigt eine Übersicht häufig verwendeter Codeklassen.
- Blockcodes
- Faltungscodes
- Ungerboeck-Code
- Reed-Muller-Code
- Hamming-Code
- Reed-Solomon-Code (z.B. verwendet in bestimmten RAID-Systemen)
- Fire-Code
- BCH-Code
- Golay-Code
- Low-Density-Parity-Check-Code
- Turbo-Code wird eine zwei-, drei- oder allgemein mehrdimensionale Verkettung von unterschiedlichen Kanalcodes mit mehrfachen Wiederholungen (Rückkopplungen) genannt. Durch die mehrdimensionale Verschränkung von einfachen Basiskanalcodes, wie beispielsweise einem Hamming-Code, können meist bessere Gesamtergebnisse als bei klassischen Faltungscodes erzielt werden. Turbo-Codes zählen zu jenen Kanalcodes welche den theoretischen Limit der (Shannon-Grenze) am nächsten kommen.
[Bearbeiten] Beispiele
- Kanalfehler abhängig von Quellkodierung
- Die Festlegung eines Kodierungsverfahren berücksichtigt sowohl die Qualitätsansprüche an das zu übertragende Signal als auch die Eigenschaften des Kanals. Wird beispielsweise bei einem unkomprimiert übertragenem Fernsehsignal ein Bit auf dem Übertragungsweg verfälscht, so ändert sich nur ein Pixel eines (Halb-)Bildes. Tritt der gleiche Fehler bei einem komprimierten MPEG-codierten Fernsehsignal auf, verfälscht er einen ganzen Makroblock von ?? Bildpunkten innerhalb von ?? Bildfolgen.
- Beispiel Rückwärtsfehlerkorrektur
- Hinzufügen von Paritätsbits zu einem Datenwort.
- Beispiel Rückwärts/Vorwärtsfehlerkorrektur
- ISBN-Code: Bei fehlernder Übereinstimmung mit der Prüfziffer kommen nur wenige ISBN-Codes als korrekte Werte in Frage.
- Beispiel Vorwärtsfehlerkorrektur
- Angabe von Postleitzahl und Ort: eine falsch geschriebene Ortsangabe kann anhand der Postleitzahl korrigiert werden. Ebenso werden Zahlendreher in der Postleitzahl durch den Abgleich mit dem Namen erkannt.
- Beispiel GSM
- Das Telefon begrenzt den Frequenzbereich der Sprache auf ca. 4 kHz. Bei einer Abtastung mit 8 kHz bei einer Dynamik von 8 bit fällt ein Datenstrom von 64 kbit/s. Die GSM-Quellcodierung reduziert ihn auf ca. 13 kbit/s. Um die Bitfehlerhäufigkeit bei der störanfälligen Funkübertragung zu begrenzen, werden dem Datenstrom Redundanzen hinzugefügt. Die Kanalkodierung erhöht die Bitrate auf 22,8 kbit/s.