Difference between revisions of "Channel Coding/Bounds for Block Error Probability"

From LNTwww
Line 8: Line 8:
 
== Distanzspektrum eines linearen Codes (1) ==
 
== Distanzspektrum eines linearen Codes (1) ==
 
<br>
 
<br>
Wir gehen weiterhin von einem linearen und binären (<i>n</i>, <i>k</i>)&ndash;Blockcode <i>C</i> aus. Ein wesentliches Ziel des Codedesigns ist es, die Blockfehlerwahrscheinlichkeit Pr(<i><u>&upsilon;</u></i> &ne; <i><u>u</u></i>) = Pr(<i><u>z</u></i> &ne; <i><u>x</u></i>) möglichst gering zu halten. Dies erreicht man unter anderem dadurch, dass
+
Wir gehen weiterhin von einem linearen und binären (<i>n</i>, <i>k</i>)&ndash;Blockcode <i>C</i> aus. Ein wesentliches Ziel des Codedesigns ist es, die [http://en.lntwww.de/Kanalcodierung/Decodierung_linearer_Blockcodes#Blockschaltbild_und_Voraussetzungen Blockfehlerwahrscheinlichkeit] Pr(<i><u>&upsilon;</u></i> &ne; <i><u>u</u></i>) = Pr(<i><u>z</u></i> &ne; <i><u>x</u></i>) möglichst gering zu halten. Dies erreicht man unter anderem dadurch, dass
  
 
*die minimale Distanz <i>d</i><sub>min</sub> zwischen zwei Codeworten <i><u>x</u></i> und <i><u>x</u></i>' möglichst groß ist, so dass man bis zu <i>t</i>&nbsp;=&nbsp;&lfloor;(<i>d</i><sub>min</sub>&ndash;1)/2&rfloor; Bitfehler richtig korrigieren kann;<br>
 
*die minimale Distanz <i>d</i><sub>min</sub> zwischen zwei Codeworten <i><u>x</u></i> und <i><u>x</u></i>' möglichst groß ist, so dass man bis zu <i>t</i>&nbsp;=&nbsp;&lfloor;(<i>d</i><sub>min</sub>&ndash;1)/2&rfloor; Bitfehler richtig korrigieren kann;<br>
Line 61: Line 61:
 
:<math>W(X) = 1 + 2 \cdot X^{3} + X^{4}\hspace{0.05cm}.</math>
 
:<math>W(X) = 1 + 2 \cdot X^{3} + X^{4}\hspace{0.05cm}.</math>
  
Wie aus der Tabelle seiner Codeworte hervorgeht, erhält man für den (7, 4, 3)&ndash;Hamming&ndash;Code:
+
Wie aus der [http://en.lntwww.de/Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes#Einige_Eigenschaften_des_.287.2C_4.2C_3.29.E2.80.93Hamming.E2.80.93Codes Tabelle seiner Codeworte] hervorgeht, erhält man für den (7, 4, 3)&ndash;Hamming&ndash;Code:
  
 
:<math>W(X) = 1 + 7 \cdot X^{3} + 7 \cdot X^{4} + X^{7}\hspace{0.05cm}.</math>
 
:<math>W(X) = 1 + 7 \cdot X^{3} + 7 \cdot X^{4} + X^{7}\hspace{0.05cm}.</math>
Line 69: Line 69:
 
:<math>W_{\rm Dual}(X) = \frac{(1+X)^n}{2^k} \cdot W \left ( \frac{1-X}{1+X} \right )\hspace{0.05cm}.</math>
 
:<math>W_{\rm Dual}(X) = \frac{(1+X)^n}{2^k} \cdot W \left ( \frac{1-X}{1+X} \right )\hspace{0.05cm}.</math>
  
{{Beispiel}}''':''' Gesucht ist die Gewichtsfunktion <i>W</i>(<i>X</i>) des Single Parity&ndash;check Codes mit <i>n</i> = 6, <i>k</i> = 5 &#8658;&nbsp; <b>SPC (6, 5)</b>. Man erhält diese durch Vergleich aller 2<sup>5</sup> = 32 Codeworte mit dem Nullwort:  
+
{{Beispiel}}''':''' Gesucht ist die Gewichtsfunktion <i>W</i>(<i>X</i>) des [http://en.lntwww.de/Kanalcodierung/Beispiele_bin%C3%A4rer_Blockcodes#Single_Parity.E2.80.93check_Codes_.281.29 Single Parity&ndash;check Codes] mit <i>n</i> = 6, <i>k</i> = 5 &#8658;&nbsp; <b>SPC (6, 5)</b>. Man erhält diese durch Vergleich aller 2<sup>5</sup> = 32 Codeworte mit dem Nullwort:  
  
 
:<math>W_{\rm SPC(6,\hspace{0.08cm}5)}(X) = 1 + 15 \cdot X^{2} + 15 \cdot X^{4} + X^{6}\hspace{0.05cm}.</math>
 
:<math>W_{\rm SPC(6,\hspace{0.08cm}5)}(X) = 1 + 15 \cdot X^{2} + 15 \cdot X^{4} + X^{6}\hspace{0.05cm}.</math>
  
 
Unter Berücksichtigung obiger Gleichung kommt man sehr viel schneller zum gleichen Ergebnis:
 
Unter Berücksichtigung obiger Gleichung kommt man sehr viel schneller zum gleichen Ergebnis:
*Der zu SPC (6, 5) duale Code ist der Repetition Code RC (6, 1) mit nur zwei Codeworten (0, 0, 0, 0, 0, 0) und (1, 1, 1, 1, 1, 1), die sich in keiner bzw. allen Bitpositionen unterscheiden:
+
*Der zu SPC (6, 5) duale Code ist der [http://en.lntwww.de/Kanalcodierung/Beispiele_bin%C3%A4rer_Blockcodes#Wiederholungscodes_.281.29 Repetition Code] RC (6, 1) mit nur zwei Codeworten (0, 0, 0, 0, 0, 0) und (1, 1, 1, 1, 1, 1), die sich in keiner bzw. allen Bitpositionen unterscheiden:
  
 
::<math>W_{\rm RC(6,\hspace{0.08cm}1)}(X) = 1 + X^{6}\hspace{0.05cm}.</math>
 
::<math>W_{\rm RC(6,\hspace{0.08cm}1)}(X) = 1 + X^{6}\hspace{0.05cm}.</math>
Line 86: Line 86:
 
== Union Bound der Blockfehlerwahrscheinlichkeit ==
 
== Union Bound der Blockfehlerwahrscheinlichkeit ==
 
<br>
 
<br>
Wir betrachten wie im Beispiel zum Distanzspektrum den (5, 2)&ndash;Blockcode <i>C</i> = {<u><i>x</i></u><sub>0</sub>, <u><i>x</i></u><sub>1</sub>, <u><i>x</i></u><sub>2</sub>, <u><i>x</i></u><sub>3</sub>} und setzen voraus, dass das Codewort <u><i>x</i></u><sub>0</sub> gesendet wurde. Die Grafik verdeutlicht den Sachverhalt).<br>
+
Wir betrachten wie im [http://en.lntwww.de/Kanalcodierung/Schranken_f%C3%BCr_die_Blockfehlerwahrscheinlichkeit#Distanzspektrum_eines_linearen_Codes_.281.29 Beispiel zum Distanzspektrum] den (5, 2)&ndash;Blockcode <i>C</i> = {<u><i>x</i></u><sub>0</sub>, <u><i>x</i></u><sub>1</sub>, <u><i>x</i></u><sub>2</sub>, <u><i>x</i></u><sub>3</sub>} und setzen voraus, dass das Codewort <u><i>x</i></u><sub>0</sub> gesendet wurde. Die Grafik verdeutlicht den Sachverhalt).<br>
  
 
[[File:P ID2366 KC T 1 6 S2b v2.png|Zur Herleitung der Union Bound |class=fit]]<br>
 
[[File:P ID2366 KC T 1 6 S2b v2.png|Zur Herleitung der Union Bound |class=fit]]<br>
Line 101: Line 101:
 
  \hspace{0.05cm}.</math>
 
  \hspace{0.05cm}.</math>
  
Da  [<i><u>x</u></i><sub>0</sub> &#8594; <i><u>x</u></i><sub>1</sub>], [<i><u>x</u></i><sub>0</sub> &#8594; <i><u>x</u></i><sub>2</sub>], [<i><u>x</u></i><sub>0</sub> &#8594; <i><u>x</u></i><sub>3</sub>] nicht notwendigerweise <i>disjunkte Ereignisse</i> sind (die sich somit gegenseitig ausschließen würden), ist die Wahrscheinlichkeit der Vereinigungsmenge kleiner oder gleich der Summe der Einzelwahrscheinlichkeiten:
+
Da  [<i><u>x</u></i><sub>0</sub> &#8594; <i><u>x</u></i><sub>1</sub>], [<i><u>x</u></i><sub>0</sub> &#8594; <i><u>x</u></i><sub>2</sub>], [<i><u>x</u></i><sub>0</sub> &#8594; <i><u>x</u></i><sub>3</sub>] nicht notwendigerweise <i>disjunkte Ereignisse</i> sind (die sich somit gegenseitig ausschließen würden), ist die [http://en.lntwww.de/Stochastische_Signaltheorie/Mengentheoretische_Grundlagen#Vereinigungsmenge Wahrscheinlichkeit der Vereinigungsmenge] kleiner oder gleich der Summe der Einzelwahrscheinlichkeiten:
  
 
:<math>{\rm Pr(Blockfehler)} \le {\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] \hspace{0.05cm}+\hspace{0.05cm}{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}2}] \hspace{0.05cm}+ \hspace{0.05cm}{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}3}]  
 
:<math>{\rm Pr(Blockfehler)} \le {\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] \hspace{0.05cm}+\hspace{0.05cm}{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}2}] \hspace{0.05cm}+ \hspace{0.05cm}{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}3}]  
 
  \hspace{0.05cm}.</math>
 
  \hspace{0.05cm}.</math>
  
