Aufgaben:Aufgabe 2.7Z: Huffman-Codierung für Zweiertupel einer Ternärquelle: Unterschied zwischen den Versionen
Zeile 47: | Zeile 47: | ||
|type="[]"} | |type="[]"} | ||
+ $L_{\rm M}$ fällt monoton mit steigendem $k$ ab. | + $L_{\rm M}$ fällt monoton mit steigendem $k$ ab. | ||
− | - $L_{\rm M}$ändert sich nicht, wenn man $k$ erhöht. | + | - $L_{\rm M} $ändert sich nicht, wenn man $k$ erhöht. |
- Für $k= 3$ erhält man $L_{\rm M} = 1.05 \ \rm bit/Quellensymbol$. | - Für $k= 3$ erhält man $L_{\rm M} = 1.05 \ \rm bit/Quellensymbol$. | ||
Zeile 56: | Zeile 56: | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | + | '''(1)''' Die mittlere Codewortlänge ergibt sich mit <i>p</i><sub>X</sub> = 0.7, <i>L</i><sub>X</sub> = 1, <i>p</i><sub>Y</sub> = 0.2, <i>L</i><sub>Y</sub> = 2, <i>p</i><sub>Z</sub> = 0.1, <i>L</i><sub>Z</sub> = 2 zu | |
:$$L_{\rm M} = p_{\rm X} \cdot 1 + (p_{\rm Y} + p_{\rm Z}) \cdot 2 \hspace{0.15cm}\underline{= 1.3\,\,{\rm bit/Quellensymbol}}\hspace{0.05cm}. $$ | :$$L_{\rm M} = p_{\rm X} \cdot 1 + (p_{\rm Y} + p_{\rm Z}) \cdot 2 \hspace{0.15cm}\underline{= 1.3\,\,{\rm bit/Quellensymbol}}\hspace{0.05cm}. $$ | ||
Dieser Wert liegt noch deutlich über der Quellenentropie <i>H</i> = 1.157 bit/Quellensymbol. | Dieser Wert liegt noch deutlich über der Quellenentropie <i>H</i> = 1.157 bit/Quellensymbol. | ||
− | + | '''(2)''' Es gibt <i>M</i><sup> </sup>′ = <i>M</i><sup> 2</sup> = 3<sup>2</sup> = 9 Zweiertupel mit folgenden Wahrscheinlichkeiten: | |
− | : <i>p</i><sub>A</sub> = Pr(<b>XX</b>) <u>= 0.49</u>, <i>p</i><sub>B</sub> = Pr(<b>XY</b>) <u>= 0.14</u>, <i>p</i><sub>C</sub> = Pr(<b>XZ</b>) <u>= 0.07</u>, | + | : <i>p</i><sub>A</sub> = Pr(<b>XX</b>) <u>= 0.49</u>, <i>p</i><sub>B</sub> = Pr(<b>XY</b>) <u>= 0.14</u>, <i>p</i><sub>C</sub> = Pr(<b>XZ</b>) <u>= 0.07</u>, |
+ | : <i>p</i><sub>D</sub> = Pr(<b>YX</b>) = 0.14, <i>p</i><sub>E</sub> = Pr(<b>YY</b>) = 0.04, <i>p</i><sub>F</sub> = Pr(<b>YZ</b>) = 0.02, | ||
+ | : <i>p</i><sub>G</sub> = Pr(<b>YX</b>) = 0.07, <i>p</i><sub>H</sub> = Pr(<b>YY</b>) = 0.02, <i>p</i><sub>I</sub> = Pr(<b>YZ</b>) = 0.01. | ||
− | |||
− | + | '''(3)''' Die Grafik zeigt den Huffman–Baum für die Anwendung mit <i>k</i> = 2. | |
− | |||
[[Datei:P_ID2459__Inf_Z_2_7c.png|Huffman–Baum für Ternärquelle und Zweiertupel]] | [[Datei:P_ID2459__Inf_Z_2_7c.png|Huffman–Baum für Ternärquelle und Zweiertupel]] | ||
+ | |||
Damit erhält man | Damit erhält man | ||
+ | * für die einzelnen Zweiertupels folgende Binärcodierungen: <br> | ||
+ | : <b>XX</b> = <b>A</b> → <b>0</b>, <b>XY</b> = <b>B</b> → <b>111</b>, <b>XZ</b> = <b>C</b> → <b>1011</b>, <b>YX</b> = <b>D</b> → <b>110</b>, <b>YY</b> = <b>E</b> → <b>1000</b>, <br> | ||
+ | : <b>YZ</b> = <b>F</b> → <b>10010</b>, <b>ZX</b> = <b>G</b> → <b>1010</b>, <b>ZY</b> = <b>H</b> → <b>100111</b>, <b>ZZ</b> = <b>I</b> → <b>100110</b> . | ||
− | + | * für die mittlere Codewortlänge: | |
− | + | :$$L_{\rm M}' =0.49 \cdot 1 + (0.14 + 0.14) \cdot 3 + (0.07 + 0.04 + 0.07) \cdot 4 + 0.02 \cdot 5 + (0.02 + 0.01) \cdot 6 = 2.33\,\,{\rm bit/Zweiertupel}$$ | |
− | |||
− | |||
− | |||
− | :$$L_{\rm M}' | ||
− | |||
:$$\Rightarrow\hspace{0.3cm}L_{\rm M} = {L_{\rm M}'}/{2}\hspace{0.15cm}\underline{ = 1.165\,\,{\rm bit/Quellensymbol}}\hspace{0.05cm}.$$ | :$$\Rightarrow\hspace{0.3cm}L_{\rm M} = {L_{\rm M}'}/{2}\hspace{0.15cm}\underline{ = 1.165\,\,{\rm bit/Quellensymbol}}\hspace{0.05cm}.$$ | ||
− | + | '''(4)''' Richtig ist <u>Aussage 1</u>, auch wenn <i>L</i><sub>M</sub> mit wachsendem <i>k</i> nur sehr langsam abfällt. | |
− | + | * Die letzte Aussage ist falsch, da <i>L</i><sub>M</sub> auch für <i>k</i> → ∞ nicht kleiner sein kann als <i>H</i> = 1.157 bit/Quellensymbol. | |
− | + | * Aber auch die zweite Aussage ist nicht unbedingt richtig: Da mit <i>k</i> = 2 weiterhin <i>L</i><sub>M</sub> > <i>H</i> gilt, kann <i>k</i> = 3 zu einer weiteren Verbesserung führen. | |
− | |||
− | |||
{{ML-Fuß}} | {{ML-Fuß}} | ||
Version vom 24. Mai 2017, 12:59 Uhr
Wir betrachten den gleichen Sachverhalt wie in der Aufgabe A2.7: Der Huffman–Algorithmus führt zu einem besseren Ergebnis, das heißt zu einer kleineren mittleren Codewortlänge $L_{\rm M}$, wenn man ihn nicht auf einzelne Symbole anwendet, sondern vorher $k$–Tupel bildet. Dadurch erhöht man den Symbolumfang von $M$ auf $M' = M^k$.
Für die hier betrachtete Nachrichtenquelle gilt:
- Symbolumfang: $M = 3$,
- Symbolvorrat: $\{$X, Y, Z$\}$,
- Wahrscheinlichkeiten: $p_{\rm X} = 0.7$, $p_{\rm Y} = 0.2$, $p_{\rm Z} = 0.1$,
- Entropie: $H = 1.157 \ \rm bit/Ternärsymbol$.
Die Grafik zeigt den Huffman–Baum, wenn man den Huffman–Algorithmus auf Einzelsymbole anwendet, also den Fall $k= 1$. In der Teilaufgabe (2) sollen Sie den entsprechenden Huffman–Code angeben, wenn vorher Zweiertupel gebildet werden ($k=2$).
Hinweise:
- Die Aufgabe gehört zum Kapitel Entropiecodierung nach Huffman.
- Insbesondere wird auf die Seite Anwendung der Huffman-Codierung auf k-Tupel Bezug genommen.
- Eine vergleichbare Aufgabenstellung mit binären Eingangssymbolen wird in der Aufgabe 2.7 behandelt.
- Bezeichnen Sie die möglichen Zweiertupel mit XX = A, XY = B, XZ = C, YX = D, YY = E, YZ = F, ZX = G, ZY = H, ZZ = I .
- Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein.
Fragebogen
Musterlösung
- $$L_{\rm M} = p_{\rm X} \cdot 1 + (p_{\rm Y} + p_{\rm Z}) \cdot 2 \hspace{0.15cm}\underline{= 1.3\,\,{\rm bit/Quellensymbol}}\hspace{0.05cm}. $$
Dieser Wert liegt noch deutlich über der Quellenentropie H = 1.157 bit/Quellensymbol.
(2) Es gibt M ′ = M 2 = 32 = 9 Zweiertupel mit folgenden Wahrscheinlichkeiten:
- pA = Pr(XX) = 0.49, pB = Pr(XY) = 0.14, pC = Pr(XZ) = 0.07,
- pD = Pr(YX) = 0.14, pE = Pr(YY) = 0.04, pF = Pr(YZ) = 0.02,
- pG = Pr(YX) = 0.07, pH = Pr(YY) = 0.02, pI = Pr(YZ) = 0.01.
(3) Die Grafik zeigt den Huffman–Baum für die Anwendung mit k = 2.
Damit erhält man
- für die einzelnen Zweiertupels folgende Binärcodierungen:
- XX = A → 0, XY = B → 111, XZ = C → 1011, YX = D → 110, YY = E → 1000,
- YZ = F → 10010, ZX = G → 1010, ZY = H → 100111, ZZ = I → 100110 .
- für die mittlere Codewortlänge:
- $$L_{\rm M}' =0.49 \cdot 1 + (0.14 + 0.14) \cdot 3 + (0.07 + 0.04 + 0.07) \cdot 4 + 0.02 \cdot 5 + (0.02 + 0.01) \cdot 6 = 2.33\,\,{\rm bit/Zweiertupel}$$
- $$\Rightarrow\hspace{0.3cm}L_{\rm M} = {L_{\rm M}'}/{2}\hspace{0.15cm}\underline{ = 1.165\,\,{\rm bit/Quellensymbol}}\hspace{0.05cm}.$$
(4) Richtig ist Aussage 1, auch wenn LM mit wachsendem k nur sehr langsam abfällt.
- Die letzte Aussage ist falsch, da LM auch für k → ∞ nicht kleiner sein kann als H = 1.157 bit/Quellensymbol.
- Aber auch die zweite Aussage ist nicht unbedingt richtig: Da mit k = 2 weiterhin LM > H gilt, kann k = 3 zu einer weiteren Verbesserung führen.