Aufgaben:Aufgabe 4.5: Nochmals zu den extrinsischen L–Werten: Unterschied zwischen den Versionen
(34 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{quiz-Header|Buchseite=Kanalcodierung/Soft–in Soft–out Decoder}} | {{quiz-Header|Buchseite=Kanalcodierung/Soft–in Soft–out Decoder}} | ||
− | [[Datei:P_ID3026__KC_A_4_5_v2.png|right|frame| | + | [[Datei:P_ID3026__KC_A_4_5_v2.png|right|frame|Tabelle nach dem ersten $L_{\rm E}(i)$–Ansatz]] |
− | Wir gehen wie im [[Theorieteil]] vom <i>Single Parity–check Code</i> SPC (3, 2, 2) aus. Die möglichen Codeworte sind | + | Wir gehen wie im [[Kanalcodierung/Soft%E2%80%93in_Soft%E2%80%93out_Decoder#Zur_Berechnung_der_extrinsischen_L.E2.80.93Werte|Theorieteil]] vom <i>Single Parity–check Code</i> $\rm SPC \, (3, \, 2, \, 2)$ aus. Die möglichen Codeworte sind $\underline{x} \hspace{-0.01cm}\in \hspace{-0.01cm} |
− | |||
\{ \underline{x}_0,\hspace{0.05cm} | \{ \underline{x}_0,\hspace{0.05cm} | ||
\underline{x}_1,\hspace{0.05cm} | \underline{x}_1,\hspace{0.05cm} | ||
\underline{x}_2,\hspace{0.05cm} | \underline{x}_2,\hspace{0.05cm} | ||
− | \underline{x}_3\} | + | \underline{x}_3\}$ mit |
:$$\underline{x}_0 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (0\hspace{-0.03cm},\hspace{0.05cm}0\hspace{-0.03cm},\hspace{0.05cm}0)\hspace{0.35cm}{\rm bzw. } \hspace{0.35cm} | :$$\underline{x}_0 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (0\hspace{-0.03cm},\hspace{0.05cm}0\hspace{-0.03cm},\hspace{0.05cm}0)\hspace{0.35cm}{\rm bzw. } \hspace{0.35cm} | ||
\underline{x}_0 \hspace{-0.05cm}=\hspace{-0.05cm} (+1\hspace{-0.03cm},\hspace{-0.05cm}+1\hspace{-0.03cm},\hspace{-0.05cm}+1)\hspace{0.05cm},$$ | \underline{x}_0 \hspace{-0.05cm}=\hspace{-0.05cm} (+1\hspace{-0.03cm},\hspace{-0.05cm}+1\hspace{-0.03cm},\hspace{-0.05cm}+1)\hspace{0.05cm},$$ | ||
Zeile 17: | Zeile 16: | ||
\underline{x}_3 \hspace{-0.05cm}=\hspace{-0.05cm} (-1\hspace{-0.03cm},\hspace{-0.05cm}-1\hspace{-0.03cm},\hspace{-0.05cm}+1)\hspace{0.05cm}.$$ | \underline{x}_3 \hspace{-0.05cm}=\hspace{-0.05cm} (-1\hspace{-0.03cm},\hspace{-0.05cm}-1\hspace{-0.03cm},\hspace{-0.05cm}+1)\hspace{0.05cm}.$$ | ||
− | In der Aufgabe verwenden wir meist die zweite (bipolare) Darstellung der Codesymbole: $x_i ∈ \{+1, -1\}$. | + | In der Aufgabe verwenden wir meist die zweite (bipolare) Darstellung der Codesymbole: $x_i ∈ \{+1, -1\}$. |
− | Es ist nicht so, dass der SPC (3, 2, 2) von | + | *Es ist nicht so, dass der $\rm SPC \, (3, \, 2, \, 2)$ von großem praktischen Interesse wäre, da zum Beispiel bei <i>Hard Decision</i> wegen $d_{\rm min} = 2$ nur ein Fehler erkannt und kein einziger korrigiert werden kann. Der Code ist aber wegen des überschaubaren Aufwands für Übungs– und Demonstrationszwecke gut geeignet. |
+ | *Mit ''iterativer symbolweiser Decodierung'' kann man auch einen Fehler korrigieren. Beim vorliegenden Code müssen die extrinsischen $L$–Werte $\underline{L}_{\rm E} = \big (L_{\rm E}(1), \ L_{\rm E}(2), \ L_{\rm E}(3)\big )$ entsprechend der folgenden Gleichung berechnet werden. | ||
+ | :$$L_{\rm E}(i) = {\rm ln} \hspace{0.15cm}\frac{{\rm Pr} \left [w_{\rm H}(\underline{x}^{(-i)})\hspace{0.15cm}{\rm ist \hspace{0.15cm} gerade} \hspace{0.05cm} \right ]}{{\rm Pr} \left [w_{\rm H}(\underline{x}^{(-i)})\hspace{0.15cm}{\rm ist \hspace{0.15cm} ungerade} \hspace{0.05cm} \hspace{0.05cm}\right ]}.$$ | ||
− | + | :Hierbei bezeichnet $\underline{x}^{(-1)}$ alle Symbole mit Ausnahme von $x_i$ und ist somit ein Vektor der Länge $n - 1 = 2$. | |
− | |||
− | |||
− | Als den | + | Als den '''ersten $L_{\rm E}(i)$–Ansatz''' bezeichnen wir die Vorgehensweise entsprechend den Gleichungen |
:$$L_{\rm E}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_2/2) \cdot {\rm tanh}(L_3/2) \right ] \hspace{0.05cm},$$ | :$$L_{\rm E}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_2/2) \cdot {\rm tanh}(L_3/2) \right ] \hspace{0.05cm},$$ | ||
:$$L_{\rm E}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_1/2) \cdot {\rm tanh}(L_3/2) \right ] \hspace{0.05cm},$$ | :$$L_{\rm E}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_1/2) \cdot {\rm tanh}(L_3/2) \right ] \hspace{0.05cm},$$ | ||
:$$L_{\rm E}(3) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_1/2) \cdot {\rm tanh}(L_2/2) \right ] \hspace{0.05cm}.$$ | :$$L_{\rm E}(3) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_1/2) \cdot {\rm tanh}(L_2/2) \right ] \hspace{0.05cm}.$$ | ||
− | Dieser | + | '''(1)''' Dieser $L_{\rm E}(i)$–Ansatz liegt der obigen Ergebnistabelle (rote Einträge) zugrunde, wobei von folgenden Aposteriori–$L$–Werten ausgegangen wird: |
:$$\underline {L}_{\rm APP} = (+1.0\hspace{0.05cm},\hspace{0.05cm}+0.4\hspace{0.05cm},\hspace{0.05cm}-1.0) \hspace{0.5cm}{\rm kurz\hspace{-0.1cm}:}\hspace{0.25cm} | :$$\underline {L}_{\rm APP} = (+1.0\hspace{0.05cm},\hspace{0.05cm}+0.4\hspace{0.05cm},\hspace{0.05cm}-1.0) \hspace{0.5cm}{\rm kurz\hspace{-0.1cm}:}\hspace{0.25cm} | ||
L_1 = +1.0\hspace{0.05cm},\hspace{0.05cm} | L_1 = +1.0\hspace{0.05cm},\hspace{0.05cm} | ||
Zeile 37: | Zeile 36: | ||
L_3 = -1.0\hspace{0.05cm}.$$ | L_3 = -1.0\hspace{0.05cm}.$$ | ||
− | Die extrinsischen $L$–Werte für die nullte Iteration ergeben sich zu $L_{\rm E}(1) = -0.1829, \ L_{\rm E}(2) = -0.4337 | + | '''(2)''' Die extrinsischen $L$–Werte für die nullte Iteration ergeben sich zu (Herleitung in [[Aufgaben:Aufgabe_4.5Z:_Tangens_Hyperbolikus_und_Inverse|Aufgabe 4.5Z]]): |
+ | :$$L_{\rm E}(1) = -0.1829, \ L_{\rm E}(2) = -0.4337, \ L_{\rm E}(3) = +0.1829.$$ | ||
− | Die Aposteriori–Werte zu Beginn der ersten Iteration sind | + | '''(3)''' Die Aposteriori–Werte zu Beginn der ersten Iteration sind somit |
:$$\underline{L}^{(I=1)} = \underline{L}^{(I=0)} + \underline{L}_{\hspace{0.02cm}\rm E}^{(I=0)} = | :$$\underline{L}^{(I=1)} = \underline{L}^{(I=0)} + \underline{L}_{\hspace{0.02cm}\rm E}^{(I=0)} = | ||
(+0.8171\hspace{0.05cm},\hspace{0.05cm}-0.0337\hspace{0.05cm},\hspace{0.05cm}-0.8171) | (+0.8171\hspace{0.05cm},\hspace{0.05cm}-0.0337\hspace{0.05cm},\hspace{0.05cm}-0.8171) | ||
\hspace{0.05cm} . $$ | \hspace{0.05cm} . $$ | ||
− | Daraus ergeben sich die neuen extrinsischen Werte für die Iterationsschleife $I = 1$ wie folgt: | + | '''(4)''' Daraus ergeben sich die neuen extrinsischen Werte für die Iterationsschleife $I = 1$ wie folgt: |
− | :$$L_{\rm E}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \ | + | :$$L_{\rm E}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(-0.0337/2) \cdot {\rm tanh}(-0.8171/2) \big ] = 0.0130 = -L_{\rm E}(3)\hspace{0.05cm},$$ |
− | :$$L_{\rm E}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \ | + | :$$L_{\rm E}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(+0.8171/2) \cdot {\rm tanh}(-0.8171/2) \big ] = - 0.3023\hspace{0.05cm}.$$ |
− | Weiter erkennt man aus der | + | Weiter erkennt man aus der obigen Tabelle: |
− | * Eine harte Entscheidung | + | * Eine harte Entscheidung gemäß den Vorzeichen vor der ersten Iteration $(I = 0)$ scheitert, da $(+1, +1, -1)$ kein gültiges $\rm SPC \, (3, \, 2, \, 2)$–Codewort ist. |
− | * | + | * Aber schon nach $I = 1$ Iterationen liefert eine harte Entscheidung ein gültiges Codewort, nämlich $\underline{x}_2 = (+1, -1, -1)$. Auch in späteren Grafiken sind die Zeilen mit erstmals richtigen HD–Entscheidungen blau hinterlegt. |
− | * Harte Entscheidungen nach weiteren Iterationen $(I ≥ 2)$ führen jeweils zum gleichen Codewort $\underline{x}_2$. Diese Aussage gilt nicht nur für dieses Beispiel, sondern ganz allgemein. | + | * Harte Entscheidungen nach weiteren Iterationen $(I ≥ 2)$ führen jeweils zum gleichen Codewort $\underline{x}_2$. Diese Aussage gilt nicht nur für dieses Beispiel, sondern ganz allgemein. |
− | Daneben betrachten wir | + | Daneben betrachten wir in dieser Aufgabe einen '''zweiten $L_{\rm E}(i)$–Ansatz''', der hier am Beispiel für das erste Symbol $(i = 1)$ angegeben wird: |
− | :$${\rm sign} [L_{\rm E}(1)] \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm sign} [L_{\rm E}(2)] \cdot {\rm sign} [L_{\rm E}(3)]\hspace{0.05cm}, | + | :$${\rm sign} \big[L_{\rm E}(1)\big] \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm sign} \big[L_{\rm E}(2)\big] \cdot {\rm sign} \big[L_{\rm E}(3)\big]\hspace{0.05cm},\hspace{0.8cm} |
− | + | |L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \left ( |L_{\rm E}(2)|\hspace{0.05cm}, \hspace{0.05cm}|L_{\rm E}(3)| \right ) \hspace{0.05cm}.$$ | |
− | Dieser Ansatz basiert auf der Annahme, dass die Zuverlässigkeit von $L_{\rm E}(i)$ im wesentlichen durch das | + | Dieser zweite Ansatz basiert auf der Annahme, dass die Zuverlässigkeit von $L_{\rm E}(i)$ im wesentlichen durch das unzuverlässigste Nachbarsymbol bestimmt wird. Das bessere (größere) Eingangs–LLR wird dabei völlig außer Acht gelassen. – Betrachten wir hierzu zwei Beispiele: |
+ | |||
+ | '''(1)''' Für $L_2 = 1.0$ und $L_3 = 5.0$ ergibt sich beispielsweise | ||
+ | * nach dem ersten Ansatz: $L_{\rm E}(1) =2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(0.5) \cdot {\rm tanh}(2.5) \big ] =2 \cdot {\rm tanh}^{-1}(0.4559) = 0.984\hspace{0.05cm},$ | ||
+ | * nach dem zweiten Ansatz: $|L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \big ( 1.0\hspace{0.05cm}, \hspace{0.05cm}5.0 \big ) = 1.000 \hspace{0.05cm}.$ | ||
+ | |||
+ | |||
+ | '''(2)''' Dagegen erhält man für $L_2 = L_3 = 1.0$ | ||
+ | * nach dem ersten Ansatz: $L_{\rm E}(1) =2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(0.5) \cdot {\rm tanh}(0.5) \big ] =2 \cdot {\rm tanh}^{-1}(0.2135) = 0.433\hspace{0.05cm},$ | ||
+ | * nach dem zweiten Ansatz: $|L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \big ( 1.0\hspace{0.05cm}, \hspace{0.05cm}1.0 \big ) = 1.000 \hspace{0.05cm}.$ | ||
+ | |||
+ | |||
+ | Man erkennt die deutliche Diskrepanz zwischen beiden Ansätzen. Der zweite Ansatz (Näherung) ist deutlich positiver als der erste (richtige) Ansatz. Wichtig ist eigentlich aber nur, dass die Iterationen zum gewünschten Decodierergebnis führen. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
''Hinweise:'' | ''Hinweise:'' | ||
− | * Die Aufgabe gehört | + | * Die Aufgabe gehört zum Kapitel [[Kanalcodierung/Soft%E2%80%93in_Soft%E2%80%93out_Decoder|Soft–in Soft–out Decoder]]. |
− | * Behandelt wird hier ausschließlich der Lösungsansatz | + | *Bezug genommen wird insbesondere auf die Seite [[Kanalcodierung/Soft–in_Soft–out_Decoder#Zur_Berechnung_der_extrinsischen_L.E2.80.93Werte|Zur Berechnung der extrinsischen L–Werte]]. |
− | * Zum ersten Lösungsansatz verweisen wir auf [[Aufgabe | + | * Behandelt wird hier ausschließlich der '''zweite Lösungsansatz'''. |
+ | * Zum ersten Lösungsansatz verweisen wir auf die [[Aufgaben:Aufgabe_4.5Z:_Tangens_Hyperbolikus_und_Inverse|Aufgabe 4.5Z]] . | ||
+ | |||
Zeile 84: | Zeile 87: | ||
===Fragebogen=== | ===Fragebogen=== | ||
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {Es gelte $\underline{L} = (+1.0, +0.4, -1.0)$. Ermitteln Sie die extrinsischen $L$–Werte nach dem '''zweiten $L_{\rm E}(i)$–Ansatz''' ohne vorherige Iteration $\underline{(I = 0)}$. |
+ | |type="{}"} | ||
+ | $L_{\rm E}(1) \ = \ ${ -0.412--0.388 } | ||
+ | $L_{\rm E}(2) \ = \ ${ -1.03--0.97 } | ||
+ | $L_{\rm E}(3) \ = \ ${ 0.4 3% } | ||
+ | |||
+ | {Wie lauten die Aposteriori–$L$–Werte für die erste Iteration $\underline{(I = 1)}$? | ||
+ | |type="{}"} | ||
+ | $L_(1) \ = \ ${ 0.6 3% } | ||
+ | $L_(2) \ = \ ${ -0.618--0.582 } | ||
+ | $L_(3) \ = \ ${ -0.618--0.582 } | ||
+ | |||
+ | {Welcher der folgenden Aussagen gelten für $\underline{L} = (+1.0, +0.4, -1.0)$? | ||
+ | |type="[]"} | ||
+ | + <i>Hard Decision</i> nach $I = 1$ führt zum Codewort $\underline{x}_1 = (+1, -1, -1)$. | ||
+ | + Daran ändert sich auch nach weiteren Iterationen nichts. | ||
+ | - Weitere Iterationen erhöhen die Zuverlässigkeit für $\underline{x}_1$ nicht. | ||
+ | |||
+ | {Welche der folgenden Aussagen gelten für $\underline{L} = (+0.6, +1.0, -0.4)$? | ||
+ | |type="[]"} | ||
+ | + Die iterative Decodierung führt zum Ergebnis $\underline{x}_0 = (+1, +1, +1)$. | ||
+ | - Die iterative Decodierung führt zum Ergebnis $\underline{x}_2 = (-1, +1, -1)$. | ||
+ | + Dieses Ergebnis liefert auch <i>Hard Decision</i> ab $I = 1$. | ||
+ | |||
+ | {Welche der folgenden Aussagen gelten für $\underline{L} = (+0.6, +1.0, -0.8)$? | ||
|type="[]"} | |type="[]"} | ||
− | + | + | - Die iterative Decodierung führt zum Ergebnis $\underline{x}_0 = (+1, +1, +1)$. |
− | - | + | + Die iterative Decodierung führt zum Ergebnis $\underline{x}_2 = (-1, +1, -1)$. |
+ | + Dieses Ergebnis liefert auch <i>Hard Decision</i> ab $I = 1$. | ||
− | { | + | {Welche der folgenden Aussagen gelten für $\underline{L} = (+0.6, +1.0, -0.6)$? |
− | |type=" | + | |type="[]"} |
− | $ | + | - Die iterative Decodierung führt zum Ergebnis $\underline{x}_0 = (+1, +1, +1)$. |
+ | - Die iterative Decodierung führt zum Ergebnis $\underline{x}_2 = (-1, +1, -1)$. | ||
+ | + Die iterative Decodierung führt hier nicht zum Ziel. | ||
</quiz> | </quiz> | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' | + | [[Datei:P_ID3027__KC_A_4_5a_v2.png|right|frame|Ergebnisse für $\underline{L}=(+1.0, +0.4, –1.0)$]] |
− | '''(2)''' | + | '''(1)''' Entsprechend dem zweiten $L_{\rm E}(i)$–Ansatz gilt: |
− | '''(3)''' | + | :$${\rm sign} [L_{\rm E}(1)] \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm sign} [L_{\rm E}(2)] \cdot {\rm sign} [L_{\rm E}(3)] = -1 \hspace{0.05cm},$$ |
− | '''(4)''' | + | :$$|L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \left ( |L_{\rm E}(2)|\hspace{0.05cm}, \hspace{0.05cm}|L_{\rm E}(3)| \right ) = {\rm Min} \left ( 0.4\hspace{0.05cm}, \hspace{0.05cm}1.0 \right ) = 0.4\hspace{0.3cm} |
− | '''(5)''' | + | \Rightarrow \hspace{0.3cm}L_{\rm E}(1) \hspace{0.15cm} \underline{-0.4}\hspace{0.05cm}.$$ |
+ | |||
+ | *In gleicher Weise erhält man: | ||
+ | :$$L_{\rm E}(2) \hspace{0.15cm} \underline{-1.0}\hspace{0.05cm}, \hspace{0.3cm} | ||
+ | L_{\rm E}(3) \hspace{0.15cm} \underline{+0.4}\hspace{0.05cm}.$$ | ||
+ | |||
+ | |||
+ | '''(2)''' Die Aposteriori–$L$–Werte zu Beginn der ersten Iteration $(I = 1)$ ergeben sich aus der Summe der bisherigen $L$–Werte (für $I = 0$) und den unter (1) berechneten extrinsischen Werten: | ||
+ | :$$L_1 = L_{\rm APP}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}1.0 + (-0.4)\hspace{0.15cm} \underline{=+0.6}\hspace{0.05cm},$$ | ||
+ | :$$L_2 = L_{\rm APP}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} 0.4 + (-1.0)\hspace{0.15cm} \underline{=-0.6}\hspace{0.05cm},$$ | ||
+ | :$$L_3 = L_{\rm APP}(3) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (-1.0) + 0.4\hspace{0.15cm} \underline{=-0.6}\hspace{0.05cm}.$$ | ||
+ | |||
+ | |||
+ | '''(3)''' Wie aus obiger Tabelle hervorgeht, sind die <u>Lösungsvorschläge 1 und 2</u> richtig im Gegensatz zur Antwort 3: | ||
+ | *Mit jeder neuen Iteration werden die Beträge von $L(1), \ L(2)$ und $L(3)$ signifikant größer. | ||
+ | |||
+ | |||
+ | [[Datei:P_ID3030__KC_A_4_5d_v2.png|right|frame|Ergebnisse für $\underline{L}=(+0.6, +1.0, –0.4)$]] | ||
+ | '''(4)''' Wie aus nebenstehender Tabelle hervorgeht, sind <u>die Antworten 1 und 3</u> richtig: | ||
+ | *Die Entscheidung fällt also für das Codewort $\underline{x}_0 = (+1, +1, +1)$. | ||
+ | *Ab $I = 1$ wäre dies auch die Entscheidung von <i>Hard Decision</i>. | ||
+ | <br clear=all> | ||
+ | [[Datei:P_ID3028__KC_A_4_5e_v2.png|right|frame|Ergebnisse für $\underline{L}=(+0.6, +1.0, –0.8)$]] | ||
+ | '''(5)''' Richtig sind die <u>Antworten 2 und 3</u>: | ||
+ | *Wegen $|L(3)| > |L(1)|$ gilt bereits ab $I = 1$: $L_1 < 0 \hspace{0.05cm},\hspace{0.2cm} | ||
+ | L_2 > 0 \hspace{0.05cm},\hspace{0.2cm} | ||
+ | L_3 < 0 \hspace{0.05cm}.$ | ||
+ | *Ab dieser Iterationsschleife liefert <i>Hard Decision</i> das Codewort $\underline{x}_2 = (-1, +1, -1)$. | ||
+ | <br clear=all> | ||
+ | [[Datei: P_ID3029__KC_A_4_5f_v1.png|right|frame|Ergebnisse für $\underline{L}=(+0.6, +1.0, –0.6)$]] | ||
+ | '''(6)''' Richtig sind der <u>Lösungsvorschlag 3</u>: | ||
+ | *Die nebenstehende Tabelle zeigt, dass unter der Voraussetzung $|L(1)| = |L(3)|$ ab der Iterationsschleife $I = 1$ alle extrinsischen $L$–Werte Null sind. | ||
+ | *Damit bleiben die Aposteriori–$L$–Werte auch für $I > 1$ konstant gleich $\underline{L} = (0., +0.4, 0.)$, was keinem Codewort zugeordnet werden kann. | ||
{{ML-Fuß}} | {{ML-Fuß}} | ||
Aktuelle Version vom 5. Juli 2019, 14:37 Uhr
Wir gehen wie im Theorieteil vom Single Parity–check Code $\rm SPC \, (3, \, 2, \, 2)$ aus. Die möglichen Codeworte sind $\underline{x} \hspace{-0.01cm}\in \hspace{-0.01cm} \{ \underline{x}_0,\hspace{0.05cm} \underline{x}_1,\hspace{0.05cm} \underline{x}_2,\hspace{0.05cm} \underline{x}_3\}$ mit
- $$\underline{x}_0 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (0\hspace{-0.03cm},\hspace{0.05cm}0\hspace{-0.03cm},\hspace{0.05cm}0)\hspace{0.35cm}{\rm bzw. } \hspace{0.35cm} \underline{x}_0 \hspace{-0.05cm}=\hspace{-0.05cm} (+1\hspace{-0.03cm},\hspace{-0.05cm}+1\hspace{-0.03cm},\hspace{-0.05cm}+1)\hspace{0.05cm},$$
- $$\underline{x}_1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (0\hspace{-0.03cm},\hspace{0.05cm}1\hspace{-0.03cm},\hspace{0.05cm}1)\hspace{0.35cm}{\rm bzw. } \hspace{0.35cm} \underline{x}_1 \hspace{-0.05cm}=\hspace{-0.05cm} (+1\hspace{-0.03cm},\hspace{-0.05cm}-1\hspace{-0.03cm},\hspace{-0.05cm}-1)\hspace{0.05cm},$$
- $$\underline{x}_2 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (1\hspace{-0.03cm},\hspace{0.05cm}0\hspace{-0.03cm},\hspace{0.05cm}1)\hspace{0.35cm}{\rm bzw. } \hspace{0.35cm} \underline{x}_2 \hspace{-0.05cm}=\hspace{-0.05cm} (-1\hspace{-0.03cm},\hspace{-0.05cm}+1\hspace{-0.03cm},\hspace{-0.05cm}-1)\hspace{0.05cm},$$
- $$\underline{x}_3 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (1\hspace{-0.03cm},\hspace{0.05cm}1\hspace{-0.03cm},\hspace{0.05cm}0)\hspace{0.35cm}{\rm bzw. } \hspace{0.35cm} \underline{x}_3 \hspace{-0.05cm}=\hspace{-0.05cm} (-1\hspace{-0.03cm},\hspace{-0.05cm}-1\hspace{-0.03cm},\hspace{-0.05cm}+1)\hspace{0.05cm}.$$
In der Aufgabe verwenden wir meist die zweite (bipolare) Darstellung der Codesymbole: $x_i ∈ \{+1, -1\}$.
- Es ist nicht so, dass der $\rm SPC \, (3, \, 2, \, 2)$ von großem praktischen Interesse wäre, da zum Beispiel bei Hard Decision wegen $d_{\rm min} = 2$ nur ein Fehler erkannt und kein einziger korrigiert werden kann. Der Code ist aber wegen des überschaubaren Aufwands für Übungs– und Demonstrationszwecke gut geeignet.
- Mit iterativer symbolweiser Decodierung kann man auch einen Fehler korrigieren. Beim vorliegenden Code müssen die extrinsischen $L$–Werte $\underline{L}_{\rm E} = \big (L_{\rm E}(1), \ L_{\rm E}(2), \ L_{\rm E}(3)\big )$ entsprechend der folgenden Gleichung berechnet werden.
- $$L_{\rm E}(i) = {\rm ln} \hspace{0.15cm}\frac{{\rm Pr} \left [w_{\rm H}(\underline{x}^{(-i)})\hspace{0.15cm}{\rm ist \hspace{0.15cm} gerade} \hspace{0.05cm} \right ]}{{\rm Pr} \left [w_{\rm H}(\underline{x}^{(-i)})\hspace{0.15cm}{\rm ist \hspace{0.15cm} ungerade} \hspace{0.05cm} \hspace{0.05cm}\right ]}.$$
- Hierbei bezeichnet $\underline{x}^{(-1)}$ alle Symbole mit Ausnahme von $x_i$ und ist somit ein Vektor der Länge $n - 1 = 2$.
Als den ersten $L_{\rm E}(i)$–Ansatz bezeichnen wir die Vorgehensweise entsprechend den Gleichungen
- $$L_{\rm E}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_2/2) \cdot {\rm tanh}(L_3/2) \right ] \hspace{0.05cm},$$
- $$L_{\rm E}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_1/2) \cdot {\rm tanh}(L_3/2) \right ] \hspace{0.05cm},$$
- $$L_{\rm E}(3) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \left [{\rm tanh}(L_1/2) \cdot {\rm tanh}(L_2/2) \right ] \hspace{0.05cm}.$$
(1) Dieser $L_{\rm E}(i)$–Ansatz liegt der obigen Ergebnistabelle (rote Einträge) zugrunde, wobei von folgenden Aposteriori–$L$–Werten ausgegangen wird:
- $$\underline {L}_{\rm APP} = (+1.0\hspace{0.05cm},\hspace{0.05cm}+0.4\hspace{0.05cm},\hspace{0.05cm}-1.0) \hspace{0.5cm}{\rm kurz\hspace{-0.1cm}:}\hspace{0.25cm} L_1 = +1.0\hspace{0.05cm},\hspace{0.05cm} L_2 = +0.4\hspace{0.05cm},\hspace{0.05cm} L_3 = -1.0\hspace{0.05cm}.$$
(2) Die extrinsischen $L$–Werte für die nullte Iteration ergeben sich zu (Herleitung in Aufgabe 4.5Z):
- $$L_{\rm E}(1) = -0.1829, \ L_{\rm E}(2) = -0.4337, \ L_{\rm E}(3) = +0.1829.$$
(3) Die Aposteriori–Werte zu Beginn der ersten Iteration sind somit
- $$\underline{L}^{(I=1)} = \underline{L}^{(I=0)} + \underline{L}_{\hspace{0.02cm}\rm E}^{(I=0)} = (+0.8171\hspace{0.05cm},\hspace{0.05cm}-0.0337\hspace{0.05cm},\hspace{0.05cm}-0.8171) \hspace{0.05cm} . $$
(4) Daraus ergeben sich die neuen extrinsischen Werte für die Iterationsschleife $I = 1$ wie folgt:
- $$L_{\rm E}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(-0.0337/2) \cdot {\rm tanh}(-0.8171/2) \big ] = 0.0130 = -L_{\rm E}(3)\hspace{0.05cm},$$
- $$L_{\rm E}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(+0.8171/2) \cdot {\rm tanh}(-0.8171/2) \big ] = - 0.3023\hspace{0.05cm}.$$
Weiter erkennt man aus der obigen Tabelle:
- Eine harte Entscheidung gemäß den Vorzeichen vor der ersten Iteration $(I = 0)$ scheitert, da $(+1, +1, -1)$ kein gültiges $\rm SPC \, (3, \, 2, \, 2)$–Codewort ist.
- Aber schon nach $I = 1$ Iterationen liefert eine harte Entscheidung ein gültiges Codewort, nämlich $\underline{x}_2 = (+1, -1, -1)$. Auch in späteren Grafiken sind die Zeilen mit erstmals richtigen HD–Entscheidungen blau hinterlegt.
- Harte Entscheidungen nach weiteren Iterationen $(I ≥ 2)$ führen jeweils zum gleichen Codewort $\underline{x}_2$. Diese Aussage gilt nicht nur für dieses Beispiel, sondern ganz allgemein.
Daneben betrachten wir in dieser Aufgabe einen zweiten $L_{\rm E}(i)$–Ansatz, der hier am Beispiel für das erste Symbol $(i = 1)$ angegeben wird:
- $${\rm sign} \big[L_{\rm E}(1)\big] \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm sign} \big[L_{\rm E}(2)\big] \cdot {\rm sign} \big[L_{\rm E}(3)\big]\hspace{0.05cm},\hspace{0.8cm} |L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \left ( |L_{\rm E}(2)|\hspace{0.05cm}, \hspace{0.05cm}|L_{\rm E}(3)| \right ) \hspace{0.05cm}.$$
Dieser zweite Ansatz basiert auf der Annahme, dass die Zuverlässigkeit von $L_{\rm E}(i)$ im wesentlichen durch das unzuverlässigste Nachbarsymbol bestimmt wird. Das bessere (größere) Eingangs–LLR wird dabei völlig außer Acht gelassen. – Betrachten wir hierzu zwei Beispiele:
(1) Für $L_2 = 1.0$ und $L_3 = 5.0$ ergibt sich beispielsweise
- nach dem ersten Ansatz: $L_{\rm E}(1) =2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(0.5) \cdot {\rm tanh}(2.5) \big ] =2 \cdot {\rm tanh}^{-1}(0.4559) = 0.984\hspace{0.05cm},$
- nach dem zweiten Ansatz: $|L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \big ( 1.0\hspace{0.05cm}, \hspace{0.05cm}5.0 \big ) = 1.000 \hspace{0.05cm}.$
(2) Dagegen erhält man für $L_2 = L_3 = 1.0$
- nach dem ersten Ansatz: $L_{\rm E}(1) =2 \cdot {\rm tanh}^{-1} \big [{\rm tanh}(0.5) \cdot {\rm tanh}(0.5) \big ] =2 \cdot {\rm tanh}^{-1}(0.2135) = 0.433\hspace{0.05cm},$
- nach dem zweiten Ansatz: $|L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \big ( 1.0\hspace{0.05cm}, \hspace{0.05cm}1.0 \big ) = 1.000 \hspace{0.05cm}.$
Man erkennt die deutliche Diskrepanz zwischen beiden Ansätzen. Der zweite Ansatz (Näherung) ist deutlich positiver als der erste (richtige) Ansatz. Wichtig ist eigentlich aber nur, dass die Iterationen zum gewünschten Decodierergebnis führen.
Hinweise:
- Die Aufgabe gehört zum Kapitel Soft–in Soft–out Decoder.
- Bezug genommen wird insbesondere auf die Seite Zur Berechnung der extrinsischen L–Werte.
- Behandelt wird hier ausschließlich der zweite Lösungsansatz.
- Zum ersten Lösungsansatz verweisen wir auf die Aufgabe 4.5Z .
Fragebogen
Musterlösung
(1) Entsprechend dem zweiten $L_{\rm E}(i)$–Ansatz gilt:
- $${\rm sign} [L_{\rm E}(1)] \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm sign} [L_{\rm E}(2)] \cdot {\rm sign} [L_{\rm E}(3)] = -1 \hspace{0.05cm},$$
- $$|L_{\rm E}(1)| \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Min} \left ( |L_{\rm E}(2)|\hspace{0.05cm}, \hspace{0.05cm}|L_{\rm E}(3)| \right ) = {\rm Min} \left ( 0.4\hspace{0.05cm}, \hspace{0.05cm}1.0 \right ) = 0.4\hspace{0.3cm} \Rightarrow \hspace{0.3cm}L_{\rm E}(1) \hspace{0.15cm} \underline{-0.4}\hspace{0.05cm}.$$
- In gleicher Weise erhält man:
- $$L_{\rm E}(2) \hspace{0.15cm} \underline{-1.0}\hspace{0.05cm}, \hspace{0.3cm} L_{\rm E}(3) \hspace{0.15cm} \underline{+0.4}\hspace{0.05cm}.$$
(2) Die Aposteriori–$L$–Werte zu Beginn der ersten Iteration $(I = 1)$ ergeben sich aus der Summe der bisherigen $L$–Werte (für $I = 0$) und den unter (1) berechneten extrinsischen Werten:
- $$L_1 = L_{\rm APP}(1) \hspace{-0.15cm} \ = \ \hspace{-0.15cm}1.0 + (-0.4)\hspace{0.15cm} \underline{=+0.6}\hspace{0.05cm},$$
- $$L_2 = L_{\rm APP}(2) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} 0.4 + (-1.0)\hspace{0.15cm} \underline{=-0.6}\hspace{0.05cm},$$
- $$L_3 = L_{\rm APP}(3) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (-1.0) + 0.4\hspace{0.15cm} \underline{=-0.6}\hspace{0.05cm}.$$
(3) Wie aus obiger Tabelle hervorgeht, sind die Lösungsvorschläge 1 und 2 richtig im Gegensatz zur Antwort 3:
- Mit jeder neuen Iteration werden die Beträge von $L(1), \ L(2)$ und $L(3)$ signifikant größer.
(4) Wie aus nebenstehender Tabelle hervorgeht, sind die Antworten 1 und 3 richtig:
- Die Entscheidung fällt also für das Codewort $\underline{x}_0 = (+1, +1, +1)$.
- Ab $I = 1$ wäre dies auch die Entscheidung von Hard Decision.
(5) Richtig sind die Antworten 2 und 3:
- Wegen $|L(3)| > |L(1)|$ gilt bereits ab $I = 1$: $L_1 < 0 \hspace{0.05cm},\hspace{0.2cm} L_2 > 0 \hspace{0.05cm},\hspace{0.2cm} L_3 < 0 \hspace{0.05cm}.$
- Ab dieser Iterationsschleife liefert Hard Decision das Codewort $\underline{x}_2 = (-1, +1, -1)$.
(6) Richtig sind der Lösungsvorschlag 3:
- Die nebenstehende Tabelle zeigt, dass unter der Voraussetzung $|L(1)| = |L(3)|$ ab der Iterationsschleife $I = 1$ alle extrinsischen $L$–Werte Null sind.
- Damit bleiben die Aposteriori–$L$–Werte auch für $I > 1$ konstant gleich $\underline{L} = (0., +0.4, 0.)$, was keinem Codewort zugeordnet werden kann.