Man nennt diese obere Schranke für die (Block&ndash;)Fehlerwahrscheinlichkeit die Union Bound. Diese wurde bereits im Kapitel 4.3 des Buches &bdquo;Digitalsignalübertragung&rdquo; verwendet.<br>
+
Man nennt diese obere Schranke für die (Block&ndash;)Fehlerwahrscheinlichkeit die Union Bound. Diese wurde bereits im [http://en.lntwww.de/Digitalsignal%C3%BCbertragung/Approximation_der_Fehlerwahrscheinlichkeit#Union_Bound_-_Obere_Schranke_f.C3.BCr_die_Fehlerwahrscheinlichkeit_.281.29 Kapitel 4.3] des Buches &bdquo;Digitalsignalübertragung&rdquo; verwendet.<br>
  
 
Verallgemeinern und formalisieren wir diese Ergebnisse (sowohl <i><u>x</u></i> als auch <i><u>x</u></i>' gehören  zum Code <i>C</i>):<br>
 
Verallgemeinern und formalisieren wir diese Ergebnisse (sowohl <i><u>x</u></i> als auch <i><u>x</u></i>' gehören  zum Code <i>C</i>):<br>
Line 129: Line 129:
 
== Union Bound für das BSC–Modell ==
 
== Union Bound für das BSC–Modell ==
 
<br>
 
<br>
Wir betrachten weiterhin den beispielhaften (5, 2)&ndash;Code:<br>
+
Wir betrachten weiterhin den [http://en.lntwww.de/Kanalcodierung/Schranken_f%C3%BCr_die_Blockfehlerwahrscheinlichkeit#Distanzspektrum_eines_linearen_Codes_.281.29 beispielhaften (5, 2)&ndash;Code:]<br>
  
 
:[[File:P ID2406 KC T 1 6 S2 v2.png|BSC–Modell und ML–Detektion|class=fit]]<br>
 
:[[File:P ID2406 KC T 1 6 S2 v2.png|BSC–Modell und ML–Detektion|class=fit]]<br>
  
Für den digitalen Kanal verwenden wir das BSC&ndash;Modell (<i>Binary Symmetric Channel</i>):
+
Für den digitalen Kanal verwenden wir das [http://en.lntwww.de/Kanalcodierung/Klassifizierung_von_Signalen#Binary_Symmetric_Channel_.E2.80.93_BSC BSC&ndash;Modell] (<i>Binary Symmetric Channel</i>):
  
 
:<math>{\rm Pr}(y = 1 \hspace{0.05cm} | \hspace{0.05cm}x = 0 ) \hspace{-0.15cm} =  {\rm Pr}(y = 0 \hspace{0.05cm} | \hspace{0.05cm}x = 1 ) = {\rm Pr}(e = 1) = \varepsilon \hspace{0.05cm},</math>
 
:<math>{\rm Pr}(y = 1 \hspace{0.05cm} | \hspace{0.05cm}x = 0 ) \hspace{-0.15cm} =  {\rm Pr}(y = 0 \hspace{0.05cm} | \hspace{0.05cm}x = 1 ) = {\rm Pr}(e = 1) = \varepsilon \hspace{0.05cm},</math>
Line 167: Line 167:
  
 
Hierzu ist anzumerken:
 
Hierzu ist anzumerken:
*<i>W</i>(<i>X</i>) ist die zu Beginn dieses Kapitels 1.6 definierte Gewichtsfunktion, die den verwendeten Kanalcode charakterisiert.<br>
+
*<i>W</i>(<i>X</i>) ist die zu Beginn dieses Kapitels 1.6 definierte [http://en.lntwww.de/Kanalcodierung/Schranken_f%C3%BCr_die_Blockfehlerwahrscheinlichkeit#Distanzspektrum_eines_linearen_Codes_.282.29 Gewichtsfunktion,] die den verwendeten Kanalcode charakterisiert.<br>
  
 
*Der <i>Bhattacharyya&ndash;Parameter &beta;</i> kennzeichnet den digitalen Kanal. Beispielsweise gilt:
 
*Der <i>Bhattacharyya&ndash;Parameter &beta;</i> kennzeichnet den digitalen Kanal. Beispielsweise gilt:
Line 210: Line 210:
 
== Die obere Schranke nach Bhattacharyya (2) ==
 
== Die obere Schranke nach Bhattacharyya (2) ==
 
<br>
 
<br>
In der Tabelle ist die Bhattacharyya&ndash;Schranke für verschiedene BSC&ndash;Parameter <i>&epsilon;</i> abgegeben, gültig für den beispielhaften (5, 2)&ndash;Code. Für diesen gilt:
+
In der Tabelle ist die Bhattacharyya&ndash;Schranke für verschiedene BSC&ndash;Parameter <i>&epsilon;</i> abgegeben, gültig für den [http://en.lntwww.de/Kanalcodierung/Schranken_f%C3%BCr_die_Blockfehlerwahrscheinlichkeit#Distanzspektrum_eines_linearen_Codes_.281.29 beispielhaften (5, 2)&ndash;Code.] Für diesen gilt:
  
 
:<math>W_0 = 1 \hspace{0.05cm},\hspace{0.2cm} W_1 = W_2 = 0 \hspace{0.05cm},\hspace{0.2cm}W_3 = 2 \hspace{0.05cm},\hspace{0.2cm}
 
:<math>W_0 = 1 \hspace{0.05cm},\hspace{0.2cm} W_1 = W_2 = 0 \hspace{0.05cm},\hspace{0.2cm}W_3 = 2 \hspace{0.05cm},\hspace{0.2cm}
Line 241: Line 241:
 
*<i>Soft&ndash;Decision</i> nach dem ML&ndash;Kriterium.<br><br>
 
*<i>Soft&ndash;Decision</i> nach dem ML&ndash;Kriterium.<br><br>
  
Die Ergebnisse sind in der folgenden Grafik zusammengefasst. Im Gegensatz zur Grafik im Kapitel 1.5 ist hier die Blockfehlerrate angegeben und nicht die Bitfehlerrate. Näherungsweise ist Letztere um den Faktor <i>d</i><sub>min</sub>/<i>k</i> kleiner, falls wie hier <i>d</i><sub>min</sub> < <i>k</i> ist. Im vorliegenden Beispiel gilt <i>d</i><sub>min</sub>/<i>k</i> = 0.75.<br>
+
Die Ergebnisse sind in der folgenden Grafik zusammengefasst. Im Gegensatz zur Grafik im [http://en.lntwww.de/Kanalcodierung/Decodierung_linearer_Blockcodes#Codiergewinn_.E2.80.93_Bitfehlerrate_bei_AWGN Kapitel 1.5] ist hier die Blockfehlerrate angegeben und nicht die Bitfehlerrate. Näherungsweise ist Letztere um den Faktor <i>d</i><sub>min</sub>/<i>k</i> kleiner, falls wie hier <i>d</i><sub>min</sub> < <i>k</i> ist. Im vorliegenden Beispiel gilt <i>d</i><sub>min</sub>/<i>k</i> = 0.75.<br>
  
 
[[File:P ID2369 KC T 1 6 S5 v3.png|Blockfehlerwahrscheinlichkeit und Schranken des HC (7, 4, 3)|class=fit]]<br>
 
[[File:P ID2369 KC T 1 6 S5 v3.png|Blockfehlerwahrscheinlichkeit und Schranken des HC (7, 4, 3)|class=fit]]<br>

Revision as of 21:47, 23 January 2017

Distanzspektrum eines linearen Codes (1)


Wir gehen weiterhin von einem linearen und binären (n, k)–Blockcode C aus. Ein wesentliches Ziel des Codedesigns ist es, die Blockfehlerwahrscheinlichkeit Pr(υu) = Pr(zx) möglichst gering zu halten. Dies erreicht man unter anderem dadurch, dass

  • die minimale Distanz dmin zwischen zwei Codeworten x und x' möglichst groß ist, so dass man bis zu t = ⌊(dmin–1)/2⌋ Bitfehler richtig korrigieren kann;
  • gleichzeitig die minimale Distanz dminworst–case möglichst selten auftritt, wenn man alle zulässigen Codeworte berücksichtigt.

: Wir benennen die Anzahl der Codeworte x' ∈ C mit der Hamming–Distanz i vom betrachteten Codewort x des gleichen Codes C mit Wi(x), wobei gilt:

\[W_i(\underline{x}) = \left | \hspace{0.05cm} \left \{ \underline{x} \hspace{0.05cm}, \underline{x}{\hspace{0.03cm}' \in \hspace{0.05cm} \mathcal{C}} \hspace{0.1cm}|\hspace{0.1cm} d_{\rm H}(\underline{x} \hspace{0.05cm}, \hspace{0.1cm}\underline{x}' ) = i \right \} \hspace{0.05cm} \right |\hspace{0.05cm}.\]

Man bezeichnet diesen Wert auch als Vielfachheit (englisch: Multiplicity).


Die Betragsstriche kennzeichnen hierbei die Anzahl der Codeworte x', die die Bedingung { ... } erfüllen.

: Wir betrachten den (5, 2)–Blockcode C mit der Generatormatrix

\[{ \boldsymbol{\rm G}} = \begin{pmatrix} 1 &0 &1 &1 &0 \\ 0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.\]

Die nachfolgende Tabelle zeigt die Hamming–Distanzen zwischen allen Codeworten x mit den vier möglichen Bezugsworten x0, ... , x3.

Hamming–Distanzen zwischen allen Codeworten

Man erkennt, dass unabhängig vom Bezugswort xi gilt:

\[W_0 = 1 \hspace{0.05cm},\hspace{0.2cm} W_1 = W_2 = 0 \hspace{0.05cm},\hspace{0.2cm}W_3 = 2 \hspace{0.05cm},\hspace{0.2cm} W_4 = 1 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} d_{\rm min} = 3\hspace{0.05cm}.\]


Distanzspektrum eines linearen Codes (2)


Nicht nur im letzten Beispiel, sondern bei jedem linearen Code ergeben sich für jedes Codewort die gleichen Vielfachheiten Wi. Da zudem das Nullwort 0 = (0, 0, ..., 0) Bestandteil eines jeden linearen Binärcodes ist, lässt sich die Definition der letzten Seite auch wie folgt formulieren:

: Das Distanzspektrum eines linearen binären (n, k)–Blockcodes ist die Menge {Wi} mit i = 0, 1, ... , n. Hierbei gibt Wi die Anzahl der Codeworte xC mit Hamming–Gewicht wH(x) = i an. Oft beschreibt man die Menge {Wi} auch als Polynom mit einer Pseudovariablen X:

\[\left \{ \hspace{0.05cm} W_i \hspace{0.05cm} \right \} \hspace{0.3cm} \Leftrightarrow \hspace{0.3cm} W(X) = \sum_{i=0 }^{n} W_i \cdot Xi^{i} = W_0 + W_1 \cdot X + W_2 \cdot X^{2} + ... \hspace{0.05cm} + W_n \cdot X^{n}\hspace{0.05cm}.\]

Man bezeichnet W(X) auch als Gewichtsfunktion (englisch: Weight Enumerator Function, WEF).


Beispielsweise lautet die Gewichtsfunktion des (5, 2)–Codes

\[\mathcal{C} = \left \{ \hspace{0.05cm}(0, 0, 0, 0, 0) \hspace{0.05cm},\hspace{0.15cm} (0, 1, 0, 1, 1) \hspace{0.05cm},\hspace{0.15cm}(1, 0, 1, 1, 0) \hspace{0.05cm},\hspace{0.15cm}(1, 1, 1, 0, 1) \hspace{0.05cm} \right \}\]

vom Beispiel auf der letzten Seite

\[W(X) = 1 + 2 \cdot X^{3} + X^{4}\hspace{0.05cm}.\]

Wie aus der Tabelle seiner Codeworte hervorgeht, erhält man für den (7, 4, 3)–Hamming–Code:

\[W(X) = 1 + 7 \cdot X^{3} + 7 \cdot X^{4} + X^{7}\hspace{0.05cm}.\]

Die Überführung des Distanzspektrums {Wi} in die Gewichtsfunktion W(X) bietet zudem bei manchen Aufgabenstellungen große numerische Vorteile. Ist beispielsweise die Weight Enumerator Function W(X) eines (n, k)–Blockcodes bekannt, so gilt für die WEF des hierzu dualen (n, nk)–Codes CDual:

\[W_{\rm Dual}(X) = \frac{(1+X)^n}{2^k} \cdot W \left ( \frac{1-X}{1+X} \right )\hspace{0.05cm}.\]

: Gesucht ist die Gewichtsfunktion W(X) des Single Parity–check Codes mit n = 6, k = 5 ⇒  SPC (6, 5). Man erhält diese durch Vergleich aller 25 = 32 Codeworte mit dem Nullwort:

\[W_{\rm SPC(6,\hspace{0.08cm}5)}(X) = 1 + 15 \cdot X^{2} + 15 \cdot X^{4} + X^{6}\hspace{0.05cm}.\]

Unter Berücksichtigung obiger Gleichung kommt man sehr viel schneller zum gleichen Ergebnis:

  • Der zu SPC (6, 5) duale Code ist der Repetition Code RC (6, 1) mit nur zwei Codeworten (0, 0, 0, 0, 0, 0) und (1, 1, 1, 1, 1, 1), die sich in keiner bzw. allen Bitpositionen unterscheiden:
\[W_{\rm RC(6,\hspace{0.08cm}1)}(X) = 1 + X^{6}\hspace{0.05cm}.\]
  • Daraus folgt für die Gewichtsfunktion des SPC (6, 5) nach obiger Gleichung mit k = 1:
\[W_{\rm SPC(6,\hspace{0.08cm}5)}(X) \hspace{-0.15cm} = \hspace{-0.15cm} \frac{(1+X)^6}{2^1} \cdot W \left [1 + \left ( (1-X)/(1+X)\right )^6 \right ] = \]
\[\hspace{2.5cm} = \hspace{-0.15cm} 1/2 \cdot \left [( 1+X) ^6 + ( 1-X) ^6 \right ] = 1 + 15 \cdot X^{2} + 15 \cdot X^{4} + X^{6}\hspace{0.05cm}.\]


Union Bound der Blockfehlerwahrscheinlichkeit


Wir betrachten wie im Beispiel zum Distanzspektrum den (5, 2)–Blockcode C = {x0, x1, x2, x3} und setzen voraus, dass das Codewort x0 gesendet wurde. Die Grafik verdeutlicht den Sachverhalt).

Zur Herleitung der Union Bound

Im fehlerfreien Fall würde dann der Codewortschätzer z = x0 liefern. Andernfalls käme es zu einem Blockfehler (das heißt zx und dementsprechend υu) mit der Wahrscheinlichkeit

\[{\rm Pr(Blockfehler)} = {\rm Pr}\left ([\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] \hspace{0.05cm}\cup\hspace{0.05cm}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}2}] \hspace{0.05cm}\cup\hspace{0.05cm}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}3}] \right ) \hspace{0.05cm}.\]

