Kanalcodierung/Distanzeigenschaften und Fehlerwahrscheinlichkeitsschranken: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
Zeile 97: Zeile 97:
 
:<math>T(X) =  X^5 + 2 \cdot X^6  + 4 \cdot X^7+ 8 \cdot X^8+ ... </math>
 
:<math>T(X) =  X^5 + 2 \cdot X^6  + 4 \cdot X^7+ 8 \cdot X^8+ ... </math>
  
unseres Standard&ndash;Faltungscodierers, so fällt die &bdquo;1&rdquo; in der ersten Gleichung auf. Das heißt: Bei den linearen Blockcodes wird das Bezugs&ndash;Codewort <nobr><u><i>x</i></u><sub><i>i</i></sub> = <u>0</u></nobr> mitgezählt, wohingegen die Nullcodesequenz <nobr><u><i>x</i></u><sub><i>i</i></sub> = <u>0</u></nobr> bzw. der Nullpfad <i>&phi;</i><sub>0</sub> bei den Faltungscodes ausgeschlossen wird. Nach Ansicht der Autoren hätte man auch  <i>W</i>(<i>X</i>) ohne die &bdquo;1&rdquo; definieren können. Damit wäre unter anderem vermieden worden, dass sich die Bhattacharyya&ndash;Schranke für lineare Blockcodes und für Faltungscodes durch &bdquo;&ndash;1&rdquo; unterscheiden, wie aus den folgenden Gleichungen hervorgeht:<br>
+
unseres Standard&ndash;Faltungscodierers, so fällt die &bdquo;1&rdquo; in der ersten Gleichung auf. Das heißt: Bei den linearen Blockcodes wird das Bezugs&ndash;Codewort <u><i>x</i></u><sub><i>i</i></sub> = <u>0</u> mitgezählt, wohingegen die Nullcodesequenz <u><i>x</i></u><sub><i>i</i></sub> = <u>0</u> bzw. der Nullpfad <i>&phi;</i><sub>0</sub> bei den Faltungscodes ausgeschlossen wird. Nach Ansicht der Autoren hätte man auch  <i>W</i>(<i>X</i>) ohne die &bdquo;1&rdquo; definieren können. Damit wäre unter anderem vermieden worden, dass sich die Bhattacharyya&ndash;Schranke für lineare Blockcodes und für Faltungscodes durch &bdquo;&ndash;1&rdquo; unterscheiden, wie aus den folgenden Gleichungen hervorgeht:<br>
  
 
Bhattacharyya&ndash;Schranke für die linearen Blockcodes:
 
Bhattacharyya&ndash;Schranke für die linearen Blockcodes:
Zeile 110: Zeile 110:
  
 
Die Pfadgewichtsfunktion <i>T</i>(<i>X</i>) liefert nur Informationen hinsichtlich der Gewichte der Codesequenz <u><i>x</i></u>. Mehr Informationen erhält man, wenn zusätzlich auch die Gewichte der Informationssequenz <u><i>u</i></u> erfasst werden. Man benötigt dann zwei Formalparameter <i>X</i> und <i>U</i>, wie aus der Definition auf der folgenden Seite hervorgeht.<br>
 
Die Pfadgewichtsfunktion <i>T</i>(<i>X</i>) liefert nur Informationen hinsichtlich der Gewichte der Codesequenz <u><i>x</i></u>. Mehr Informationen erhält man, wenn zusätzlich auch die Gewichte der Informationssequenz <u><i>u</i></u> erfasst werden. Man benötigt dann zwei Formalparameter <i>X</i> und <i>U</i>, wie aus der Definition auf der folgenden Seite hervorgeht.<br>
 +
 +
== Erweiterte Pfadgewichtsfunktion ==
 +
<br>
 +
{{Definition}}''':''' Die <b>erweiterte Pfadgewichtsfunktion</b> (englisch: <i>Enhanced Path Weight Enumerator Function</i>, EPWEF) lautet:
 +
 +
:<math>T_{\rm enh}(X, U) = \sum_{\varphi_j \in {\it \Phi}}\hspace{0.1cm}  X^{w(\varphi_j)} \cdot U^{{ u}(\varphi_j)}  \hspace{0.1cm}=\hspace{0.1cm} \sum_{w} \sum_{u}\hspace{0.1cm}  A_{w, \hspace{0.05cm}u} \cdot X^w  \cdot U^{u}
 +
