Difference between revisions of "Aufgaben:Exercise 2.9: Huffman Decoding after Errors"
From LNTwww
Line 65: | Line 65: | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' Richtig ist der <u> | + | '''(1)''' Richtig ist der <u>Lösungsvorschlag 3</u>: |
+ | *Nachfolgend sehen Sie die durch Hochkommata eingeteilte Codesymbolfolge: | ||
+ | :$$\langle c_\nu \rangle = \rm \langle 1'01'001'000'1'1'000'01'001'1 \rangle .$$ | ||
+ | *Diese gehört zur folgenden Quellensymbolfolge: | ||
+ | :$$\langle c_\nu \rangle = \rm \langle ABCDAADBCA \rangle .$$ | ||
− | |||
− | + | '''(2)''' Richtig ist der <u>Lösungsvorschlag 1</u>: | |
+ | *Mit einem Bitfehler an Position 1 erhält man für die Empfangsfolge: | ||
+ | :$$\langle r_\nu \rangle = \rm \langle 00100100011000010011 \rangle .$$ | ||
+ | *Die Hochkommata verdeutlichen die einzelnen Blöcke der Decodierung: | ||
+ | :$$\langle r_\nu \rangle = \rm \langle 001'001'000'1'1'000'01'001'1 \rangle .$$ | ||
+ | *Dies führt zur folgenden Sinkensymbolfolge: | ||
+ | :$$\langle v_\nu \rangle = \rm \langle CCDAADBCA \rangle .$$ | ||
− | + | Interpretation: | |
+ | *$\rm AB$ wird durch $\rm C$ ersetzt, der weitere Text $\rm CDAADBCA$ ist unverändert, allerdings um eine Position verschoben. | ||
+ | *Vergleicht man jedoch die ersten neun Symbole des Originals mit der Decodierung <i>Stelle für Stelle</i>, wie es ein Automat machen würde, so erkennt man acht unterschiedliche Symbole. | ||
'''(3)''' Richtig sind die <u>Antworten 1 und 3</u>: | '''(3)''' Richtig sind die <u>Antworten 1 und 3</u>: | ||
− | * Durch einen zusätzlichen Bitfehler an Position 2 (<b>0</b> → <b>1</b>) wird | + | * Durch einen zusätzlichen Bitfehler an Position 2 (<b>0</b> → <b>1</b>) wird $\rm AB$ zu $\rm BA$ verfälscht, aber alle weiteren Symbole wieder richtig erkannt. |
− | * Ein zusätzlicher Bitfehler an Position 15 (<b>0</b> → <b>1</b>) führt zu | + | * Ein zusätzlicher Bitfehler an Position 15 (<b>0</b> → <b>1</b>) führt zu |
− | * Durch den ersten Bitfehler an Position 1 wird | + | :$$\langle r_\nu \rangle = \rm \langle \underline{0}01'001'000'1'1'000'\underline{1}'1'001'1 \rangle .$$ |
+ | :$$\langle v_\nu \rangle = \rm \langle \underline{C}CDAAD\underline{AA}CA \rangle .$$ | ||
+ | |||
+ | ** Durch den ersten Bitfehler an Position 1 wird $\rm AB$ in $\rm C$ verfälscht, also ein Zeichen „verschluckt”. | ||
+ | *Ein weiterer Bitfehler an Position 10 macht aus <b>AA</b> ein <b>B</b>. Insgesamt verschluckt so der Decoder zwei Zeichen. Alle nachfolgend decodierten Zeichen stehen nicht an der richtigen Position. | ||
+ | Das neunte und das zehnte Symbol (beide grün markiert) und eventuell weitere Symbole werden richtig erkannt. | ||
Revision as of 16:22, 28 September 2018
Wir betrachten die Huffman–Codierung gemäß folgender Zuordnung:
- $\rm A$ → 1, $\rm B$ → 01, $\rm C$ → 001, $\rm D$ → 000.
Die Codierung nach Huffman ist stets verlustlos. Das bedeutet:
- Decodiert man die Codesymbolfolge $\langle c_\nu \rangle$ nach dem Huffman–Codierer sofort wieder, so ist das Decodierergebnis $\langle v_\nu \rangle$ gleich der Quellensymbolfolge $\langle q_\nu \rangle$.
- Stimmt dagegen die Empfangsfolge $\langle r_\nu \rangle$ aufgrund von Fehlern bei der Übertragung (0 → 1, 1 → 0) mit der erzeugten Codefolge $\langle c_\nu \rangle$ 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.
Hinweise:
- Die Aufgabe gehört zum Kapitel Entropiecodierung nach Huffman.
- Insbesondere wird auf die Seite Einfluss von Übertragungsfehlern auf die Decodierung Bezug genommen.
Fragebogen
Musterlösung
(1) Richtig ist der Lösungsvorschlag 3:
- Nachfolgend sehen Sie die durch Hochkommata eingeteilte Codesymbolfolge:
- $$\langle c_\nu \rangle = \rm \langle 1'01'001'000'1'1'000'01'001'1 \rangle .$$
- Diese gehört zur folgenden Quellensymbolfolge:
- $$\langle c_\nu \rangle = \rm \langle ABCDAADBCA \rangle .$$
(2) Richtig ist der Lösungsvorschlag 1:
- Mit einem Bitfehler an Position 1 erhält man für die Empfangsfolge:
- $$\langle r_\nu \rangle = \rm \langle 00100100011000010011 \rangle .$$
- Die Hochkommata verdeutlichen die einzelnen Blöcke der Decodierung:
- $$\langle r_\nu \rangle = \rm \langle 001'001'000'1'1'000'01'001'1 \rangle .$$
- Dies führt zur folgenden Sinkensymbolfolge:
- $$\langle v_\nu \rangle = \rm \langle CCDAADBCA \rangle .$$
Interpretation:
- $\rm AB$ wird durch $\rm C$ ersetzt, der weitere Text $\rm 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 $\rm AB$ zu $\rm BA$ verfälscht, aber alle weiteren Symbole wieder richtig erkannt.
- Ein zusätzlicher Bitfehler an Position 15 (0 → 1) führt zu
- $$\langle r_\nu \rangle = \rm \langle \underline{0}01'001'000'1'1'000'\underline{1}'1'001'1 \rangle .$$
- $$\langle v_\nu \rangle = \rm \langle \underline{C}CDAAD\underline{AA}CA \rangle .$$
- Durch den ersten Bitfehler an Position 1 wird $\rm AB$ in $\rm 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. Alle nachfolgend decodierten Zeichen stehen nicht an der richtigen Position.
Das neunte und das zehnte Symbol (beide grün markiert) und eventuell weitere Symbole werden richtig erkannt.
(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.