Das Ereignis „Verfälschung von x0 nach x1” tritt für ein gegebenes Empfangswort y entsprechend der ML–Entscheidungsregel genau dann ein, wenn für die bedingte Wahrscheinlichkeitsdichtefunktion gilt:

\[[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] \hspace{0.3cm} \Longleftrightarrow \hspace{0.3cm} f(\underline{x}_{\hspace{0.02cm}0}\hspace{0.02cm} | \hspace{0.05cm}\underline{y}) < f(\underline{x}_{\hspace{0.02cm}1}\hspace{0.02cm} | \hspace{0.05cm}\underline{y}) \hspace{0.05cm}.\]

Da [x0x1], [x0x2], [x0x3] nicht notwendigerweise disjunkte Ereignisse sind (die sich somit gegenseitig ausschließen würden), ist die Wahrscheinlichkeit der Vereinigungsmenge kleiner oder gleich der Summe der Einzelwahrscheinlichkeiten:

\[{\rm Pr(Blockfehler)} \le {\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] \hspace{0.05cm}+\hspace{0.05cm}{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}2}] \hspace{0.05cm}+ \hspace{0.05cm}{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}3}] \hspace{0.05cm}.\]

Man nennt diese obere Schranke für die (Block–)Fehlerwahrscheinlichkeit die Union Bound. Diese wurde bereits im Kapitel 4.3 des Buches „Digitalsignalübertragung” verwendet.

