Difference between revisions of "Aufgaben:Exercise 2.9: Huffman Decoding after Errors"

From LNTwww
m (Textersetzung - „*Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein.“ durch „ “)
Line 3: Line 3:
 
}}
 
}}
  
[[File:P_ID2464__Inf_A_2_9.png|right|Übertragungssystem mit Huffman-Codierung]]
+
[[File:P_ID2464__Inf_A_2_9.png|right|frame|System mit Huffman-Code]]
 
Wir betrachten die Huffman–Codierung gemäß folgender Zuordnung:
 
Wir betrachten die Huffman–Codierung gemäß folgender Zuordnung:
  
:<b>A</b> &#8594; <b>1</b>, <b>B</b> &#8594; <b>01</b>, <b>C</b> &#8594; <b>001</b>, <b>D</b> &#8594; <b>000</b>.
+
: &nbsp; $\rm A$ &#8594; <b>1</b>, &nbsp; &nbsp; $\rm B$ &#8594; <b>01</b>, &nbsp; &nbsp; $\rm C$ &#8594; <b>001</b>, &nbsp; &nbsp; $\rm D$ &#8594; <b>000</b>.
 +
 
 +
Die Codierung nach Huffman ist stets <i>verlustlos</i>. Das bedeutet:
 +
*Decodiert man die Codesymbolfolge $\langle c_\nu \rangle$ nach dem Huffman&ndash;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 (<b>0</b> &#8594; <b>1</b>, <b>1</b> &#8594; &nbsp; <b>0</b>) 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.
 +
 
  
Die Codierung nach Huffman ist stets <i>verlustlos</i>. Das bedeutet: Decodiert man die Codesymbolfolge $\langle c_\nu \rangle$ nach dem Huffman&ndash;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 (<b>0</b> &#8594; <b>1</b>, <b>1</b> &#8594; <b>0</b>) 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.
 
  
  
Line 23: Line 28:
  
 
<quiz display=simple>
 
<quiz display=simple>
{Wir betrachten die Codesymbolfolge <b>10100100011000010011</b>. Wie lautet die dazugehörige Quellensymbolfolge?
+
{Wir betrachten die Codesymbolfolge $\langle c_\nu \rangle = \rm \langle 10100100011000010011 \rangle$. Wie lautet die dazugehörige Quellensymbolfolge?
|type="[]"}
+
|type="()"}
- <b>CCDAADBCA</b>,
+
- $\langle q_\nu \rangle = \rm \langle \rm CCDAADBCA \rangle$,
- <b>ABDDAADBCA</b>,
+
- $\langle q_\nu \rangle = \rm \langle\rm ABDDAADBCA \rangle$,
+ <b>ABCDAADBCA</b>,
+
+ $\langle q_\nu \rangle = \rm \langle\rm ABCDAADBCA \rangle$,
 
- Anders als die drei oben genannten.
 
- Anders als die drei oben genannten.
  
  
{Welche Folge ergibt sich nach der Decodierung, wenn das erste Bit verfälscht wird (<b>1</b> &#8594; <b>0</b>)? <br> &#8658; &nbsp; Anliegende Empfangsfolge <b><font color="#cc0000"><span style="font-weight: bold;">0</span></font>0100100011000010011</b>.
+
{Welche Folge $\langle v_\nu \rangle$ ergibt sich nach der Decodierung, wenn das erste Bit verfälscht wird $\rm (1 &#8594; 0)$? <br> $\langle c_\nu \rangle = \rm \langle 10100100011000010011 \rangle$ &nbsp; &rArr; &nbsp; $\langle r_\nu \rangle = \rm \langle \underline{0}0100100011000010011 \rangle$.
 
|type="[]"}
 
|type="[]"}
+ <b>CCDAADBCA</b>,
+
+ $\langle v_\nu \rangle = \rm \langle \rm CCDAADBCA \rangle$,
- <b>ABDDAADBCA</b>,
+
- $\langle v_\nu \rangle = \rm \langle\rm ABDDAADBCA \rangle$,
- <b>ABCDAADBCA</b>,
+
- $\langle v_\nu \rangle = \rm \langle\rm ABCDAADBCA \rangle$,
 
- Anders als die drei genannten.
 
- Anders als die drei genannten.
  
Line 47: Line 52:
  
  
{Welche Folge ergibt sich nach der Decodierung, wenn das sechste Bit verfälscht wird (<b>1</b> &#8594; <b>0</b>)? <br>&#8658; &nbsp; Anliegende Empfangsfolge <b>10100<font color="#cc0000"><span style="font-weight: bold;">0</span></font>00011000010011</b>.
+
{Welche Folge $\langle v_\nu \rangle$ ergibt sich nach der Decodierung, wenn das sechste Bit verfälscht wird (<b>1</b> &#8594; <b>0</b>)? <br>$\langle c_\nu \rangle = \rm \langle 10100100011000010011 \rangle$ &nbsp; &rArr; &nbsp; $\langle r_\nu \rangle = \rm \langle 10100\underline{0}00011000010011 \rangle$.
 
|type="[]"}
 
|type="[]"}
- <b>CCDAADBCA</b>,
+
- $\langle v_\nu \rangle = \rm \langle \rm CCDAADBCA \rangle$,
+ <b>ABDDAADBCA</b>,
+
+ $\langle v_\nu \rangle = \rm \langle\rm ABDDAADBCA \rangle$,
- <b>ABCDAADBCA</b>,
+
- $\langle v_\nu \rangle = \rm \langle\rm ABCDAADBCA \rangle$,
 
- Anders als die drei genannten.
 
- Anders als die drei genannten.
  

Revision as of 15:41, 28 September 2018

System mit Huffman-Code

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 (01, 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:



Fragebogen

1

Wir betrachten die Codesymbolfolge $\langle c_\nu \rangle = \rm \langle 10100100011000010011 \rangle$. Wie lautet die dazugehörige Quellensymbolfolge?

$\langle q_\nu \rangle = \rm \langle \rm CCDAADBCA \rangle$,
$\langle q_\nu \rangle = \rm \langle\rm ABDDAADBCA \rangle$,
$\langle q_\nu \rangle = \rm \langle\rm ABCDAADBCA \rangle$,
Anders als die drei oben genannten.

2

Welche Folge $\langle v_\nu \rangle$ ergibt sich nach der Decodierung, wenn das erste Bit verfälscht wird $\rm (1 → 0)$?
$\langle c_\nu \rangle = \rm \langle 10100100011000010011 \rangle$   ⇒   $\langle r_\nu \rangle = \rm \langle \underline{0}0100100011000010011 \rangle$.

$\langle v_\nu \rangle = \rm \langle \rm CCDAADBCA \rangle$,
$\langle v_\nu \rangle = \rm \langle\rm ABDDAADBCA \rangle$,
$\langle v_\nu \rangle = \rm \langle\rm ABCDAADBCA \rangle$,
Anders als die drei genannten.

3

Ist es möglich, dass durch einen weiteren Bitfehler die späteren Symbole alle wieder richtig decodiert werden?

Ja, durch einen zweiten Bitfehler an Position 2.
Ja, durch einen zweiten Bitfehler an Position 10.
Ja, durch einen zweiten Bitfehler an Position 15.
Nein.

4

Welche Folge $\langle v_\nu \rangle$ ergibt sich nach der Decodierung, wenn das sechste Bit verfälscht wird (10)?
$\langle c_\nu \rangle = \rm \langle 10100100011000010011 \rangle$   ⇒   $\langle r_\nu \rangle = \rm \langle 10100\underline{0}00011000010011 \rangle$.

$\langle v_\nu \rangle = \rm \langle \rm CCDAADBCA \rangle$,
$\langle v_\nu \rangle = \rm \langle\rm ABDDAADBCA \rangle$,
$\langle v_\nu \rangle = \rm \langle\rm ABCDAADBCA \rangle$,
Anders als die drei genannten.


Musterlösung

(1)  Richtig ist der Vorschlag 3. Nachfolgend sehen Sie die durch Hochkommata eingeteilte Codesymbolfolge 1′01′001′000′1′1′000′01′001′1   ⇒   Quellensymbolfolge ABCDAADBCA.


(2)  Mit einem Bitfehler an Position 1 erhält man das folgende Decodierergebnis:

001′001′000′1′1′000′01′001′1   ⇒   CCDAADBCALö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 (01) wird AB zu BA verfälscht, aber alle weiteren Symbole wieder richtig erkannt.
  • Ein zusätzlicher Bitfehler an Position 15 (01) 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. Alle nachfolgend decodierten Zeichen stehen nicht an der richtigen Position.


(4)  Aus 001 wird 000. Das bewirkt, dass insgesamt nur ein Fehler CD entsteht:

    101′000′000′1′1′000′01′001′1   ⇒   ABDDAADBCA   ⇒   Lösungsvorschlag 2.