Exercise 4.3: Iterative Decoding at the BSC
Wir betrachten in dieser Aufgabe zwei Codes:
- den Single Parity–Code ⇒ SPC (3, 2, 2):
- x_=((0,0,0),(0,1,1),(1,0,1),(1,1,0)),
- den Wiederholungscode ⇒ RC (3, 1, 3):
- x_=((0,0,0),(1,1,1)).
Der Kanal wird auf Bitebene durch das BSC–Modell beschrieben. Entsprechend der Grafik gilt dabei:
- Pr(yi≠xi) = ε=0.269,
- Pr(yi=xi) = 1−ε=0.731.
Hierbei bezeichnet ε die Verfälschungswahrscheinlichkeit des BSC–Modells.
Bis auf die letzte Teilaufgabe wird stets von folgendem Empfangswert ausgegangen:
- y_=(0,1,0)=y_2.
Die hier gewählte Indizierung aller möglichen Empfangsvektoren kann der Grafik entnommen werden. Der meist betrachtete Vektor y_2 ist hierbei rot hervorgehoben. Für die Teilaufgabe (6) gilt dann:
- y_=(1,1,0)=y_6.
Zur Decodierung sollen in der Aufgabe untersucht werden:
- die Syndromdecodierung, die bei den hier betrachteten Codes als Hard Decision Maximum Likelihood Detection (HD–ML) vornimmt (Softwerte liegen beim BSC nicht vor).
- die symbolweise Soft–in Soft–out Decodierung (SISO) entsprechend dieses Abschnitts.
Hinweise:
- Die Aufgabe bezieht sich auf das Kapitel Soft–in Soft–out Decoder.
- Bezug genommen wird insbesondere auf die Seiten Symbolweise Soft–in Soft–out_Decodierung sowie Binary Symmetric Channel.
- Das vom Decoder ausgewählte Codewort wird in den Fragen mit z_ bezeichnet.
- Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein.
Fragebogen
Musterlösung
- Das Empfangswort y_2=(0,1,0) ist kein gültiges Codewort des Single Parity–check Codes SPC (3, 2). Somit ist die erste Aussage falsch.
- Da der SPC (3, 2) zudem nur die minimale Distanz dmin=2 aufweist, kann auch kein Fehler korrigiert werden.
(2) Richtig ist der Lösungsvorschlag 2:
- Die möglichen Codeworte beim RP (3, 1) sind x_0=(0,0,0) und x_1=(1,1,1).
- Die minimale Distanz dieses Codes beträgt dmin=3, so dass t=(dmin−1)/2=1 Fehler korrigiert werden kann.
- Neben y_0=(0,0,0) werden auch y_1=(0,0,1), y_2=(0,1,0) und y_4=(1,0,0) dem Decodierergebnis x_0=(0,0,0) zugeordnet.
(3) Entsprechend dem BSC–Modell gilt für die bedingte Wahrscheinlichkeit, dass y_2=(0,1,0) empfangen wird, unter der Voraussetzung, dass x_0=(0,0,0) gesendet wurde:
- Pr(y_=y_2|x_=x_0)=(1−ε)2⋅ε.
Der erste Term (1 \, –\varepsilon)^2 gibt dabei die Wahrscheinlichkeit dafür an, dass das erste und das dritte Bit richtig übertragen wurden und \varepsilon berücksichtigt die Verfälschungswahrscheinlichkeit für das zweite Bit.
Entsprechend gilt für das zweite mögliche Codewort \underline{x}_1 = (1, 1, 1):
- {\rm Pr}(\underline{y} = \underline{y}_2 \hspace{0.1cm}| \hspace{0.1cm}\underline{x} = \underline{x}_1 ) = \varepsilon^2 \cdot (1-\varepsilon) \hspace{0.05cm}.
Nach dem Satz von Bayes gilt dann für die Rückschlusswahrscheinlichkeiten:
- {\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y} = \underline{y}_2 ) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Pr}(\underline{y} = \underline{y}_2 \hspace{0.1cm}| \hspace{0.1cm}\underline{x} = \underline{x}_0 ) \cdot \frac{{\rm Pr}(\underline{x} = \underline{x}_0)} {{\rm Pr}(\underline{y} = \underline{y}_2)} \hspace{0.05cm},
- {\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_1 \hspace{0.1cm}| \hspace{0.1cm}\underline{y} = \underline{y}_2 ) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm Pr}(\underline{y} = \underline{y}_2 \hspace{0.1cm}| \hspace{0.1cm}\underline{x} = \underline{x}_1 ) \cdot \frac{{\rm Pr}(\underline{x} = \underline{x}_1)} {{\rm Pr}(\underline{y} = \underline{y}_2)}
- \Rightarrow \hspace{0.3cm} S = \frac{{\rm Pr(richtige \hspace{0.15cm}Entscheidung)}} {{\rm Pr(falsche \hspace{0.15cm}Entscheidung) }} = \frac{(1-\varepsilon)^2 \cdot \varepsilon}{\varepsilon^2 \cdot (1-\varepsilon)}= \frac{(1-\varepsilon)}{\varepsilon}\hspace{0.05cm}.
Mit \varepsilon = 0.269 erhält man folgende Zahlenwerte:
- S = {0.731}/{0.269}\hspace{0.15cm}\underline {= 2.717}\hspace{0.3cm}\Rightarrow \hspace{0.3cm}{\rm ln}\hspace{0.15cm}(S)\hspace{0.15cm} \underline {= 1}\hspace{0.05cm}.
(4) Das Vorzeichen des Kanal–L–Wertes L_{\rm K}(i) ist positiv, falls y_i = 0, und negativ für y_i = 1. Der Betrag gibt die Zuverlässigkeit von y_i an. Beim BSC–Modell gilt |L_{\rm K}(i)| = \ln {(1 \, – \epsilon)/\epsilon} = 1 für alle i. Also:
- \underline {L_{\rm K}}(1)\hspace{0.15cm} \underline {= +1}\hspace{0.05cm},\hspace{0.5cm} \underline {L_{\rm K}}(2)\hspace{0.15cm} \underline {= -1}\hspace{0.05cm},\hspace{0.5cm} \underline {L_{\rm K}}(3)\hspace{0.15cm} \underline {= +1}\hspace{0.05cm}.
(5) Die nebenstehende Tabelle verdeutlicht die iterative symbolweise Decodierung ausgehend von \underline{y}_2 = (0, \, 1, \, 0).
Diese Ergebnisse lassen sich wie folgt interpretieren:
- Die Vorbelegung (Iteration I = 0) geschieht entsprechend \underline{L}_{\rm APP} = \underline{L}_{\rm K}. Eine harte Entscheidung ⇒ „\sign {\underline{L}_{\rm APP}(i)}” würde zum Decodierergebnis (0, \, 1, \, 0) führen. Die Zuverlässigkeit dieses offensichtlich falschen Ergebnisses wird mit |{\it \Sigma}| = 1 angegeben. Dieser Wert stimmt mit dem in Teilaufgaben (3) berechneten „\ln (S)” überein.
- Nach der ersten Iteration (I = 1) sind alle Aposteriori–L–Werte L_{\rm APP}(i) = +1. Eine harte Entscheidung würde hier das (voraussichtlich) richtige Ergebnis \underline{x}_{\rm APP} = (0, \, 0, \, 0) liefern. Die Wahrscheinlichkeit, dass dieses Ergebnis richtig ist, wird durch |{\it \Sigma}_{\rm APP}| = 3 quantifiziert:
- {\rm ln}\hspace{0.25cm}\frac{{\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2)}{1-{\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2)} = 3 \hspace{0.3cm}\Rightarrow \hspace{0.3cm} \frac{{\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2)}{1-{\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2)} = {\rm e}^3 \approx 20
- \hspace{0.3cm}\Rightarrow \hspace{0.3cm}{\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2) = {20}/{21} {\approx 95.39\%}\hspace{0.05cm}.
- Die zweite Iteration bestätigt das Decodierergebnis der ersten Iteration. Die Zuverlässigkeit wird hier sogar mit „9” beziffert. Dieser Wert kann wie folgt interpretiert werden:
- \frac{{\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2)}{1-{\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2)} = {\rm e}^9 \hspace{0.3cm}\Rightarrow \hspace{0.3cm} {\rm Pr}(\hspace{0.1cm}\underline{x} = \underline{x}_0 \hspace{0.1cm}| \hspace{0.1cm}\underline{y}=\underline{y}_2) = {{\rm e}^9}/{({\rm e}^9+1)} \approx 99.99\% \hspace{0.05cm}.
- Mit jeder weiteren Iteration nimmt der Zuverlässigkeitswert und damit die Wahrscheinlichkeit {\rm Pr}(\underline{x}_0 | \underline{y}_2) drastisch zu ⇒ Alle Lösungsvorschläge sind richtig.
(6) Richtig sind die Lösungsvorschläge 2 und 3:
- Für den Empfangsvektor \underline{y}_6 = (1, \, 1, \, 0) gilt die zweite Tabelle.
- Der Decoder entscheidet sich nun für die Folge \underline{x}_1 = (1, \, 1, \, 1).
- Der Fall „\underline{y}_3 = (1, \, 1, \, 0) empfangen unter der Voraussetzung \underline{x}_1 = (1, \, 1, \, 1) gesendet” würde genau der in der letzten Teilaufgabe betrachteten Konstellation „\underline{y}_2 = (1, \, 0, \, 1) empfangen und \underline{x}_0 = (0, \, 0, \, 0) gesendet” entsprechen.
- Da aber \underline{x}_0 = (0, \, 0, \, 0) gesendet wurde, gibt es nun zwei Bitfehler mit folgender Konsequenz:
- Der iterative Decoder entscheidet falsch.
- Mit jeder weiteren Iteration wird die falsche Entscheidung als zuverlässiger deklariert.