Verallgemeinern und formalisieren wir diese Ergebnisse (sowohl x als auch x' gehören zum Code C):

Blockfehlerwahrscheinlichkeit

\[{\rm Pr(Blockfehler)} = {\rm Pr} \left ( \bigcup_{\underline{x}' \ne \underline{x}} \hspace{0.15cm} [\underline{x} \mapsto \underline{x}'] \right )\hspace{0.05cm},\]

Obere Schranke nach der Union Bound:

\[{\rm Pr(Union \hspace{0.15cm}Bound)} \le \sum_{\underline{x}' \ne \underline{x}} \hspace{0.15cm} {\rm Pr}[\underline{x} \mapsto \underline{x}'] \hspace{0.05cm},\]

Paarweise Fehlerwahrscheinlichkeit (nach dem MAP– bzw. ML–Kriterium):

\[{\rm Pr}\hspace{0.02cm}[\underline{x} \mapsto \underline{x}'] = {\rm Pr} \left [ f(\underline{x}\hspace{0.05cm} | \hspace{0.05cm}\underline{y}) \le f(\underline{x}'\hspace{0.05cm} | \hspace{0.05cm}\underline{y}) \right ] \hspace{0.05cm}.\]

Auf den nächsten Seiten werden diese Ergebnisse auf verschiedene Kanäle angewendet.

