Exercise 2.9: Huffman Decoding after Errors
Wir betrachten die Huffman–Codierung gemäß folgender Zuordnung:
- A → 1, B → 01, C → 001, D → 000.
Die Codierung nach Huffman ist stets verlustlos. Das bedeutet: Decodiert man die Codesymbolfolge 〈cν〉 nach dem Huffman–Codierer sofort wieder, so ist das Decodierergebnis 〈υν〉 gleich der Quellensymbolfolge 〈qν〉.
Stimmt dagegen die Empfangsfolge 〈rν〉 aufgrund von Fehlern bei der Übertragung (0 → 1, 1 → 0) mit der erzeugten Codefolge 〈cν〉 nicht überein, so kann es zu einer Fehlerfortpflanzung kommen. Ein einziger Bitfehler kann dann dazu führen, dass (nahezu) alle nachfolgenden Zeichen falsch decodiert werden.
Hinweis: Die Aufgabe bezieht sich auf die Seite 5 von Kapitel 2.3.
Fragebogen
Musterlösung
2. Mit einem Bitfehler an Position 1 erhält man das folgende Decodierergebnis:
- 001′001′000′1′1′000′01′001′1 ⇒ CCDAADBCA ⇒ Lösungsvorschlag 1.
Das heißt: AB wird durch C ersetzt, der weitere Text CDAADBCA ist unverändert, allerdings um eine Position verschoben. Vergleicht man jedoch die ersten neun Symbole des Originals mit der Decodierung Stelle für Stelle, wie es ein Automat machen würde, so erkennt man acht unterschiedliche Symbole.
3. Richtig sind die Antworten 1 und 3:
- Durch einen zusätzlichen Bitfehler an Position 2 (0 → 1) wird AB zu BA verfälscht, aber alle weiteren Symbole wieder richtig erkannt.
- Ein zusätzlicher Bitfehler an Position 15 (0 → 1) führt zu 001′001′000′1′1′000′1′ 1′ 001′ 1 und damit zur Sinkensymbolfolge CCDAADAACA. Das neunte und das zehnte Symbol (beide grün markiert) und eventuell weitere Symbole werden richtig erkannt.
- Durch den ersten Bitfehler an Position 1 wird AB in C verfälscht, also ein Zeichen „verschluckt”. Ein weiterer Bitfehler an Position 10 macht aus AA ein B. Insgesamt verschluckt so der Decoder zwei Zeichen, und alle nachfolgend decodierten Zeichen stehen nicht an der richtigen Position.
4. Aus 001 wird 000. Das bewirkt, dass insgesamt nur ein Fehler C → D entsteht:
101′000′000′1′1′000′01′001′1 ⇒ ABDDAADBCA ⇒ Lösungsvorschlag 2.