\hspace{0.05cm}.</math>
 +
 +
Es gelten alle Angaben der  Definition von <i>T</i>(<i>X</i>) auf der letzten Seite. Zusätzlich ist zu beachten:
 +
*Das Pfadeingangsgewicht <i>u</i>(<i>&phi;<sub>j</sub></i>) ist gleich dem Hamming&ndash;Gewicht der zum Pfad <i>&phi;<sub>j</sub></i> assoziierten Informationssequenz <i><u>u</u><sub>j</sub></i>. Es wird als Potenz des Formalparameters <i>U</i> ausgedrückt.<br>
 +
 +
*Der Koeffizient <i>A<sub>w,&nbsp;u</sub></i> bezeichnet die Anzahl der Pfade <i>&phi;<sub>j</sub></i> mit dem Pfadausgangsgewicht <i>w</i>(<i>&phi;<sub>j</sub></i>) und dem Pfadeingangsgewicht <i>u</i>(<i>&phi;<sub>j</sub></i>). Als Laufvariable für den zweiten Anteil wird <i>u</i> verwendet.<br>
 +
 +
*Setzt man in der erweiterten Pfadgewichtsfunktion den Formalparameter <i>U</i> = 1, so ergibt sich die ursprüngliche Gewichtsfunktion <i>T</i>(<i>X</i>) gemäß der Definition auf der letzten Seite.<br><br>
 +
 +
Bei vielen (und allen relevanten) Faltungscodes lässt sich obere Gleichung noch vereinfachen:
 +
 +
:<math>T_{\rm enh}(X, U) =\hspace{0.1cm} \sum_{w = d_{\rm F}}^{\infty}\hspace{0.1cm}  A_w \cdot X^w \cdot U^{u}
 +
\hspace{0.05cm}.</math>{{end}}<br>
 +
 +
Die erweiterte Pfadgewichtsfunktion unseres Standardcodieres lautet somit:
 +
 +
:<math>T_{\rm enh}(X, U) =  U \cdot X^5 + 2  \cdot U^2 \cdot X^6  + 4  \cdot  U^3 \cdot X^7+ ... \hspace{0.1cm}
 +
\hspace{0.05cm}.</math>
 +
 +
Vergleicht man dieses Ergebnis mit dem unten dargestellten Trellis, so erkennt man:
 +
*Der gelb hinterlegte Pfad &ndash; gekennzeichnet durch <i>X</i><sup> 5</sup> &ndash; setzt sich aus einem blauen Pfeil (<i>u<sub>i</sub></i> = 1) und zwei roten Pfeilen (<i>u<sub>i</sub></i> = 0) zusammen. Somit wird aus <i>X</i><sup> 5</sup> der erweiterte Term <i>U</i><i>X</i><sup> 5</sup>.<br>
 +
 +
*Die Sequenzen der beiden grünen Pfade sind <u><i>u</i></u><sub>2</sub> = (1, 1, 0, 0) &nbsp;&#8658;&nbsp; <u><i>x</i></u><sub>2</sub> = (11, 01, 01, 11) sowie  <u><i>u</i></u><sub>3</sub> = (1, 0, 1, 0, 0) &nbsp;&#8658;&nbsp; <u><i>x</i></u><sub>3</sub> = (11, 10, 00, 10, 11). Daraus ergibt sich der zweite Term 2 &middot; <i>U</i><sup> 2</sup><i>X</i><sup> 6</sup>.<br>
 +
 +
*Der graue Pfad (und die drei nicht gezeichneten Pfade) ergeben zusammen den Beitrag 4 &middot; <i>U</i><sup> 3</sup><i>X</i><sup> 7</sup>. Jeder dieser Pfade beinhaltet drei blaue Pfeile &nbsp;&#8658;&nbsp; drei Einsen in jeder Informationssequenz.<br>
 +
 +
[[Datei:P ID2702 KC T 3 5 S2a v1.png|Einige Pfade und ihre Pfadgewichte|class=fit]]<br>
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
  

Version vom 16. Januar 2017, 19:46 Uhr

Freie Distanz vs. Minimale Distanz