Union Bound für das BSC–Modell


Wir betrachten weiterhin den beispielhaften (5, 2)–Code:

BSC–Modell und ML–Detektion

Für den digitalen Kanal verwenden wir das BSC–Modell (Binary Symmetric Channel):

\[{\rm Pr}(y = 1 \hspace{0.05cm} | \hspace{0.05cm}x = 0 ) \hspace{-0.15cm} = {\rm Pr}(y = 0 \hspace{0.05cm} | \hspace{0.05cm}x = 1 ) = {\rm Pr}(e = 1) = \varepsilon \hspace{0.05cm},\] \[{\rm Pr}(y = 0 \hspace{0.05cm} | \hspace{0.05cm}x = 0 ) \hspace{-0.15cm} = {\rm Pr}(y = 1 \hspace{0.05cm} | \hspace{0.05cm}x = 1 ) = {\rm Pr}(e = 0) = 1 -\varepsilon \hspace{0.05cm}.\]

Die beiden Codeworte x0 = (0, 0, 0, 0, 0) und x1 = (0, 1, 0, 1, 1) unterscheiden sich in genau d = 3 Bitpositionen, wobei d die Hamming–Distanz zwischen x0 und x1 angibt. Ein falsches Decodierergebnis [x0x1] erhält man immer dann, wenn mindestens zwei der drei Bit an den Bitpositionen 2, 4 und 5 verfälscht werden. Die Bitpositionen 1 und 3 spielen hier dagegen keine Rolle, da diese für x0 und x1 gleich sind. Da der betrachtete Code t  = ⌊(d–1)/2⌋ = 1 Fehler korrigieren kann, gilt:

