Kanalcodierung/Reed–Solomon–Decodierung beim Auslöschungskanal: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(14 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:
 
}}
 
}}
  
== Blockschaltbild und Voraussetzungen zu Kapitel 2.4 ==
+
== Blockschaltbild und Voraussetzungen zur Reed–Solomon–Fehlererkennung ==
 
<br>
 
<br>
Im [http://www.lntwww.de/Kanalcodierung/Decodierung_linearer_Blockcodes#Decodierung_beim_Binary_Erasure_Channel_.281.29 Kapitel 1.5] wurde für die binären Blockcodes gezeigt, welche Berechnungen der Decoder ausführen muss, um aus einem unvollständigen Empfangswort <u><i>y</i></u> das gesendete Codewort <u><i>x</i></u> bestmöglich decodieren zu können. Zugrunde gelegt war dabei das [http://www.lntwww.de/Kanalcodierung/Klassifizierung_von_Signalen#Binary_Erasure_Channel_.E2.80.93_BEC BEC&ndash;Kanalmodell] (<i>Binary Erasure Channel</i>), das ein unsicheres Bit als <i>Erasure</i> E (&bdquo;Auslöschung&rdquo;) markiert.<br>
+
Im Kapitel&nbsp; [[Kanalcodierung/Decodierung_linearer_Blockcodes#Decodierung_beim_Binary_Erasure_Channel|"Decodierung beim Binary Erasure Channel"]]&nbsp; wurde für die binären Blockcodes gezeigt,&nbsp; welche Berechnungen der Decoder ausführen muss,&nbsp; um aus einem unvollständigen Empfangswort &nbsp; $\underline{y}$ &nbsp; das gesendete Codewort &nbsp; $\underline{x}$ &nbsp; bestmöglich decodieren zu können.&nbsp; Im Reed&ndash;Solomon&ndash;Kapitel haben wir&nbsp; $\underline{x}$&nbsp; in&nbsp; $\underline{c}$&nbsp; umbenannt.
  
Im Gegensatz zu [http://www.lntwww.de/Kanalcodierung/Klassifizierung_von_Signalen#Binary_Symmetric_Channel_.E2.80.93_BSC BSC] (<i>Binary Symmetric Channel</i>) und [http://www.lntwww.de/Kanalcodierung/Klassifizierung_von_Signalen#AWGN.E2.80.93Kanal_bei_bin.C3.A4rem_Eingang AWGN] (<i>Additive White Gaussian Noise</i>) wurden hier Bitfehler (<i>y<sub>i</sub></i> &ne; <i>x<sub>i</sub></i>) ausgeschlossen. Jedes  Bit eines Empfangswortes stimmt also mit dem entsprechenden Bit des Codewortes überein (<i>y<sub>i</sub></i> = <i>x<sub>i</sub></i>) oder ist bereits als Auslöschung markiert (<i>y<sub>i</sub></i>&nbsp;=&nbsp;E).<br>
+
[[Datei:P ID2544 KC T 2 4 S1 v2.png|right|frame|Übertragungssystem mit Reed–Solomon–Codierung/Decodierung und Auslöschungskanal|class=fit]]
  
[[Datei:P ID2544 KC T 2 4 S1 v2.png|Übertragungssystem mit Reed–Solomon–Codierung/Decodierung und Auslöschungskanal|class=fit]]<br>
+
# Zugrunde gelegt wird  hier wieder das&nbsp; [[Kanalcodierung/Klassifizierung_von_Signalen#Binary_Erasure_Channel_.E2.80.93_BEC| "BEC&ndash;Kanalmodell"]]&nbsp; ("Binary Erasure Channel"),&nbsp; das ein unsicheres Bit als&nbsp; "Erasure"&nbsp; $\rm E$ &nbsp; ("Auslöschung")&nbsp; markiert.
 +
# Im Gegensatz zu&nbsp; [[Kanalcodierung/Klassifizierung_von_Signalen#Binary_Symmetric_Channel_.E2.80.93_BSC| "BSC-Modell"]]&nbsp; ("Binary Symmetric Channel") und&nbsp; [[Kanalcodierung/Klassifizierung_von_Signalen#AWGN.E2.80.93Kanal_bei_bin.C3.A4rem_Eingang| "AWGN-Modell"]]&nbsp; ("Additive White Gaussian Noise")&nbsp; sind hier Bitfehler&nbsp; $(y_i &ne; c_i)$&nbsp; ausgeschlossen.
  
Die Grafik zeigt das Blockschaltbild, das sich von dem Modell in Kapitel 1.5 geringfügig unterscheidet:
+
 
*Da Reed&ndash;Solomon&ndash;Codes lineare Blockcodes sind, stehen Informationswort <u><i>u</i></u> und Codewort <u><i>c</i></u> über die Generatormatrix <b>G</b> und die folgende Gleichung in Zusammenhang:
+
Jedes  Bit eines Empfangswortes&nbsp; $\underline{y}$
 +
*stimmt also mit dem entsprechenden Bit des Codewortes überein&nbsp; $(y_i = c_i)$,&nbsp; oder
 +
 +
*ist bereits als Auslöschung markiert&nbsp; $(y_i = \rm E)$.<br>
 +
 
 +
 
 +
Die Grafik zeigt das Blockschaltbild,&nbsp; das sich von dem Modell im Kapitel&nbsp; [[Kanalcodierung/Decodierung_linearer_Blockcodes#Blockschaltbild_und_Voraussetzungen|"Decodierung linearer Blockcodes"]]&nbsp; geringfügig unterscheidet:
 +
*Da Reed&ndash;Solomon&ndash;Codes lineare Blockcodes sind,&nbsp; stehen auch hier Informationswort &nbsp; $\underline{u}$ &nbsp; und Codewort &nbsp; $\underline{c}$ &nbsp; über die Generatormatrix &nbsp; $\boldsymbol{\rm G}$&nbsp; und die folgende Gleichung in Zusammenhang:
  
 
::<math>\underline {c} = {\rm enc}(\underline {u}) = \underline {u} \cdot { \boldsymbol{\rm G}}
 
::<math>\underline {c} = {\rm enc}(\underline {u}) = \underline {u} \cdot { \boldsymbol{\rm G}}
\hspace{0.3cm} {\rm mit}  \hspace{0.3cm}\underline {u} = (u_0, u_1, ... \hspace{0.05cm}, u_i, ...\hspace{0.05cm}, u_{k-1})\hspace{0.05cm}, \hspace{0.2cm}  
+
\hspace{0.6cm} {\rm mit}  \hspace{0.6cm}\underline {u} = (u_0, u_1,\hspace{0.05cm}\text{ ... }\hspace{0.1cm}, u_i, \hspace{0.05cm}\text{ ... }\hspace{0.1cm}, u_{k-1})\hspace{0.05cm}, \hspace{0.2cm}  
\underline {c} = (c_0, c_1, ... \hspace{0.05cm}, c_i, ...\hspace{0.05cm}, c_{n-1})
+
\underline {c} = (c_0, c_1, \hspace{0.05cm}\text{ ... }\hspace{0.1cm}, c_i, \hspace{0.05cm}\text{ ... }\hspace{0.1cm}, c_{n-1})
 
\hspace{0.05cm}.</math>
 
\hspace{0.05cm}.</math>
  
*Für die einzelnen Symbole von Informations&ndash; und Codewort gilt bei Reed&ndash;Solomon&ndash;Codierung:
+
*Für die einzelnen Symbole von Informationsblock und Codewort gilt bei Reed&ndash;Solomon&ndash;Codierung:
  
::<math>u_i \in {\rm GF}(q)\hspace{0.05cm},\hspace{0.2cm}c_i \in {\rm GF}(q)\hspace{0.3cm}{\rm mit}\hspace{0.3cm} q = n+1 = 2^m
+
::<math>u_i \in {\rm GF}(q)\hspace{0.05cm},\hspace{0.2cm}c_i \in {\rm GF}(q)\hspace{0.6cm}{\rm mit}\hspace{0.6cm} q = n+1 = 2^m
 
\hspace{0.3cm} \Rightarrow  \hspace{0.3cm} n = 2^m - 1\hspace{0.05cm}. </math>
 
\hspace{0.3cm} \Rightarrow  \hspace{0.3cm} n = 2^m - 1\hspace{0.05cm}. </math>
  
:Jedes Codesymbol <i>c<sub>i</sub></i> wird somit mit <i>m</i> &#8805; 2 Binärsymbolen (Bit) dargestellt. Zum Vergleich: Für die binären Blockcodes gilt <i>q</i> = 2, <i>m</i> = 1 und die Codewortlänge <i>n</i> ist frei wählbar.<br>
+
*Jedes Codesymbol&nbsp; $c_i$&nbsp; wird somit mit&nbsp; $m &#8805; 2$&nbsp; Binärsymbolen&nbsp; ("Bit")&nbsp; dargestellt.&nbsp; Zum Vergleich: &nbsp; Für die binären Blockcodes gilt &nbsp; $q=2$, &nbsp; $m=1$ &nbsp; und die Codewortlänge&nbsp; $n$&nbsp; ist frei wählbar.<br>
  
*Bei Codierung auf Symbolebene muss das BEC&ndash;Modell zum <i>m</i>&ndash;BEC&ndash;Modell erweitert werden. Mit der Wahrscheinlichkeit <i>&lambda;<sub>m</sub></i> &asymp; <i>m</i> &middot; <i>&lambda;</i> wird ein Codesymbol <i>c<sub>i</sub></i> ausgelöscht (<i>y<sub>i</sub></i> = E) und es gilt Pr(<i>y<sub>i</sub></i> = <i>c<sub>i</sub></i>) = 1 &ndash; <i>&lambda;<sub>m</sub></i>. Näheres zur Umrechnung der beiden Modelle finden Sie in Aufgabe Z2.11.<br><br>
+
*Bei Codierung auf Symbolebene muss das&nbsp; "BEC&ndash;Modell"&nbsp; zum&nbsp; "$m$&ndash;BEC&ndash;Modell"&nbsp; erweitert werden.  
 +
:*Mit der Wahrscheinlichkeit &nbsp; $\lambda_m  &asymp; m \cdot\lambda$ &nbsp; wird ein Codesymbol&nbsp; $c_i$&nbsp; ausgelöscht&nbsp; $(y_i = \rm E)$&nbsp; und es gilt&nbsp; ${\rm Pr}(y_i = c_i) = 1 - \lambda_m$.  
  
Im Folgenden beschäftigen wir uns ausschließlich mit dem Block  <i>Codewortfinder</i> (CWF), der aus dem Empfangsvektor <u><i>y</i></u> den Vektor <nobr><u><i>z</i></u> &#8712; <i>C</i><sub>RS</sub></nobr> gewinnt:
+
:*Näheres zur Umrechnung der beiden Modelle finden Sie in der&nbsp; [[Aufgaben:Aufgabe_2.11Z:_Erasure–Kanal_für_Symbole|Aufgabe 2.11Z]].<br>
*Falls die Anzahl <i>e</i> der Auslöschungen in Vektor <u><i>y</i></u> hinreichend klein ist, lässt sich das gesamte Codewort mit Sicherheit (<u><i>z</i></u> = <u><i>c</i></u>) finden.<br>
 
  
*Sind zuviele Symbole des Empfangswortes <u><i>y</i></u> ausgelöscht, meldet der Decoder, dass dieses Wort nicht decodierbar ist. Eventuell wird dann die Codesequenz noch einmal gesendet.<br><br>
 
  
Beim Auslöschungskanal (<i>m</i>&ndash;BEC) ist also im Gegensatz zum <i>m</i>&ndash;BSC, der im Kapitel 2.5 Anwendung findet,  eine Fehlentscheidung (<u><i>z</i></u> &ne; <u><i>c</i></u>) ausgeschlossen &#8658; Blockfehlerwahrscheinlichkeit Pr(<u><i>z</i></u> &ne; <u><i>c</i></u>) = 0 &#8658; Pr(<u><i>&upsilon;</i></u> &ne; <u><i>u</i></u>) = 0. Das rekonstruierte Informationswort ergibt sich gemäß dem Blockschaltbild (gelbe Hinterlegung) zu <u><i>&upsilon;</i></u> = enc<sup>&ndash;1</sup>(<u><i>z</i></u>). Mit der Generatormatrix <b>G</b> kann hierfür auch geschrieben werden:
+
Im Folgenden beschäftigen wir uns nur mit dem Block&nbsp;  "Codewortfinder"&nbsp; $\rm (CWF)$,&nbsp; der aus dem Empfangsvektor &nbsp; $\underline{y}$ &nbsp; den Vektor &nbsp; $\underline{z} &#8712; \mathcal{C}_{\rm RS}$ &nbsp; gewinnt:
 +
*Falls die Anzahl&nbsp; $e$&nbsp; der Auslöschungen im Vektor&nbsp; $\underline{y}$&nbsp; hinreichend klein ist, lässt sich das gesamte Codewort mit Sicherheit&nbsp; $(\underline{z}=\underline{c})$&nbsp;  finden.<br>
  
:<math>\underline {c} = \underline {u} \cdot { \boldsymbol{\rm G}}
+
*Sind zuviele Symbole des Empfangswortes&nbsp; $\underline{y}$&nbsp; ausgelöscht, meldet der Decoder, dass dieses Wort nicht decodierbar ist. Eventuell muss dann diese Sequenz noch einmal gesendet werden.<br><br>
 +
 
 +
Beim Auslöschungskanal&nbsp; ($m$&ndash;BEC)&nbsp; ist im Gegensatz zum &nbsp;$m$&ndash;BSC, der im Kapitel&nbsp; [[Kanalcodierung/Fehlerkorrektur_nach_Reed–Solomon–Codierung|Fehlerkorrektur nach Reed–Solomon–Codierung]]&nbsp; Anwendung findet,  eine Fehlentscheidung&nbsp; $(\underline{z} \ne \underline{c})$&nbsp; ausgeschlossen &nbsp; &#8658; &nbsp; Blockfehlerwahrscheinlichkeit&nbsp; ${\rm Pr}(\underline{z}\ne\underline{c})  = 0$ &nbsp; &#8658; &nbsp; ${\rm Pr}(\underline{v}\ne\underline{u})  = 0$.
 +
*Das rekonstruierte Informationswort ergibt sich gemäß dem Blockschaltbild (gelbe Hinterlegung) zu&nbsp; $\underline{v} = {\rm enc}^{-1}(\underline{z})$.
 +
*Mit der Generatormatrix&nbsp; $\boldsymbol{\rm G}$&nbsp; kann hierfür auch geschrieben werden:
 +
 
 +
::<math>\underline {c} = \underline {u} \cdot { \boldsymbol{\rm G}}
 
\hspace{0.3cm} \Rightarrow  \hspace{0.3cm}\underline {z} = \underline {\upsilon} \cdot { \boldsymbol{\rm G}}
 
\hspace{0.3cm} \Rightarrow  \hspace{0.3cm}\underline {z} = \underline {\upsilon} \cdot { \boldsymbol{\rm G}}
 
\hspace{0.3cm} \Rightarrow  \hspace{0.3cm}\underline {\upsilon} = \underline {z} \cdot { \boldsymbol{\rm G}}^{\rm T}
 
\hspace{0.3cm} \Rightarrow  \hspace{0.3cm}\underline {\upsilon} = \underline {z} \cdot { \boldsymbol{\rm G}}^{\rm T}
Zeile 45: Zeile 59:
 
== Vorgehensweise am Beispiel des RSC (7, 3, 5)<sub>8</sub> ==
 
== Vorgehensweise am Beispiel des RSC (7, 3, 5)<sub>8</sub> ==
 
<br>
 
<br>
Um die RS&ndash;Decodierung beim Auslöschungskanal so einfach wie möglich darstellen zu können, gehen wir von einer konkreten Aufgabenstellung aus:
+
Um die Reed&ndash;Solomon&ndash;Decodierung beim Auslöschungskanal so einfach wie möglich darstellen zu können, gehen wir von einer konkreten Aufgabenstellung aus:  
*Verwendet wird ein Reed&ndash;Solomon&ndash;Code mit den Parametern <i>n</i> = 7, <i>k</i> = 3 und <i>q</i> = 2<sup>3</sup> = 8. Allgemein gilt für das Informationswort <u><i>u</i></u>, das Codewort <u><i>c</i></u> und die Prüfmatrix <b>H</b>:
+
 
 +
Verwendet wird ein Reed&ndash;Solomon&ndash;Code mit den Parametern&nbsp; $n= 7$,&nbsp; $k= 3$&nbsp; und&nbsp; $q= 2^3 = 8$.  
 +
 
 +
Somit gilt für das Informationswort&nbsp; $\underline{u}$&nbsp; und das Codewort&nbsp; $\underline{c}$:
  
 
::<math>\underline {u} = (u_0, u_1, u_2) \hspace{0.05cm},\hspace{0.15cm}
 
::<math>\underline {u} = (u_0, u_1, u_2) \hspace{0.05cm},\hspace{0.15cm}
 
\underline {c} = (c_0, c_1, c_2,c_3,c_4,c_5,c_6)\hspace{0.05cm},\hspace{0.15cm}
 
\underline {c} = (c_0, c_1, c_2,c_3,c_4,c_5,c_6)\hspace{0.05cm},\hspace{0.15cm}
u_i, c_i \in {\rm GF}(2^3) = \{0, 1,  \alpha, \alpha^2, ... , \alpha^6\}
+
u_i, c_i \in {\rm GF}(2^3) = \{0, 1,  \alpha, \alpha^2, \text{...}\hspace{0.05cm} , \alpha^6\}
 
\hspace{0.05cm},</math>
 
\hspace{0.05cm},</math>
 +
 +
und die Prüfmatrix&nbsp; $\boldsymbol{\rm H}$&nbsp; lautet:
  
 
::<math>{ \boldsymbol{\rm H}} =  
 
::<math>{ \boldsymbol{\rm H}} =  
Zeile 61: Zeile 80:
 
\end{pmatrix}\hspace{0.05cm}. </math>
 
\end{pmatrix}\hspace{0.05cm}. </math>
  
*Der Empfangsvektor wird mit <u><i>y</i></u> = (<i>&alpha;</i><sup>1</sup>,&nbsp;1, E, E, <i>&alpha;</i><sup>2</sup>, E, <i>&alpha;</i><sup>5</sup>) vorgegeben. Da der Auslöschungskanal keine Fehler produziert, sind dem Decoder vier der Codesymbole bekannt:
+
Beispielhaft wird hier vom  Empfangsvektor&nbsp; $\underline {y= (\alpha, \hspace{0.03cm} 1, \hspace{0.03cm}{\rm E}, \hspace{0.03cm}{\rm E}, \hspace{0.03cm}\alpha^2,{\rm E}, \hspace{0.03cm}\alpha^5)$&nbsp; ausgegangen. Dann gilt:
 +
*Da der Auslöschungskanal keine Fehler produziert, sind dem Decoder vier der Codesymbole bekannt:
  
 
::<math>c_0 = \alpha^1 \hspace{0.05cm},\hspace{0.2cm}
 
::<math>c_0 = \alpha^1 \hspace{0.05cm},\hspace{0.2cm}
Zeile 69: Zeile 89:
 
\hspace{0.05cm}.</math>
 
\hspace{0.05cm}.</math>
  
*Es ist offensichtlich, dass der Block &bdquo;Codewortfinder&rdquo; &ndash; im Blockschaltbild mit CWF bezeichnet &ndash; einen Vektor der Form <u><i>z</i></u>&nbsp;=&nbsp;(<i>c</i><sub>0</sub>,&nbsp;<i>c</i><sub>1</sub>,&nbsp;<i>z</i><sub>2</sub>,&nbsp;<i>z</i><sub>3</sub>,&nbsp;<i>c</i><sub>4</sub>,&nbsp;<i>z</i><sub>5</sub>,&nbsp;<i>c</i><sub>6</sub>) liefern soll mit <i>z</i><sub>2</sub>,&nbsp;<i>z</i><sub>3</sub>,&nbsp;<i>z</i><sub>5</sub>&nbsp;&#8712;&nbsp;GF(2<sup>3</sup>).<br>
+
*Es ist offensichtlich, dass der Block &bdquo;Codewortfinder&rdquo; &ndash; im Blockschaltbild mit&nbsp; '''CWF'''&nbsp; bezeichnet &ndash; einen Vektor der Form&nbsp; $\underline {z} = (c_0, \hspace{0.03cm}c_1, \hspace{0.03cm}z_2, \hspace{0.03cm}z_3,\hspace{0.03cm}c_4,\hspace{0.03cm}z_5,\hspace{0.03cm}c_6)$&nbsp; liefern soll mit&nbsp; $z_2,\hspace{0.03cm}z_3,\hspace{0.03cm}z_5 \in \rm GF(2^3)$.<br>
  
*Da das vom Decoder gefundene Codewort <u><i>z</i></u> aber auch ein gültiges Reed&ndash;Solomon&ndash;Codewort  sein soll &nbsp;&nbsp;&nbsp;&#8658;&nbsp;&nbsp;&nbsp; <u><i>z</i></u> &#8712; <i>C</i><sub>RS</sub>, muss entsprechend den Ausführungen in [http://www.lntwww.de/Kanalcodierung/Definition_und_Eigenschaften_von_Reed%E2%80%93Solomon%E2%80%93Codes#Konstruktion_von_Reed.E2.80.93Solomon.E2.80.93Codes_.281.29 Kapitel 2.3] gelten:
+
*Da das vom Decoder gefundene Codewort&nbsp; $\underline {z}$&nbsp; aber auch ein gültiges Reed&ndash;Solomon&ndash;Codewort  sein soll &nbsp; &#8658; &nbsp; $\underline {z} &#8712; \mathcal{C}_{\rm RS}$, muss ebenso gelten:
  
 
::<math>{ \boldsymbol{\rm H}} \cdot \underline {z}^{\rm T} = \underline {0}^{\rm T}  \hspace{0.3cm} \Rightarrow \hspace{0.3cm}
 
::<math>{ \boldsymbol{\rm H}} \cdot \underline {z}^{\rm T} = \underline {0}^{\rm T}  \hspace{0.3cm} \Rightarrow \hspace{0.3cm}
Zeile 96: Zeile 116:
 
\hspace{0.05cm}. </math>
 
\hspace{0.05cm}. </math>
  
*Daraus ergeben sich vier Gleichungen für die Unbekannten <i>z</i><sub>2</sub>, <i>z</i><sub>3</sub>, <i>z</i><sub>5</sub>. Bei eindeutiger Lösung &ndash; und nur bei einer solchen &ndash; ist die Decodierung erfolgreich und man kann dann mit Sicherheit sagen, dass tatsächlich <u><i>c</i></u> = <u><i>z</i></u> gesendet wurde.<br><br>
+
*Daraus ergeben sich vier Gleichungen für die Unbekannten&nbsp; $z_2$,&nbsp; $z_3$&nbsp; und &nbsp;$z_5$. Bei eindeutiger Lösung &ndash; und nur bei einer solchen &ndash; ist die Decodierung erfolgreich und man kann dann mit Sicherheit sagen, dass tatsächlich&nbsp; $\underline {c} = \underline {z} $&nbsp; gesendet wurde.<br><br>
 +
 
  
Die Beschreibung wird auf der nächsten Seite fortgesetzt.<br>
 
  
 
== Lösung der Matrixgleichungen am Beispiel des RSC (7, 3, 5)<sub>8</sub> ==
 
== Lösung der Matrixgleichungen am Beispiel des RSC (7, 3, 5)<sub>8</sub> ==
 
<br>
 
<br>
Gefunden werden muss also das zulässige Codewort <u><i>z</i></u>, das die Bestimmungsgleichung <b>H</b> &middot; <u><i>z</i></u><sup>T</sup> = <u>0</u><sup>T</sup> erfüllt. Zweckmäßigerweise spalten wir dazu den Vektor <u><i>z</i></u> in zwei Teilvektoren auf, nämlich in
+
Gefunden werden muss also das zulässige Codewort&nbsp; $\underline {z}$, das die Bestimmungsgleichung&nbsp; $\boldsymbol{\rm H} \cdot \underline {z}^{\rm T} $&nbsp;  erfüllt. Zweckmäßigerweise spalten wir dazu den Vektor&nbsp; $\underline {z}$&nbsp; in zwei Teilvektoren auf, nämlich in
*den Vektor <u><i>z</i></u><sub>E</sub> = (<i>z</i><sub>2</sub>, <i>z</i><sub>3</sub>, <i>z</i><sub>5</sub>) der ausgelöschten Symbole (Index E für <i>Erasures</i>),<br>
+
*den Vektor&nbsp; $\underline {z}_{\rm E} = (z_2, z_3, z_5)$&nbsp; der ausgelöschten Symbole&nbsp; (Index &bdquo;$\rm E$&rdquo; für <i>Erasures</i>&nbsp;),<br>
  
*den Vektor <u><i>z</i></u><sub>K</sub> = (<i>c</i><sub>0</sub>, <i>c</i><sub>1</sub>, <i>c</i><sub>4</sub>, <i>c</i><sub>6</sub>) der bekannten Symbole (Index K für <i>Korrekt</i>).<br><br>
+
*den Vektor&nbsp; $\underline {z}_{\rm K} = (c_0, c_1,c_4, c_6)$&nbsp; der bekannten Symbole&nbsp; (Index &bdquo;$\rm K$&rdquo; für <i>Korrekt</i>&nbsp;).<br><br>
  
Mit den zugehörigen Teilmatrizen (jeweils mit <i>n</i> &ndash; <i>k</i> = 4 Zeilen)
+
Mit den zugehörigen Teilmatrizen (jeweils mit&nbsp; $n-k = 4$&nbsp; Zeilen)
  
:<math>{ \boldsymbol{\rm H}}_{\rm E} =  
+
::<math>{ \boldsymbol{\rm H}}_{\rm E} =  
 
\begin{pmatrix}
 
\begin{pmatrix}
 
\alpha^2 & \alpha^3 & \alpha^5 \\
 
\alpha^2 & \alpha^3 & \alpha^5 \\
Zeile 126: Zeile 146:
 
lautet somit die Bestimmungsgleichung:
 
lautet somit die Bestimmungsgleichung:
  
:<math>{ \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} +
+
::<math>{ \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} +
 
{ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T}  
 
{ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T}  
 
= \underline {0}^{\rm T}  \hspace{0.5cm} \Rightarrow \hspace{0.5cm}
 
= \underline {0}^{\rm T}  \hspace{0.5cm} \Rightarrow \hspace{0.5cm}
Zeile 132: Zeile 152:
 
{ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T}\hspace{0.05cm}.  </math>
 
{ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T}\hspace{0.05cm}.  </math>
  
Da für alle Elemente <i>z<sub>i</sub></i> &#8712; GF(2<sup><i>m</i></sup>) die [http://www.lntwww.de/Kanalcodierung/Einige_Grundlagen_der_Algebra#Definition_eines_Galoisfeldes additive Inverse] Inv<sub>A</sub>(<i>z<sub>i</sub></i>) (= &ndash;<i>z<sub>i</sub></i>) = <i>z<sub>i</sub></i> ist, gilt in gleicher Weise
+
*Da für alle Elemente&nbsp; $z_i &#8712; {\rm GF}(2^m)$&nbsp; die&nbsp; [[Kanalcodierung/Einige_Grundlagen_der_Algebra#Definition_eines_Galoisfeldes |additive Inverse]]&nbsp; ${\rm Inv_A}(z_i)= (- z_i) = z_i$&nbsp; ist, gilt in gleicher Weise
  
:<math>{ \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} =  
+
::<math>{ \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} =  
 
{ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} =
 
{ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} =
 
\begin{pmatrix}
 
\begin{pmatrix}
Zeile 147: Zeile 167:
 
\alpha^{2}\\
 
\alpha^{2}\\
 
\alpha^{6}
 
\alpha^{6}
\end{pmatrix} = \hspace{0.15cm}... \hspace{0.15cm}=   
+
\end{pmatrix} = \hspace{0.45cm}... \hspace{0.45cm}=   
 
\begin{pmatrix}
 
\begin{pmatrix}
 
\alpha^3\\
 
\alpha^3\\
Zeile 156: Zeile 176:
 
\hspace{0.05cm}.</math>
 
\hspace{0.05cm}.</math>
  
Die rechte Gleichungsseite ergibt für das betrachtete Beispiel &nbsp;&#8658;&nbsp; <u><i>z</i></u><sub>K</sub> = (<i>c</i><sub>0</sub>, <i>c</i><sub>1</sub>, <i>c</i><sub>4</sub>, <i>c</i><sub>6</sub>) und basiert auf dem Polynom <i>p</i>(<i>x</i>) = <i>x</i><sup>3</sup> + <i>x</i> + 1, das zu folgenden Potenzen in <i>&alpha;</i> führt:
+
*Die rechte Gleichungsseite ergibt sich für das betrachtete Beispiel &nbsp; &#8658; &nbsp; $\underline {z}_{\rm K} = (c_0, c_1,c_4, c_6)$&nbsp; und basiert auf dem Polynom&nbsp; $p(x) = x^3 + x +1$, das zu folgenden Potenzen $($in&nbsp; &nbsp;$\alpha)$&nbsp; führt:
  
:<math>\alpha^3 \hspace{-0.15cm}  = \hspace{-0.15cm}\alpha + 1\hspace{0.05cm},
+
::<math>\alpha^3 =\alpha + 1\hspace{0.05cm},
\hspace{0.4cm} \alpha^4 = \alpha^2 + \alpha\hspace{0.05cm},
+
\hspace{0.3cm} \alpha^4 = \alpha^2 + \alpha\hspace{0.05cm},
\hspace{0.4cm} \alpha^5 = \alpha^2 + \alpha + 1\hspace{0.05cm},
+
\hspace{0.3cm} \alpha^5 = \alpha^2 + \alpha + 1\hspace{0.05cm},
\hspace{0.4cm} \alpha^6 = \alpha^2  + 1\hspace{0.05cm},</math>
+
\hspace{0.3cm} \alpha^6 = \alpha^2  + 1\hspace{0.05cm},
:<math>\alpha^7 \hspace{-0.15cm}  =  \hspace{-0.15cm} 1\hspace{0.05cm},
+
\hspace{0.3cm} \alpha^7 \hspace{-0.15cm}  =  \hspace{-0.15cm} 1\hspace{0.05cm},
\hspace{1.12cm} \alpha^8 = \alpha^1 \hspace{0.05cm},
+
\hspace{0.3cm} \alpha^8 = \alpha^1 \hspace{0.05cm},
\hspace{1.19cm} \alpha^9 = \alpha^2 \hspace{0.05cm},
+
\hspace{0.3cm} \alpha^9 = \alpha^2 \hspace{0.05cm},
\hspace{1.9cm} \alpha^{10} = \alpha^3 =  \alpha + 1\hspace{0.05cm},\hspace{0.1cm} ...</math>
+
\hspace{0.3cm} \alpha^{10} = \alpha^3 =  \alpha + 1\hspace{0.05cm},\hspace{0.1cm} \text{...}</math>
  
Damit lautet die Matrizengleichung zur Bestimmung des gesuchten Vektors <u><i>z</i></u><sub>E</sub>:
+
*Damit lautet die Matrizengleichung zur Bestimmung des gesuchten Vektors&nbsp; $\underline {z}_{\rm E}$:
  
:<math>\begin{pmatrix}
+
::<math>\begin{pmatrix}
 
\alpha^2 & \alpha^3 & \alpha^5 \\
 
\alpha^2 & \alpha^3 & \alpha^5 \\
 
\alpha^4 & \alpha^6 & \alpha^{3} \\
 
\alpha^4 & \alpha^6 & \alpha^{3} \\
Zeile 188: Zeile 208:
 
\hspace{0.05cm}. </math>
 
\hspace{0.05cm}. </math>
  
Löst man diese Matrizengleichung (am einfachsten per Programm), so erhält man
+
*Löst man diese Matrizengleichung (am einfachsten per Programm), so erhält man
  
:<math>z_2 = \alpha^2\hspace{0.05cm},\hspace{0.25cm}z_3 = \alpha^1\hspace{0.05cm},\hspace{0.25cm}z_5 = \alpha^5
+
::<math>z_2 = \alpha^2\hspace{0.05cm},\hspace{0.25cm}z_3 = \alpha^1\hspace{0.05cm},\hspace{0.25cm}z_5 = \alpha^5
 
\hspace{0.5cm} \Rightarrow \hspace{0.5cm}\underline {z} = \left ( \hspace{0.05cm} \alpha^1, \hspace{0.05cm}1, \hspace{0.05cm}\alpha^2, \hspace{0.05cm}\alpha^1, \hspace{0.05cm}\alpha^2, \hspace{0.05cm}\alpha^5, \hspace{0.05cm}\alpha^5 \hspace{0.05cm}\right )
 
\hspace{0.5cm} \Rightarrow \hspace{0.5cm}\underline {z} = \left ( \hspace{0.05cm} \alpha^1, \hspace{0.05cm}1, \hspace{0.05cm}\alpha^2, \hspace{0.05cm}\alpha^1, \hspace{0.05cm}\alpha^2, \hspace{0.05cm}\alpha^5, \hspace{0.05cm}\alpha^5 \hspace{0.05cm}\right )
 
\hspace{0.05cm}.</math>
 
\hspace{0.05cm}.</math>
  
Das Ergebnis ist richtig, wie die folgenden Kontrollrechnungen zeigen:  
+
*Das Ergebnis ist richtig, wie die folgenden Kontrollrechnungen zeigen:  
  
:<math>\alpha^2 \cdot \alpha^2 + \alpha^3 \cdot \alpha^1 + \alpha^5 \cdot \alpha^5 \hspace{-0.15cm}  = \hspace{-0.15cm}
+
::<math>\alpha^2 \cdot \alpha^2 + \alpha^3 \cdot \alpha^1 + \alpha^5 \cdot \alpha^5 =
 
\alpha^4 + \alpha^4 + \alpha^{10} = \alpha^{10} = \alpha^3\hspace{0.05cm},</math>
 
\alpha^4 + \alpha^4 + \alpha^{10} = \alpha^{10} = \alpha^3\hspace{0.05cm},</math>
:<math>\alpha^4 \cdot \alpha^2 + \alpha^6 \cdot \alpha^1 + \alpha^3 \cdot \alpha^5 \hspace{-0.15cm}  = \hspace{-0.15cm}
+
::<math>\alpha^4 \cdot \alpha^2 + \alpha^6 \cdot \alpha^1 + \alpha^3 \cdot \alpha^5 =
 
(\alpha^2 + 1) + (1) + (\alpha) = \alpha^{2} + \alpha = \alpha^4\hspace{0.05cm},</math>
 
(\alpha^2 + 1) + (1) + (\alpha) = \alpha^{2} + \alpha = \alpha^4\hspace{0.05cm},</math>
:<math>\alpha^6 \cdot \alpha^2 + \alpha^2 \cdot \alpha^1 + \alpha^1 \cdot \alpha^5 \hspace{-0.15cm}  = \hspace{-0.15cm}
+
::<math>\alpha^6 \cdot \alpha^2 + \alpha^2 \cdot \alpha^1 + \alpha^1 \cdot \alpha^5 =
 
(\alpha) + (\alpha + 1) + (\alpha^2 + 1) = \alpha^{2} \hspace{0.05cm},</math>
 
(\alpha) + (\alpha + 1) + (\alpha^2 + 1) = \alpha^{2} \hspace{0.05cm},</math>
:<math>\alpha^1 \cdot \alpha^2 + \alpha^5 \cdot \alpha^1 + \alpha^6 \cdot \alpha^5 \hspace{-0.15cm}  = \hspace{-0.15cm}
+
::<math>\alpha^1 \cdot \alpha^2 + \alpha^5 \cdot \alpha^1 + \alpha^6 \cdot \alpha^5 =
 
(\alpha + 1) + (\alpha^2 + 1) + (\alpha^2 + \alpha) = 0\hspace{0.05cm}.</math>
 
(\alpha + 1) + (\alpha^2 + 1) + (\alpha^2 + \alpha) = 0\hspace{0.05cm}.</math>
  
Das zugehörige Informationswort erhält man mit der [http://www.lntwww.de/Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes#Codefestlegung_durch_die_Generatormatrix Generatormatrix] <b>G</b> zu <u><i>&upsilon;</i></u>&nbsp;=&nbsp;<u><i>z</i></u>&nbsp;&middot;&nbsp;<b>G</b><sup>T</sup>&nbsp;=&nbsp;(<i>&alpha;</i><sup>1</sup>,&nbsp;1,&nbsp;<i>&alpha;</i><sup>3</sup>).<br>
+
*Das zugehörige Informationswort erhält man mit der&nbsp; [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes#Codefestlegung_durch_die_Generatormatrix| Generatormatrix]]&nbsp; $\boldsymbol{\rm G}$&nbsp; zu&nbsp; $\underline {v} = \underline {z} \cdot \boldsymbol{\rm G}^{\rm T} = (\alpha^1,\hspace{0.05cm}1,\hspace{0.05cm}\alpha^3)$.<br>
  
== Aufgaben ==
+
== Aufgaben zum Kapitel ==
 
<br>
 
<br>
[[Aufgaben:2.11 RS–Decodierung nach „Erasures”|A2.11 RS–Decodierung nach „Erasures”]]
+
[[Aufgaben:2.11_RS–Decodierung_nach_„Erasures”|Aufgabe 2.11: RS–Decodierung nach „Erasures”]]
  
[[Zusatzaufgaben:2.11 Erasure–Kanal für Symbole]]
+
[[Aufgaben:2.11Z_Erasure–Kanal_für_Symbole|Aufgabe 2.11Z: Erasure–Kanal für Symbole]]
  
 
{{Display}}
 
{{Display}}

Aktuelle Version vom 20. Oktober 2022, 17:28 Uhr

Blockschaltbild und Voraussetzungen zur Reed–Solomon–Fehlererkennung


Im Kapitel  "Decodierung beim Binary Erasure Channel"  wurde für die binären Blockcodes gezeigt,  welche Berechnungen der Decoder ausführen muss,  um aus einem unvollständigen Empfangswort   $\underline{y}$   das gesendete Codewort   $\underline{x}$   bestmöglich decodieren zu können.  Im Reed–Solomon–Kapitel haben wir  $\underline{x}$  in  $\underline{c}$  umbenannt.

Übertragungssystem mit Reed–Solomon–Codierung/Decodierung und Auslöschungskanal
  1. Zugrunde gelegt wird hier wieder das  "BEC–Kanalmodell"  ("Binary Erasure Channel"),  das ein unsicheres Bit als  "Erasure"  $\rm E$   ("Auslöschung")  markiert.
  2. Im Gegensatz zu  "BSC-Modell"  ("Binary Symmetric Channel") und  "AWGN-Modell"  ("Additive White Gaussian Noise")  sind hier Bitfehler  $(y_i ≠ c_i)$  ausgeschlossen.


Jedes Bit eines Empfangswortes  $\underline{y}$

  • stimmt also mit dem entsprechenden Bit des Codewortes überein  $(y_i = c_i)$,  oder
  • ist bereits als Auslöschung markiert  $(y_i = \rm E)$.


Die Grafik zeigt das Blockschaltbild,  das sich von dem Modell im Kapitel  "Decodierung linearer Blockcodes"  geringfügig unterscheidet:

  • Da Reed–Solomon–Codes lineare Blockcodes sind,  stehen auch hier Informationswort   $\underline{u}$   und Codewort   $\underline{c}$   über die Generatormatrix   $\boldsymbol{\rm G}$  und die folgende Gleichung in Zusammenhang:
\[\underline {c} = {\rm enc}(\underline {u}) = \underline {u} \cdot { \boldsymbol{\rm G}} \hspace{0.6cm} {\rm mit} \hspace{0.6cm}\underline {u} = (u_0, u_1,\hspace{0.05cm}\text{ ... }\hspace{0.1cm}, u_i, \hspace{0.05cm}\text{ ... }\hspace{0.1cm}, u_{k-1})\hspace{0.05cm}, \hspace{0.2cm} \underline {c} = (c_0, c_1, \hspace{0.05cm}\text{ ... }\hspace{0.1cm}, c_i, \hspace{0.05cm}\text{ ... }\hspace{0.1cm}, c_{n-1}) \hspace{0.05cm}.\]
  • Für die einzelnen Symbole von Informationsblock und Codewort gilt bei Reed–Solomon–Codierung:
\[u_i \in {\rm GF}(q)\hspace{0.05cm},\hspace{0.2cm}c_i \in {\rm GF}(q)\hspace{0.6cm}{\rm mit}\hspace{0.6cm} q = n+1 = 2^m \hspace{0.3cm} \Rightarrow \hspace{0.3cm} n = 2^m - 1\hspace{0.05cm}. \]
  • Jedes Codesymbol  $c_i$  wird somit mit  $m ≥ 2$  Binärsymbolen  ("Bit")  dargestellt.  Zum Vergleich:   Für die binären Blockcodes gilt   $q=2$,   $m=1$   und die Codewortlänge  $n$  ist frei wählbar.
  • Bei Codierung auf Symbolebene muss das  "BEC–Modell"  zum  "$m$–BEC–Modell"  erweitert werden.
  • Mit der Wahrscheinlichkeit   $\lambda_m ≈ m \cdot\lambda$   wird ein Codesymbol  $c_i$  ausgelöscht  $(y_i = \rm E)$  und es gilt  ${\rm Pr}(y_i = c_i) = 1 - \lambda_m$.
  • Näheres zur Umrechnung der beiden Modelle finden Sie in der  Aufgabe 2.11Z.


Im Folgenden beschäftigen wir uns nur mit dem Block  "Codewortfinder"  $\rm (CWF)$,  der aus dem Empfangsvektor   $\underline{y}$   den Vektor   $\underline{z} ∈ \mathcal{C}_{\rm RS}$   gewinnt:

  • Falls die Anzahl  $e$  der Auslöschungen im Vektor  $\underline{y}$  hinreichend klein ist, lässt sich das gesamte Codewort mit Sicherheit  $(\underline{z}=\underline{c})$  finden.
  • Sind zuviele Symbole des Empfangswortes  $\underline{y}$  ausgelöscht, meldet der Decoder, dass dieses Wort nicht decodierbar ist. Eventuell muss dann diese Sequenz noch einmal gesendet werden.

Beim Auslöschungskanal  ($m$–BEC)  ist im Gegensatz zum  $m$–BSC, der im Kapitel  Fehlerkorrektur nach Reed–Solomon–Codierung  Anwendung findet, eine Fehlentscheidung  $(\underline{z} \ne \underline{c})$  ausgeschlossen   ⇒   Blockfehlerwahrscheinlichkeit  ${\rm Pr}(\underline{z}\ne\underline{c}) = 0$   ⇒   ${\rm Pr}(\underline{v}\ne\underline{u}) = 0$.

  • Das rekonstruierte Informationswort ergibt sich gemäß dem Blockschaltbild (gelbe Hinterlegung) zu  $\underline{v} = {\rm enc}^{-1}(\underline{z})$.
  • Mit der Generatormatrix  $\boldsymbol{\rm G}$  kann hierfür auch geschrieben werden:
\[\underline {c} = \underline {u} \cdot { \boldsymbol{\rm G}} \hspace{0.3cm} \Rightarrow \hspace{0.3cm}\underline {z} = \underline {\upsilon} \cdot { \boldsymbol{\rm G}} \hspace{0.3cm} \Rightarrow \hspace{0.3cm}\underline {\upsilon} = \underline {z} \cdot { \boldsymbol{\rm G}}^{\rm T} \hspace{0.05cm}. \]

Vorgehensweise am Beispiel des RSC (7, 3, 5)8


Um die Reed–Solomon–Decodierung beim Auslöschungskanal so einfach wie möglich darstellen zu können, gehen wir von einer konkreten Aufgabenstellung aus:

Verwendet wird ein Reed–Solomon–Code mit den Parametern  $n= 7$,  $k= 3$  und  $q= 2^3 = 8$.

Somit gilt für das Informationswort  $\underline{u}$  und das Codewort  $\underline{c}$:

\[\underline {u} = (u_0, u_1, u_2) \hspace{0.05cm},\hspace{0.15cm} \underline {c} = (c_0, c_1, c_2,c_3,c_4,c_5,c_6)\hspace{0.05cm},\hspace{0.15cm} u_i, c_i \in {\rm GF}(2^3) = \{0, 1, \alpha, \alpha^2, \text{...}\hspace{0.05cm} , \alpha^6\} \hspace{0.05cm},\]

und die Prüfmatrix  $\boldsymbol{\rm H}$  lautet:

\[{ \boldsymbol{\rm H}} = \begin{pmatrix} 1 & \alpha^1 & \alpha^2 & \alpha^3 & \alpha^4 & \alpha^5 & \alpha^6\\ 1 & \alpha^2 & \alpha^4 & \alpha^6 & \alpha^1 & \alpha^{3} & \alpha^{5}\\ 1 & \alpha^3 & \alpha^6 & \alpha^2 & \alpha^{5} & \alpha^{1} & \alpha^{4}\\ 1 & \alpha^4 & \alpha^1 & \alpha^{5} & \alpha^{2} & \alpha^{6} & \alpha^{3} \end{pmatrix}\hspace{0.05cm}. \]

Beispielhaft wird hier vom Empfangsvektor  $\underline {y} = (\alpha, \hspace{0.03cm} 1, \hspace{0.03cm}{\rm E}, \hspace{0.03cm}{\rm E}, \hspace{0.03cm}\alpha^2,{\rm E}, \hspace{0.03cm}\alpha^5)$  ausgegangen. Dann gilt:

  • Da der Auslöschungskanal keine Fehler produziert, sind dem Decoder vier der Codesymbole bekannt:
\[c_0 = \alpha^1 \hspace{0.05cm},\hspace{0.2cm} c_1 = 1 \hspace{0.05cm},\hspace{0.2cm} c_4 = \alpha^2 \hspace{0.05cm},\hspace{0.2cm} c_6 = \alpha^5 \hspace{0.05cm}.\]
  • Es ist offensichtlich, dass der Block „Codewortfinder” – im Blockschaltbild mit  CWF  bezeichnet – einen Vektor der Form  $\underline {z} = (c_0, \hspace{0.03cm}c_1, \hspace{0.03cm}z_2, \hspace{0.03cm}z_3,\hspace{0.03cm}c_4,\hspace{0.03cm}z_5,\hspace{0.03cm}c_6)$  liefern soll mit  $z_2,\hspace{0.03cm}z_3,\hspace{0.03cm}z_5 \in \rm GF(2^3)$.
  • Da das vom Decoder gefundene Codewort  $\underline {z}$  aber auch ein gültiges Reed–Solomon–Codewort sein soll   ⇒   $\underline {z} ∈ \mathcal{C}_{\rm RS}$, muss ebenso gelten:
\[{ \boldsymbol{\rm H}} \cdot \underline {z}^{\rm T} = \underline {0}^{\rm T} \hspace{0.3cm} \Rightarrow \hspace{0.3cm} \begin{pmatrix} 1 & \alpha^1 & \alpha^2 & \alpha^3 & \alpha^4 & \alpha^5 & \alpha^6\\ 1 & \alpha^2 & \alpha^4 & \alpha^6 & \alpha^1 & \alpha^{3} & \alpha^{5}\\ 1 & \alpha^3 & \alpha^6 & \alpha^2 & \alpha^{5} & \alpha^{1} & \alpha^{4}\\ 1 & \alpha^4 & \alpha^1 & \alpha^{5} & \alpha^{2} & \alpha^{6} & \alpha^{3} \end{pmatrix} \cdot \begin{pmatrix} c_0\\ c_1\\ z_2\\ z_3\\ c_4\\ z_5\\ c_6 \end{pmatrix} = \begin{pmatrix} 0\\ 0\\ 0\\ 0 \end{pmatrix} \hspace{0.05cm}. \]
  • Daraus ergeben sich vier Gleichungen für die Unbekannten  $z_2$,  $z_3$  und  $z_5$. Bei eindeutiger Lösung – und nur bei einer solchen – ist die Decodierung erfolgreich und man kann dann mit Sicherheit sagen, dass tatsächlich  $\underline {c} = \underline {z} $  gesendet wurde.


Lösung der Matrixgleichungen am Beispiel des RSC (7, 3, 5)8


Gefunden werden muss also das zulässige Codewort  $\underline {z}$, das die Bestimmungsgleichung  $\boldsymbol{\rm H} \cdot \underline {z}^{\rm T} $  erfüllt. Zweckmäßigerweise spalten wir dazu den Vektor  $\underline {z}$  in zwei Teilvektoren auf, nämlich in

  • den Vektor  $\underline {z}_{\rm E} = (z_2, z_3, z_5)$  der ausgelöschten Symbole  (Index „$\rm E$” für Erasures ),
  • den Vektor  $\underline {z}_{\rm K} = (c_0, c_1,c_4, c_6)$  der bekannten Symbole  (Index „$\rm K$” für Korrekt ).

Mit den zugehörigen Teilmatrizen (jeweils mit  $n-k = 4$  Zeilen)

\[{ \boldsymbol{\rm H}}_{\rm E} = \begin{pmatrix} \alpha^2 & \alpha^3 & \alpha^5 \\ \alpha^4 & \alpha^6 & \alpha^{3} \\ \alpha^6 & \alpha^2 & \alpha^{1} \\ \alpha^1 & \alpha^{5} & \alpha^{6} \end{pmatrix} \hspace{0.05cm},\hspace{0.4cm} { \boldsymbol{\rm H}}_{\rm K} \begin{pmatrix} 1 & \alpha^1 & \alpha^4 & \alpha^6\\ 1 & \alpha^2 & \alpha^1 & \alpha^{5}\\ 1 & \alpha^3 & \alpha^{5} & \alpha^{4}\\ 1 & \alpha^4 & \alpha^{2} & \alpha^{3} \end{pmatrix}\]

lautet somit die Bestimmungsgleichung:

\[{ \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} + { \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} = \underline {0}^{\rm T} \hspace{0.5cm} \Rightarrow \hspace{0.5cm} { \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} = - { \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T}\hspace{0.05cm}. \]
  • Da für alle Elemente  $z_i ∈ {\rm GF}(2^m)$  die  additive Inverse  ${\rm Inv_A}(z_i)= (- z_i) = z_i$  ist, gilt in gleicher Weise
\[{ \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} = { \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} = \begin{pmatrix} 1 & \alpha^1 & \alpha^4 & \alpha^6\\ 1 & \alpha^2 & \alpha^1 & \alpha^{5}\\ 1 & \alpha^3 & \alpha^{5} & \alpha^{4}\\ 1 & \alpha^4 & \alpha^{2} & \alpha^{3} \end{pmatrix} \cdot \begin{pmatrix} \alpha^1\\ 1\\ \alpha^{2}\\ \alpha^{6} \end{pmatrix} = \hspace{0.45cm}... \hspace{0.45cm}= \begin{pmatrix} \alpha^3\\ \alpha^{4}\\ \alpha^{2}\\ 0 \end{pmatrix} \hspace{0.05cm}.\]
  • Die rechte Gleichungsseite ergibt sich für das betrachtete Beispiel   ⇒   $\underline {z}_{\rm K} = (c_0, c_1,c_4, c_6)$  und basiert auf dem Polynom  $p(x) = x^3 + x +1$, das zu folgenden Potenzen $($in   $\alpha)$  führt:
\[\alpha^3 =\alpha + 1\hspace{0.05cm}, \hspace{0.3cm} \alpha^4 = \alpha^2 + \alpha\hspace{0.05cm}, \hspace{0.3cm} \alpha^5 = \alpha^2 + \alpha + 1\hspace{0.05cm}, \hspace{0.3cm} \alpha^6 = \alpha^2 + 1\hspace{0.05cm}, \hspace{0.3cm} \alpha^7 \hspace{-0.15cm} = \hspace{-0.15cm} 1\hspace{0.05cm}, \hspace{0.3cm} \alpha^8 = \alpha^1 \hspace{0.05cm}, \hspace{0.3cm} \alpha^9 = \alpha^2 \hspace{0.05cm}, \hspace{0.3cm} \alpha^{10} = \alpha^3 = \alpha + 1\hspace{0.05cm},\hspace{0.1cm} \text{...}\]
  • Damit lautet die Matrizengleichung zur Bestimmung des gesuchten Vektors  $\underline {z}_{\rm E}$:
\[\begin{pmatrix} \alpha^2 & \alpha^3 & \alpha^5 \\ \alpha^4 & \alpha^6 & \alpha^{3} \\ \alpha^6 & \alpha^2 & \alpha^{1} \\ \alpha^1 & \alpha^{5} & \alpha^{6} \end{pmatrix} \cdot \begin{pmatrix} z_2\\ z_3\\ z_5 \end{pmatrix} \stackrel{!}{=} \begin{pmatrix} \alpha^3\\ \alpha^{4}\\ \alpha^{2}\\ 0 \end{pmatrix} \hspace{0.05cm}. \]
  • Löst man diese Matrizengleichung (am einfachsten per Programm), so erhält man
\[z_2 = \alpha^2\hspace{0.05cm},\hspace{0.25cm}z_3 = \alpha^1\hspace{0.05cm},\hspace{0.25cm}z_5 = \alpha^5 \hspace{0.5cm} \Rightarrow \hspace{0.5cm}\underline {z} = \left ( \hspace{0.05cm} \alpha^1, \hspace{0.05cm}1, \hspace{0.05cm}\alpha^2, \hspace{0.05cm}\alpha^1, \hspace{0.05cm}\alpha^2, \hspace{0.05cm}\alpha^5, \hspace{0.05cm}\alpha^5 \hspace{0.05cm}\right ) \hspace{0.05cm}.\]
  • Das Ergebnis ist richtig, wie die folgenden Kontrollrechnungen zeigen:
\[\alpha^2 \cdot \alpha^2 + \alpha^3 \cdot \alpha^1 + \alpha^5 \cdot \alpha^5 = \alpha^4 + \alpha^4 + \alpha^{10} = \alpha^{10} = \alpha^3\hspace{0.05cm},\]
\[\alpha^4 \cdot \alpha^2 + \alpha^6 \cdot \alpha^1 + \alpha^3 \cdot \alpha^5 = (\alpha^2 + 1) + (1) + (\alpha) = \alpha^{2} + \alpha = \alpha^4\hspace{0.05cm},\]
\[\alpha^6 \cdot \alpha^2 + \alpha^2 \cdot \alpha^1 + \alpha^1 \cdot \alpha^5 = (\alpha) + (\alpha + 1) + (\alpha^2 + 1) = \alpha^{2} \hspace{0.05cm},\]
\[\alpha^1 \cdot \alpha^2 + \alpha^5 \cdot \alpha^1 + \alpha^6 \cdot \alpha^5 = (\alpha + 1) + (\alpha^2 + 1) + (\alpha^2 + \alpha) = 0\hspace{0.05cm}.\]
  • Das zugehörige Informationswort erhält man mit der  Generatormatrix  $\boldsymbol{\rm G}$  zu  $\underline {v} = \underline {z} \cdot \boldsymbol{\rm G}^{\rm T} = (\alpha^1,\hspace{0.05cm}1,\hspace{0.05cm}\alpha^3)$.

Aufgaben zum Kapitel


Aufgabe 2.11: RS–Decodierung nach „Erasures”

Aufgabe 2.11Z: Erasure–Kanal für Symbole