Eine äußerst wichtige Kenngröße hinsichtlich der Fehlerwahrscheinlichkeit eines linearen Blockcodes ist die minimale Distanz zwischen zwei Codeworten:

\[d_{\rm min}(\mathcal{C}) = \min_{\substack{\underline{x},\hspace{0.05cm}\underline{x}' \hspace{0.05cm}\in \hspace{0.05cm} \mathcal{C} \\ {\underline{x}} \hspace{0.05cm}\ne \hspace{0.05cm} \underline{x}'}}\hspace{0.1cm}d_{\rm H}(\underline{x}, \hspace{0.05cm}\underline{x}') = \min_{\substack{\underline{x} \hspace{0.05cm}\in \hspace{0.05cm} \mathcal{C} \\ {\underline{x}} \hspace{0.05cm}\ne \hspace{0.05cm} \underline{0}}}\hspace{0.1cm}w_{\rm H}(\underline{x}) \hspace{0.05cm}.\]

Der zweite Gleichungsteil ergibt sich aus der Tatsache, dass jeder lineare Code auch das Nullwort (0) beinhaltet. Zweckmäßigerweise setzt man deshalb x' = 0, so dass die Hamming–Distanz dH(x, 0) das gleiche Ergebnis liefert wie das Hamming–Gewicht wH(x).

: Beispiel: Die nachfolgende Tabelle zeigt die 16 Codeworte des (7, 4, 3)–Hamming–Codes.

Codewort des (7, 4, 3)–Hamming–Codes

Alle Codeworte außer dem Nullwort (0) beinhalten mindestens drei Einsen ⇒  dmin = 3. Es gibt sieben Codeworte mit drei Einsen, sieben mit vier Einsen und je eines ohne Einsen bzw. mit sieben Einsen.


Die freie Distanz dF eines Faltungscodes (Convolution Code ⇒ CC) unterscheidet sich formelmäßig nicht von der minimalen Distanz eines linearen Blockcodes:

\[d_{\rm F}(\mathcal{CC}) = \min_{\substack{\underline{x},\hspace{0.05cm}\underline{x}' \hspace{0.05cm}\in \hspace{0.05cm} \mathcal{CC} \\ {\underline{x}} \hspace{0.05cm}\ne \hspace{0.05cm} \underline{x}'}}\hspace{0.1cm}d_{\rm H}(\underline{x}, \hspace{0.05cm}\underline{x}') = \min_{\substack{\underline{x} \hspace{0.05cm}\in \hspace{0.05cm} \mathcal{CC} \\ {\underline{x}} \hspace{0.05cm}\ne \hspace{0.05cm} \underline{0}}}\hspace{0.1cm}w_{\rm H}(\underline{x}) \hspace{0.05cm}.\]

In der Literatur wird anstelle von dF teilweise auch d verwendet.

  • Wesentlicher Unterschied zur minimalen Distanz ist, dass bei Faltungscodes nicht Informations– und Codeworte zu betrachten sind, sondern Sequenzen mit der Eigenschaft semi–infinite.
  • Jede Codesequenz x beschreibt einen Pfad durch das Trellis. Die freie Distanz ist dabei das kleinstmögliche Hamming–Gewicht eines solchen Pfades (mit Ausnahme des Nullpfades).

Einige Pfade mit w(x) = dF

Die Grafik zeigt drei der unendlich vielen Pfade mit dem minimalen Hamming–Gewicht wH(x) = dF = 5.

Pfadgewichtsfunktion (1)


Für jeden linearen Blockcode lässt sich wegen der endlichen Anzahl an Codeworten x in einfacher Weise eine Gewichtsfunktion angeben. Für das Beispiel auf der letzten Seite lautet diese:

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

Bei einem (nicht terminierten) Faltungscode kann keine solche Gewichtsfunktion angegegeben werden, da es unendlich viele, unendlich lange Codesequenzen x gibt, und damit auch unendlich viele Trellispfade. Um dieses Problem in den Griff zu bekommen, gehen wir nun von folgenden Voraussetzungen aus:

  • Als Bezugsgröße für das Trellisdiagramm wählen wir stets den Pfad der Codesequenz x = 0 und nennen diesen den Nullpfad φ0.
  • Desweiteren betrachten wir nur noch solche Pfade φjΦ, die alle zu einer vorgegebenen Zeit t vom Nullpfad abweichen und irgendwann wieder zu diesem zurückkehren.

Obwohl nur ein Bruchteil aller Trellispfade zu dieser Menge Φ gehören, beinhaltet Φ = {φ1, φ2, φ3, ...} noch immer eine unbegrenzte Menge an Pfaden. φ0 gehört nicht zu dieser Menge.

Einige Pfade und ihre Pfadgewichte

Im obigen Trellis sind einige Pfade φjΦ eingezeichnet:

  • Der gelbe Pfad φ1 gehört zur Sequenz x1 = (11, 10, 11) mit dem Hamming–Gewicht wH(x1) = 5. Damit ist auch das Pfadgewicht w(φ1) = 5. Aufgrund der Festlegung des Abzweigzeitpunktes t hat nur noch dieser einzige Pfad φ1 die freie Distanz dF = 5 zum Nullpfad  ⇒  A5 = 1.
  • Für die beiden grünen Pfade mit den korrespondierenden Sequenzen x2 = (11, 01, 01, 11) bzw. x3 = (11, 10, 00, 10, 11) gilt w(φ2) = w(φ3) = 6. Kein anderer Pfad weist das Pfadgewicht 6 auf. Wir berücksichtigen diese Tatsache durch den Koeffizienten A6 = 2.
  • Eingezeichnet ist auch der graue Pfad φ4, assoziiert mit der Sequenz x4 = (11, 01, 10, 01, 11)  ⇒  w(φ4) = 7. Auch die Sequenzen x5 = (11, 01, 01, 00, 10, 11), x6 = (11, 10, 00, 01, 01, 11) und x7 = (11, 10, 00, 10, 00, 10, 11) weisen jeweils das gleiche Pfadgewicht 7 auf  ⇒  A7 = 4.

Damit lautet die Pfadgewichtsfunktion (englisch: Path Weight Enumerator Function, PWEF):

\[T(X) = A_5 \cdot X^5 + A_6 \cdot X^6 + A_7 \cdot X^7 + ... \hspace{0.1cm}= X^5 + 2 \cdot X^6 + 4 \cdot X^7+ ... \hspace{0.1cm} \hspace{0.05cm}.\]

Die Definition dieser Funktion T(X) wird auf der nächsten Seite nachgeliefert.

Pfadgewichtsfunktion (2)


: Für die Pfadgewichtsfunktion (englisch: Path Weight Enumerator Function, PWEF) eines Faltungscodes gilt:

\[T(X) = \sum_{\varphi_j \in {\it \Phi}}\hspace{0.1cm} X^{w(\varphi_j)} \hspace{0.1cm}=\hspace{0.1cm} \sum_{w = d_{\rm F}}^{\infty}\hspace{0.1cm} A_w \cdot X^w \hspace{0.05cm}.\]

  • Φ bezeichnet die Menge aller Pfade an, die den Nullpfad φ0 genau zum festgelegten Zeitpunkt t verlassen und (irgendwann) später zu diesem zurückkehren.
  • Gemäß der zweiten Gleichung sind die Summanden nach ihren Pfadgewichten w geordnet, wobei Aw die Anzahl der Pfade mit Pfadgewicht w bezeichnet. Die Summe beginnt mit w = dF.
  • Das Pfadgewicht w(φj) ist gleich dem Hamming–Gewicht (also der Anzahl der Einsen) der zum Pfad φj assoziierten Codesequenz xj:
\[w({\varphi_j) = w_{\rm H}(\underline {x}}_j) \hspace{0.05cm}.\]


Hinweis: Die für die linearen Blockcodes definierte Gewichtsfunktion W(X) und die hier definierte Pfadgewichtsfunktion T(X) weisen viele Gemeinsamkeiten auf, sie sind jedoch nicht identisch.

Betrachten wir nochmals die Gewichtsfunktion

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

des (7, 4, 3)–Hamming–Codes und die Pfadgewichtsfunktion

\[T(X) = X^5 + 2 \cdot X^6 + 4 \cdot X^7+ 8 \cdot X^8+ ... \]

unseres Standard–Faltungscodierers, so fällt die „1” in der ersten Gleichung auf. Das heißt: Bei den linearen Blockcodes wird das Bezugs–Codewort xi = 0 mitgezählt, wohingegen die Nullcodesequenz xi = 0 bzw. der Nullpfad φ0 bei den Faltungscodes ausgeschlossen wird. Nach Ansicht der Autoren hätte man auch W(X) ohne die „1” definieren können. Damit wäre unter anderem vermieden worden, dass sich die Bhattacharyya–Schranke für lineare Blockcodes und für Faltungscodes durch „–1” unterscheiden, wie aus den folgenden Gleichungen hervorgeht:

Bhattacharyya–Schranke für die linearen Blockcodes:

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

Bhattacharyya–Schranke für die Faltungscodes:

\[{\rm Pr(Burstfehler)} \le T(X = \beta) \hspace{0.05cm},\]

Die Pfadgewichtsfunktion T(X) liefert nur Informationen hinsichtlich der Gewichte der Codesequenz x. Mehr Informationen erhält man, wenn zusätzlich auch die Gewichte der Informationssequenz u erfasst werden. Man benötigt dann zwei Formalparameter X und U, wie aus der Definition auf der folgenden Seite hervorgeht.

Erweiterte Pfadgewichtsfunktion


: Die erweiterte Pfadgewichtsfunktion (englisch: Enhanced Path Weight Enumerator Function, EPWEF) lautet:

\[T_{\rm enh}(X, U) = \sum_{\varphi_j \in {\it \Phi}}\hspace{0.1cm} X^{w(\varphi_j)} \cdot U^{{ u}(\varphi_j)} \hspace{0.1cm}=\hspace{0.1cm} \sum_{w} \sum_{u}\hspace{0.1cm} A_{w, \hspace{0.05cm}u} \cdot X^w \cdot U^{u} \hspace{0.05cm}.\]

Es gelten alle Angaben der Definition von T(X) auf der letzten Seite. Zusätzlich ist zu beachten:

  • Das Pfadeingangsgewicht u(φj) ist gleich dem Hamming–Gewicht der zum Pfad φj assoziierten Informationssequenz uj. Es wird als Potenz des Formalparameters U ausgedrückt.
  • Der Koeffizient Aw, u bezeichnet die Anzahl der Pfade φj mit dem Pfadausgangsgewicht w(φj) und dem Pfadeingangsgewicht u(φj). Als Laufvariable für den zweiten Anteil wird u verwendet.
  • Setzt man in der erweiterten Pfadgewichtsfunktion den Formalparameter U = 1, so ergibt sich die ursprüngliche Gewichtsfunktion T(X) gemäß der Definition auf der letzten Seite.

Bei vielen (und allen relevanten) Faltungscodes lässt sich obere Gleichung noch vereinfachen:

\[T_{\rm enh}(X, U) =\hspace{0.1cm} \sum_{w = d_{\rm F}}^{\infty}\hspace{0.1cm} A_w \cdot X^w \cdot U^{u} \hspace{0.05cm}.\]


Die erweiterte Pfadgewichtsfunktion unseres Standardcodieres lautet somit:

\[T_{\rm enh}(X, U) = U \cdot X^5 + 2 \cdot U^2 \cdot X^6 + 4 \cdot U^3 \cdot X^7+ ... \hspace{0.1cm} \hspace{0.05cm}.\]

Vergleicht man dieses Ergebnis mit dem unten dargestellten Trellis, so erkennt man:

  • Der gelb hinterlegte Pfad – gekennzeichnet durch X 5 – setzt sich aus einem blauen Pfeil (ui = 1) und zwei roten Pfeilen (ui = 0) zusammen. Somit wird aus X 5 der erweiterte Term UX 5.
  • Die Sequenzen der beiden grünen Pfade sind u2 = (1, 1, 0, 0)  ⇒  x2 = (11, 01, 01, 11) sowie u3 = (1, 0, 1, 0, 0)  ⇒  x3 = (11, 10, 00, 10, 11). Daraus ergibt sich der zweite Term 2 · U 2X 6.
  • Der graue Pfad (und die drei nicht gezeichneten Pfade) ergeben zusammen den Beitrag 4 · U 3X 7. Jeder dieser Pfade beinhaltet drei blaue Pfeile  ⇒  drei Einsen in jeder Informationssequenz.

Einige Pfade und ihre Pfadgewichte