\[{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] \hspace{-0.1cm} = \hspace{-0.1cm} \sum_{i=t+1 }^{d} {d \choose i} \cdot \varepsilon^{i} \cdot (1 - \varepsilon)^{d-i} = {3 \choose 2} \cdot \varepsilon^{2} \cdot (1 - \varepsilon) + {3 \choose 3} \cdot \varepsilon^{3} =\] \[\hspace{2.5cm} = \hspace{-0.1cm} 3 \cdot \varepsilon^2 \cdot (1 - \varepsilon) + \varepsilon^3 = {\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}2}]\hspace{0.05cm}.\]

Die Codeworte x0 und x3 unterscheiden sich in vier Bitpositionen. Zu einer falschen Decodierung des Blocks kommt es deshalb mit Sicherheit, wenn vier oder drei Bit verfälscht werden. Eine Verfälschung von zwei Bit hat mit 50–prozentiger Wahrscheinlichkeit ebenfalls einen Blockfehler zur Folge, wenn man hierfür eine Zufallsentscheidung voraussetzt:

\[{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}3}] = \varepsilon^4 + 4 \cdot \varepsilon^3 \cdot (1 - \varepsilon) + {1}/{2} \cdot 6 \cdot \varepsilon^2 \cdot (1 - \varepsilon)^2 \hspace{0.05cm}.\]

Daraus ergibt sich für die „Union Bound”:

\[{\rm Pr(Union \hspace{0.15cm}Bound)} = {\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \hspace{-0.02cm}\mapsto \hspace{-0.02cm}\underline{x}_{\hspace{0.02cm}1}] +{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \hspace{-0.02cm}\mapsto \hspace{-0.02cm} \underline{x}_{\hspace{0.02cm}2}] +{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \hspace{-0.02cm}\mapsto \hspace{-0.02cm} \underline{x}_{\hspace{0.02cm}3}] \ge {\rm Pr(Blockfehler)} .\]

In der Tabelle sind die Ergebnisse für verschiedene Werte des BSC–Parameters ε zusammengefasst:

Zahlenmäßige Union Bound für den (5, 2)–Code

Zu erwähnen ist, dass die völlig unterschiedlich zu berechnenden Wahrscheinlichkeiten Pr(x0x1) und Pr(x0 → x3) genau das gleiche Ergebnis liefern.

