Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Exercise 4.5: On the Extrinsic L-values again

From LNTwww
Revision as of 15:23, 5 July 2019 by Guenter (talk | contribs)

Tabelle nach dem ersten  LE(i)–Ansatz

Wir gehen wie im  Theorieteil  vom  Single Parity–check Code   SPC(3,2,2)  aus. Die möglichen Codeworte sind  x_{x_0,x_1,x_2,x_3}  mit

x_0 = (0,0,0)bzw.x_0=(+1,+1,+1),
x_1 = (0,1,1)bzw.x_1=(+1,1,1),
x_2 = (1,0,1)bzw.x_2=(1,+1,1),
x_3 = (1,1,0)bzw.x_3=(1,1,+1).

In der Aufgabe verwenden wir meist die zweite (bipolare) Darstellung der Codesymbole:   xi{+1,1}.

  • Es ist nicht so, dass der  SPC(3,2,2)  von großem praktischen Interesse wäre, da zum Beispiel bei  Hard Decision  wegen  dmin=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  L_E=(LE(1), LE(2), LE(3))  entsprechend der folgenden Gleichung berechnet werden.
LE(i)=lnPr[wH(x_(i))istgerade]Pr[wH(x_(i))istungerade].
Hierbei bezeichnet  x_(1)  alle Symbole mit Ausnahme von  xi  und ist somit ein Vektor der Länge  n1=2.


Als den  ersten LE(i)–Ansatz  bezeichnen wir die Vorgehensweise entsprechend den Gleichungen

LE(1) = 2tanh1[tanh(L2/2)tanh(L3/2)],
LE(2) = 2tanh1[tanh(L1/2)tanh(L3/2)],
LE(3) = 2tanh1[tanh(L1/2)tanh(L2/2)].

(1)  Dieser  LE(i)–Ansatz liegt der obigen Ergebnistabelle (rote Einträge) zugrunde, wobei von folgenden Aposteriori–L–Werten ausgegangen wird:

L_APP=(+1.0,+0.4,1.0)kurz:L1=+1.0,L2=+0.4,L3=1.0.

(2)  Die extrinsischen  L–Werte für die nullte Iteration ergeben sich zu  (Herleitung in  Aufgabe 4.5Z):

LE(1)=0.1829, LE(2)=0.4337, LE(3)=+0.1829.

(3)  Die Aposteriori–Werte zu Beginn der ersten Iteration sind somit

L_(I=1)=L_(I=0)+L_(I=0)E=(+0.8171,0.0337,0.8171).

(4)  Daraus ergeben sich die neuen extrinsischen Werte für die Iterationsschleife  I=1  wie folgt:

LE(1) = 2tanh1[tanh(0.0337/2)tanh(0.8171/2)]=0.0130=LE(3),
LE(2) = 2tanh1[tanh(+0.8171/2)tanh(0.8171/2)]=0.3023.

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  SPC(3,2,2)–Codewort ist.
  • Aber schon nach  I=1  Iterationen liefert eine harte Entscheidung ein gültiges Codewort, nämlich  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  (I2)  führen jeweils zum gleichen Codewort  x_2. Diese Aussage gilt nicht nur für dieses Beispiel, sondern ganz allgemein.


Daneben betrachten wir in dieser Aufgabe einen zweiten LE(i)–Ansatz, der hier am Beispiel für das erste Symbol (i=1) angegeben wird:

sign[LE(1)] = sign[LE(2)]sign[LE(3)],|LE(1)| = Min(|LE(2)|,|LE(3)|).

Dieser zweite Ansatz basiert auf der Annahme, dass die Zuverlässigkeit von  LE(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  L2=1.0  und  L3=5.0  ergibt sich beispielsweise

  • nach dem ersten Ansatz:   LE(1)=2tanh1[tanh(0.5)tanh(2.5)]=2tanh1(0.4559)=0.984,
  • nach dem zweiten Ansatz:   |LE(1)| = Min(1.0,5.0)=1.000.


(2)  Dagegen erhält man für  L2=L3=1.0

  • nach dem ersten Ansatz:   LE(1)=2tanh1[tanh(0.5)tanh(0.5)]=2tanh1(0.2135)=0.433,
  • nach dem zweiten Ansatz:   |LE(1)| = Min(1.0,1.0)=1.000.


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:



Fragebogen

1

Es gelte  L_=(+1.0,+0.4,1.0). Ermitteln Sie die extrinsischen  L–Werte nach dem zweiten  LE(i)–Ansatz ohne vorherige Iteration  (I=0)_.

LE(1) = 

LE(2) = 

LE(3) = 

2

Wie lauten die Aposteriori–L–Werte für die erste Iteration  (I=1)_?

L(1) = 

L(2) = 

L(3) = 

3

Welcher der folgenden Aussagen gelten für  L_=(+1.0,+0.4,1.0)?

Hard Decision  nach  I=1  führt zum Codewort  x_1=(+1,1,1).
Daran ändert sich auch nach weiteren Iterationen nichts.
Weitere Iterationen erhöhen die Zuverlässigkeit für  x_1  nicht.

4

Welche der folgenden Aussagen gelten für  L_=(+0.6,+1.0,0.4)?

Die iterative Decodierung führt zum Ergebnis  x_0=(+1,+1,+1).
Die iterative Decodierung führt zum Ergebnis  x_2=(1,+1,1).
Dieses Ergebnis liefert auch Hard Decision ab  I=1.

5

Welche der folgenden Aussagen gelten für  L_=(+0.6,+1.0,0.8)?

Die iterative Decodierung führt zum Ergebnis  x_0=(+1,+1,+1).
Die iterative Decodierung führt zum Ergebnis  x_2=(1,+1,1).
Dieses Ergebnis liefert auch Hard Decision ab  I=1.

6

Welche der folgenden Aussagen gelten für  L_=(+0.6,+1.0,0.6)?

Die iterative Decodierung führt zum Ergebnis  x_0=(+1,+1,+1).
Die iterative Decodierung führt zum Ergebnis  x_2=(1,+1,1).
Die iterative Decodierung führt hier nicht zum Ziel.


Musterlösung

\underline{L}(+1.0, +0.4, –1.0)–Ergebnistabelle

(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.


\underline{L}(+0.6, +1.0, –0.4)–Ergebnistabelle

(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.


\underline{L}(+0.6, +1.0, –0.8)–Ergebnistabelle

(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).


\underline{L}(+0.6, +1.0, –0.6)–Ergebnistabelle

(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.