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

From LNTwww
(Die Seite wurde neu angelegt: „ {{Header |Untermenü=Binäre Blockcodes zur Kanalcodierung |Vorherige Seite=Decodierung linearer Blockcodes |Nächste Seite=Informationstheoretische Grenzen…“)
 
Line 84: Line 84:
 
= 1 + 15 \cdot X^{2} + 15 \cdot X^{4} + X^{6}\hspace{0.05cm}.</math>{{end}}<br>
 
= 1 + 15 \cdot X^{2} + 15 \cdot X^{4} + X^{6}\hspace{0.05cm}.</math>{{end}}<br>
  
 +
== Union Bound der Blockfehlerwahrscheinlichkeit ==
 +
<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>
  
 +
[[File:P ID2366 KC T 1 6 S2b v2.png|Zur Herleitung der Union Bound |class=fit]]<br>
  
 +
Im fehlerfreien Fall würde dann der Codewortschätzer <u><i>z</i></u> = <u><i>x</i></u><sub>0</sub> liefern. Andernfalls käme es zu einem Blockfehler (das heißt  <u><i>z</i></u> &ne; <u><i>x</i></u> und dementsprechend <u><i>&upsilon;</i></u> &ne; <u><i>u</i></u>) mit der Wahrscheinlichkeit
  
 +
:<math>{\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}.</math>
  
 +
Das Ereignis &bdquo;Verfälschung von <u><i>x</i></u><sub>0</sub> nach <u><i>x</i></u><sub>1</sub>&rdquo; tritt für ein gegebenes Empfangswort <u><i>y</i></u> entsprechend der ML&ndash;Entscheidungsregel genau dann ein, wenn für die bedingte Wahrscheinlichkeitsdichtefunktion gilt:
  
 +
:<math>[\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}.</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:
 +
 +
:<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>
 +
 +
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>
 +
 +
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>
 +
 +
<span style="font-weight: bold;">Blockfehlerwahrscheinlichkeit
 +
</span><br>
 +
 +
:<math>{\rm Pr(Blockfehler)} = {\rm Pr} \left ( \bigcup_{\underline{x}' \ne \underline{x}} \hspace{0.15cm} [\underline{x} \mapsto \underline{x}'] \right )\hspace{0.05cm},</math>
 +
 +
Obere Schranke nach der <span style="font-weight: bold;">Union Bound</span>:
 +
 +
:<math>{\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},</math>
 +
 +
<span style="font-weight: bold;">Paarweise Fehlerwahrscheinlichkeit </span> (nach dem MAP&ndash; bzw. ML&ndash;Kriterium):
 +
 +
:<math>{\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}.</math>
 +
 +
Auf den nächsten Seiten werden diese Ergebnisse auf verschiedene Kanäle angewendet.<br>
  
  
  
 
{{Display}}
 
{{Display}}

Revision as of 23:45, 9 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.