Die obere Schranke nach Bhattacharyya (1)


Eine weitere obere Schranke für die Blockfehlerwahrscheinlichkeit wurde von Bhattacharyya angegeben:

\[{\rm Pr(Blockfehler)} \le W(X = \beta) -1 = {\rm Pr(Bhattacharyya)} \hspace{0.05cm}.\]

Hierzu ist anzumerken:

  • W(X) ist die zu Beginn dieses Kapitels 1.6 definierte Gewichtsfunktion, die den verwendeten Kanalcode charakterisiert.
  • Der Bhattacharyya–Parameter β kennzeichnet den digitalen Kanal. Beispielsweise gilt:
\[\beta = \left\{ \begin{array}{c} \lambda \\ \sqrt{4 \cdot \varepsilon \cdot (1- \varepsilon)}\\ {\rm exp}[- R \cdot E_{\rm B}/N_0] \end{array} \right.\quad \begin{array}{*{1}c} {\rm f\ddot{u}r\hspace{0.15cm} das \hspace{0.15cm}BEC-Modell},\\ {\rm f\ddot{u}r\hspace{0.15cm} das \hspace{0.15cm}BSC-Modell}, \\ {\rm f\ddot{u}r\hspace{0.15cm} das \hspace{0.15cm}AWGN-Modell}. \end{array}\]
  • Die Bhattacharyya–Schranke liegt stets (und meist deutlich) oberhalb der Kurve für die „Union Bound”. Mit dem Ziel, eine für alle Kanäle einheitliche Schranke zu finden, müssen hier sehr viel gröbere Abschätzungen vorgenommen werden als für die Herleitung der Union Bound.

Bhattacharyya–Schranke für das BSC–Modell

Für die paarweise Verfälschungswahrscheinlichkeit des BSC–Modells wurde vorne hergeleitet:

\[{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] = \sum_{i= \left\lfloor (d-1)/2 \right\rfloor}^{d} {d \choose i} \cdot \varepsilon^{i} \cdot (1 - \varepsilon)^{d-i} = \sum_{i= \left\lceil d/2 \right\rceil }^{d} {d \choose i} \cdot \varepsilon^{i} \cdot (1 - \varepsilon)^{d-i}\hspace{0.05cm}.\]

Hierbei kennzeichnet ε = Pr(y = 1| x = 0) = Pr(y = 0| x = 1) < 0.5 das BSC–Modell und d = dH(x0x1) gibt die Hamming–Distanz der betrachteten Codeworte an.

Um zur Bhattacharyya–Schranke zu kommen, müssen folgende Abschätzungen getroffen werden:

  • Für alle i < d gilt εi · (1 – ε)di ≤ [ε · (1 – ε)]d/2:
\[{\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] \le [\varepsilon \cdot (1 - \varepsilon)]^{d/2} \cdot \sum_{i= \left\lceil d/2 \right\rceil }^{d} {d \choose i} \hspace{0.05cm}.\]
  • Änderung bezüglich der unteren Grenze der Laufvariablen i:
\[\sum_{i= \left\lceil d/2 \right\rceil }^{d} {d \choose i} \hspace{0.15cm} < \hspace{0.15cm} \sum_{i= 0 }^{d} {d \choose i} = 2^d\hspace{0.05cm}, \hspace{0.2cm}\beta = 2 \cdot \sqrt{\varepsilon \cdot (1 - \varepsilon)} \hspace{0.3cm} \Rightarrow \hspace{0.3cm} {\rm Pr}[\underline{x}_{\hspace{0.02cm}0} \mapsto \underline{x}_{\hspace{0.02cm}1}] = \beta^{d} \hspace{0.05cm}.\]
  • Umsortierung gemäß den Hamming–Gewichten Wi (Hamming–Distanz d = i kommt Wi mal vor):
\[{\rm Pr(Blockfehler)} \hspace{0.1cm} \le \hspace{0.1cm} \sum_{i= 1 }^{n} W_i \cdot \beta^{i} = 1 + W_1 \cdot \beta + W_2 \cdot \beta^2 + ... \hspace{0.05cm}+ W_n \cdot \beta^n \hspace{0.05cm}.\]
  • Mit der Gewichtsfunktion W(X) = 1 + W1 · X + W2 · X 2 + ... + Wn · X n:
\[{\rm Pr(Blockfehler)} \le W(X = \beta) -1= {\rm Pr(Bhattacharyya)} \hspace{0.05cm}.\]

Die obere Schranke nach Bhattacharyya (2)


In der Tabelle ist die Bhattacharyya–Schranke für verschiedene BSC–Parameter ε abgegeben, gültig für den beispielhaften (5, 2)–Code. Für diesen gilt:

\[W_0 = 1 \hspace{0.05cm},\hspace{0.2cm} W_1 = W_2 = 0 \hspace{0.05cm},\hspace{0.2cm}W_3 = 2 \hspace{0.05cm},\hspace{0.2cm} W_4 = 1 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} W(X) = 1 + 2 \cdot X^3 + X^4\]

\[\Rightarrow \hspace{0.3cm} {\rm Pr(Blockfehler)} \le W(\beta) -1 = 2 \cdot \beta^3 + \beta^4 = {\rm Pr(Bhattacharyya)} \hspace{0.05cm}.\]

Vergleich von Union Bound und Bhattacharyya–Schranke beim BSC–Modell

Basierend auf diesem Beispiel für den einfachen (5, 2)–Code, der allerdings wenig praxisrelevant ist, sowie dem Beispiel auf der nächsten Seite für den (7, 4, 3)–Hamming–Code kann man zusammenfassen:

  • Die Blockfehlerwahrscheinlichkeit eines Codiersystems ist oft analytisch nicht angebbar und muss per Simulation ermittelt werden. Gleiches gilt für die Bitfehlerwahrscheinlichkeit.
  • Die Union Bound liefert eine obere Schranke für die Blockfehlerwahrscheinlichkeit. Bei vielen Anwendungen (insbesondere bei kurzen Codes) liegt sie nur geringfügig über dieser.
  • Die Bhattacharyya–Schranke liegt beim BEC–Kanal etwa um den Faktor 2 oberhalb der Union Bound – siehe Aufgabe A1.14. Beim BSC– und beim AWGN–Kanal ist der Abstand zwischen beiden Schranken deutlich größer. Der Faktor 10 (oder mehr) ist keine Seltenheit.
  • Die Bhattacharyya–Schranke W(β) – 1 wirkt auf den ersten Blick sehr einfach. Es sind einige Vereinfachungsschritte erforderlich, um auf diese Form zu kommen. Trotzdem benötigt man auch hier Kenntnis über die genaue Gewichtsfunktion W(ξ) des Codes.
  • Bei Kenntnis des Übertragungskanals (BEC, BSC, AWGN oder Abwandlungen hiervon) und dessen Parameter spricht vom Aufwand her nichts dagegen, die Union Bound als obere Schranke für die Blockfehlerwahrscheinlichkeit zu verwenden.

Schranken für den (7, 4, 3)–Hamming–Code beim AWGN–Kanal


Abschließend betrachten wir die Blockfehlerwahrscheinlichkeit und deren Schranken (Union Bound und Bhattacharyya–Schranke) für die folgende Konfiguration:

  • AWGN–Kanal, gekennzeichnet durch den Quotienten EB/N0,
  • Hamming–Code (7, 4)   ⇒   R = 4/7,   W(X) – 1 = 7 · X3 + 7 · X4 + X7,
  • Soft–Decision nach dem ML–Kriterium.

Die Ergebnisse sind in der folgenden Grafik zusammengefasst. Im Gegensatz zur Grafik im Kapitel 1.5 ist hier die Blockfehlerrate angegeben und nicht die Bitfehlerrate. Näherungsweise ist Letztere um den Faktor dmin/k kleiner, falls wie hier dmin < k ist. Im vorliegenden Beispiel gilt dmin/k = 0.75.

Blockfehlerwahrscheinlichkeit und Schranken des HC (7, 4, 3)

Die folgenden Zahlenwerte gelten für 10 · lg EB/N0 = 8 dB   ⇒   EB/N0 = 6.31 (blaue Markierungen):

  • Die grünen Kreuze markieren die Union Bound. Nach dieser gilt:
\[{\rm Pr(Blockfehler)} \hspace{-0.15cm} \le \hspace{-0.15cm} \sum_{i= d_{\rm min} }^{n} W_i \cdot {\rm Q} \left ( \sqrt{i \cdot {2R \cdot E_{\rm B}}/{N_0}} \right ) =\]
\[\hspace{3cm} = \hspace{-0.15cm} 7 \cdot {\rm Q} (4.65) + 7 \cdot {\rm Q} (5.37) + {\rm Q} (7.10) = \]
\[\hspace{3cm} \approx \hspace{-0.15cm} 7 \cdot 1.66 \cdot 10^{-6} + 7 \cdot 3.93 \cdot 10^{-8}+ 10^{-9} = 1.2 \cdot 10^{-5} \hspace{0.05cm}.\]


  • Die Zahlenwerte machen deutlich, dass die Union Bound durch den ersten Term bestimmt wird:
\[{\rm Pr(Union\hspace{0.15cm} Bound)} \approx W_{d_{\rm min}} \cdot {\rm Q} \left ( \sqrt{d_{\rm min} \cdot {2R \cdot E_{\rm B}}/{N_0}} \right ) = 1.16 \cdot 10^{-5} \hspace{0.05cm}.\]
Allerdings ist diese sog. Truncated Union Bound nicht mehr bei allen Anwendungen eine echte Schranke für die Blockfehlerwahrscheinlichkeit, sondern ist eher als Näherung zu verstehen.
  • Die Bhattacharyya–Schranke ist in der Grafik durch rote Punkte markiert. Diese Schranke liegt aufgrund der stark vereinfachten Chernoff–Rubin Bound Q(x) ≤ exp(– x2/2) deutlich über der Union Bound. Für 10 · lg EB/N0 = 8 dB erhält man mit β = exp[–R · EB/N0] ≈ 0.027:
\[{\rm Pr(Bhattacharyya)} = W(\beta) -1 = 7 \cdot \beta^3 + 7 \cdot \beta^4 + \beta^7 \approx 1.44 \cdot 10^{-4} \hspace{0.05cm}.\]

Aufgaben


A1.14 Bhattacharyya–Schranke für BEC

A1.15 Distanzspektren

A1.16 Schranken für AWGN

Zusatzaufgaben:1.16 Schranken für Q(x)