Difference between revisions of "Aufgaben:Exercise 2.11: Reed-Solomon Decoding according to "Erasures""

From LNTwww
m (Text replacement - "[[Kanalcodierung" to "[[Channel_Coding")
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Reed–Solomon–Decodierung beim Auslöschungskanal}}
+
{{quiz-Header|Buchseite=Channel_Coding/Reed-Solomon_Decoding_for_the_Erasure_Channel}}
  
[[File:P_ID2542__KC_A_2_11_neu.png|right|frame|${\rm GF}(2^3)$, dargestellt als  Potenzen, Polynome und Koeffizientenvektoren]]
+
[[File:EN_KC_Z_2_5_neu.png|right|frame|${\rm GF}(2^3)$, represented as powers, polynomials, coefficient vectors]]
Wir betrachten hier ein Codier– und Decodiersystem entsprechend der  [[Channel_Coding/Reed%E2%80%93Solomon%E2%80%93Decodierung_beim_Ausl%C3%B6schungskanal#Blockschaltbild_und_Voraussetzungen_zur_RS.E2.80.93Fehlererkennung| Grafik]]  im Theorieteil zu diesem Kapitel. Anzumerken ist:
+
We consider here an encoding  and decoding system corresponding to the  [[Channel_Coding/Reed-Solomon_Decoding_for_the_Erasure_Channel#Block_diagram_and_requirements_for_RS_fault_detection| "graph in the theory section for this chapter"]]. 
* Der Reed–Solomon–Code ist durch die Generatormatrix  $\mathbf{G}$  und die Prüfmatrix  $\mathbf{H}$  vorgegeben, wobei alle Elemente aus dem Galoisfeld  $\rm GF(2^3) \ \backslash \ \{0\}$  stammen:
+
 
 +
* The Reed–Solomon code is given by the generator matrix  $\mathbf{G}$  and the parity-check matrix  $\mathbf{H}$  where all elements are from the Galois field  $\rm GF(2^3) \ \backslash \ \{0\}$:
 
:$${ \boldsymbol{\rm G}} \hspace{-0.15cm} \ = \ \hspace{-0.15cm}  
 
:$${ \boldsymbol{\rm G}} \hspace{-0.15cm} \ = \ \hspace{-0.15cm}  
 
\begin{pmatrix}
 
\begin{pmatrix}
Line 18: Line 19:
 
\end{pmatrix} \hspace{0.05cm}.$$
 
\end{pmatrix} \hspace{0.05cm}.$$
  
* Alle Codesymbole&nbsp; $c_i &#8712; \{0, \, 1, \, \alpha, \, \alpha^2, \, \alpha^3, \, \alpha^4, \, \alpha^5, \, \alpha^6\}$&nbsp; werden durch&nbsp; $m = 3$&nbsp; Bit  dargestellt und über den (in der Grafik) grün hinterlegten Auslöschungskanal&nbsp; $(m$&ndash;BEC$)$&nbsp; übertragen. Ein Codesymbol wird bereits dann als Auslöschung (<i>Erasure</i>&nbsp;)&nbsp; $\rm E$&nbsp; markiert, wenn eines der drei zugehörigen Bit unsicher ist.
+
* All code symbols &nbsp; $c_i &#8712; \{0, \, 1, \, \alpha, \, \alpha^2, \, \alpha^3, \, \alpha^4, \, \alpha^5, \, \alpha^6\}$ &nbsp; are represented by&nbsp; $m = 3$&nbsp; bits and transmitted via the erasure channel&nbsp; $(m&ndash;\rm BEC)$.&nbsp; A code symbol is already marked as an erasure&nbsp; $\rm E$&nbsp; if one of the three associated bits is uncertain.
* Der <i>Codewortfinder</i>&nbsp; (CWF) hat die Aufgabe, aus dem teilweise ausgelöschten Empfangswort&nbsp; $\underline{y}$&nbsp; das regenerierte Codewort&nbsp; $\underline{z}$&nbsp; zu erzeugen. Dabei muss sichergestellt sein, dass das Ergebnis&nbsp; $\underline{z}$&nbsp; tatsächlich ein gültiges Reed&ndash;Solomon&ndash;Codewort ist.  
+
 
* Beinhaltet das Empfangswort&nbsp; $\underline{y}$&nbsp; zu viele Auslöschungen, so gibt der Decoder eine Meldung der Art &bdquo;Symbol ist nicht decodierbar&rdquo; aus. &nbsp;Es wird also nicht versucht, das Codewort zu schätzen. Wird&nbsp; $\underline{z}$&nbsp; ausgegeben, so ist dieses auch richtig:&nbsp; $\underline{z} = \underline{c}$.
+
* The&nbsp; "code word finder"&nbsp; $\rm (CWF)$&nbsp; has the task of generating the regenerated code word&nbsp; $\underline{z}$&nbsp; from the partially erased received word&nbsp; $\underline{y}$.&nbsp; It must be ensured that the result&nbsp; $\underline{z}$&nbsp; is indeed a valid Reed&ndash;Solomon code word.
* Das gesuchte Informationswert&nbsp; $\underline{v} = \underline{u}$&nbsp; ergibt sich durch die inverse Coderfunktion&nbsp; $\underline{v} = {\rm enc}^{-1}(\underline{z})$. Mit der Generatormatrix&nbsp; $\mathbf{G}$&nbsp; lässt sich diese wie folgt realisieren:
+
 +
* If the received word&nbsp; $\underline{y}$&nbsp; contains too many erasures,&nbsp; the decoder outputs a message of the type&nbsp; "symbol cannot be decoded".&nbsp; So no attempt is made to estimate the code word.&nbsp; If&nbsp; $\underline{z}$&nbsp; is output,&nbsp; this is also correct:&nbsp; $\underline{z} = \underline{c}$.
 +
 
 +
* The sought information value&nbsp; $\underline{v} = \underline{u}$&nbsp; results from the inverse encoder function &nbsp; $\underline{v} = {\rm enc}^{-1}(\underline{z})$.&nbsp; With the generator matrix&nbsp; $\mathbf{G}$&nbsp; this can be realized as follows:
 
:$$\underline{c} = {\rm enc}(\underline{u}) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \underline{u} \cdot {\boldsymbol{\rm G}}
 
:$$\underline{c} = {\rm enc}(\underline{u}) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \underline{u} \cdot {\boldsymbol{\rm G}}
 
\hspace{0.3cm} \Rightarrow \hspace{0.3cm} \underline{z} = {\rm enc}(\underline{v})
 
\hspace{0.3cm} \Rightarrow \hspace{0.3cm} \underline{z} = {\rm enc}(\underline{v})
Line 31: Line 35:
  
  
 +
Hints:
 +
* This exercise refers to the chapter&nbsp; [[Channel_Coding/Reed-Solomon_Decoding_for_the_Erasure_Channel| "Reed&ndash;Solomon Decoding for the Erasure Channel"]].
  
 +
* Regarding the code word finder,&nbsp; we refer in particular to the pages&nbsp;
 +
::[[Channel_Coding/Reed-Solomon_Decoding_for_the_Erasure_Channel#Decoding_procedure_using_the_RSC_.287.2C_3.2C_5.298_as_an_example| "Decoding procedure ..."]],&nbsp; and&nbsp;
 +
::[[Channel_Coding/Reed-Solomon_Decoding_for_the_Erasure_Channel#Solution_of_the_matrix_equations_using_the_example_of_the_RSC_.287.2C_3.2C_5.298| "Solution of the matrix equations ..."]].
  
 +
* All calculations are to be performed in&nbsp; $\rm GF(2^3)$.&nbsp; The upper graph describes their&nbsp; $q = 8$&nbsp; elements in power, polynomial and coefficient vector representation.
  
''Hinweise:''
 
* Die Aufgabe bezieht sich auf das Kapitel&nbsp; [[Channel_Coding/Reed%E2%80%93Solomon%E2%80%93Decodierung_beim_Ausl%C3%B6schungskanal| Reed&ndash;Solomon&ndash;Decodierung beim Auslöschungskanal]].
 
* Hinsichtlich des <i>Codewortfinders</i> verweisen wir insbesondere auf die Seiten&nbsp; [[Channel_Coding/Reed%E2%80%93Solomon%E2%80%93Decodierung_beim_Ausl%C3%B6schungskanal#Vorgehensweise_am_Beispiel_des_RSC_.287.2C_3.2C_5.298| Vorgehensweise]]&nbsp; und&nbsp; [[Channel_Coding/Reed%E2%80%93Solomon%E2%80%93Decodierung_beim_Ausl%C3%B6schungskanal#L.C3.B6sung_der_Matrixgleichungen_am_Beispiel_des_RSC_.287.2C_3.2C_5.298| Lösung der Matrixgleichungen]].
 
* Alle Berechnungen sind in&nbsp; $\rm GF(2^3)$&nbsp; durchzuführen. Die obere Grafik beschreibt deren&nbsp; $q = 8$&nbsp; Elemente in Potenz&ndash;, Polynom&ndash; und Koeffizientenvektordarstellung.
 
  
  
 
+
===Questions===
===Fragebogen===
 
 
<quiz display=simple>
 
<quiz display=simple>
{Geben Sie die Codeparameter des vorliegenden Reed&ndash;Solomon&ndash;Codes an.
+
{Specify the code parameters of the present Reed&ndash;Solomon code.
 
|type="{}"}
 
|type="{}"}
 
$n \ = \ ${ 7 }
 
$n \ = \ ${ 7 }
Line 49: Line 54:
 
$d_{\rm min} \ = \ ${ 4 }
 
$d_{\rm min} \ = \ ${ 4 }
  
{Kann der Empfangsvektor&nbsp; $\underline{y} = (0, \, 0, \, 0,\, 0, \, 0, \, 0, \, {\rm E})$&nbsp; decodiert werden?
+
{Can the received vector &nbsp; $\underline{y} = (0, \, 0, \, 0,\, 0, \, 0, \, 0, \, {\rm E})$ &nbsp; be decoded??
 
|type="()"}
 
|type="()"}
+ JA.
+
+ YES.
- NEIN.
+
- NO.
  
{Kann der Empfangsvektor&nbsp; $\underline{y} = (\rm E, \, E, \, 1, \, 1, \, 1, \, 1, \, 1)$&nbsp; decodiert werden?
+
{Can the received vector &nbsp; $\underline{y} = (\rm E, \, E, \, 1, \, 1, \, 1, \, 1, \, 1)$ &nbsp; be decoded?
 
|type="()"}
 
|type="()"}
+ JA.
+
+ YES.
- NEIN.
+
- NO.
  
{Welches Ergebnis liefert die Decodierung von&nbsp; $\underline{y} = (\rm E, \, E, \, E, \, 0, \, 1, \, \alpha, \, 0)$?
+
{What is the result of decoding &nbsp; "$\underline{y} = (\rm E, \, E, \, E, \, 0, \, 1, \, \alpha, \, 0)$"?
 
|type="()"}
 
|type="()"}
 
- $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = 0$.
 
- $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = 0$.
 
+ $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = \alpha^3$.
 
+ $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = \alpha^3$.
 
- $z_0 = 1, \ z_1 = 0, \ z_2 = \alpha^3$.
 
- $z_0 = 1, \ z_1 = 0, \ z_2 = \alpha^3$.
- Die Decodierung führt zu keinem Ergebnis.
+
- The decoding does not lead to any result.
  
{Welches Ergebnis liefert die Decodierung von&nbsp; $\underline{y} = (\rm E, \, E, \, E, \, 0, \, 1, \, \alpha, \, E)$?
+
{What is the result of decoding &nbsp; "$\underline{y} = (\rm E, \, E, \, E, \, 0, \, 1, \, \alpha, \, E)$"?
 
|type="()"}
 
|type="()"}
 
- $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = 0, \ z_6 = 1$.
 
- $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = 0, \ z_6 = 1$.
 
- $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = \alpha^3, \ z_6 = 1$.
 
- $z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = \alpha^3, \ z_6 = 1$.
 
- $z_0 = 1, \ z_1 = 0, \ z_2 = \alpha^3, \ z_6 = 1$.
 
- $z_0 = 1, \ z_1 = 0, \ z_2 = \alpha^3, \ z_6 = 1$.
+ Die Decodierung führt zu keinem Ergebnis.
+
+ The decoding does not lead to any result.
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Die Spaltenanzahl der Prüfmatrix $\mathbf{H}$ gibt die Codelänge an: $n \ \underline{= 7}$.  
+
'''(1)'''&nbsp; The number of columns of the parity-check matrix&nbsp; $\mathbf{H}$&nbsp; indicates the code length: $n \ \underline{= 7}$.  
*Zum gleichen Ergebnis kommt man, wenn man von der Ordnung $q = 8$ des Galoisfeldes ausgeht. Bei den Reed&ndash;Solomon&ndash;Codes gilt nämlich $n = q - 1$.  
+
*The same result is obtained if we assume the order&nbsp; $q = 8$&nbsp; of the Galois field.&nbsp; For the Reed&ndash;Solomon codes&nbsp; $n = q - 1$&nbsp; is valid.
*Die Zeilenanzahl der Prüfmatrix ist gleich $n - k = 3 \ \Rightarrow \ k \ \underline{= 4}$.  
+
*Von allen Reed&ndash;Solomon&ndash;Codes wird die [[Channel_Coding/Definition_und_Eigenschaften_von_Reed%E2%80%93Solomon%E2%80%93Codes#Singleton.E2.80.93Schranke_und_minimale_Distanz| Singleton&ndash;Schranke]] erfüllt &nbsp; &#8658; &nbsp; $d_{\rm min} = n - k + 1 \ \underline{= 4}$.  
+
*The number of rows of the parity-check matrix is equal to&nbsp; $n - k = 3 \ \Rightarrow \ k \ \underline{= 4}$.
*Es handelt sich also um den Reed&ndash;Solomon&ndash;Code $(7, \, 4, \, 4)_8$.
+
 +
*Of all Reed&ndash;Solomon codes,&nbsp; the&nbsp; [[Channel_Coding/Definition_and_Properties_of_Reed-Solomon_Codes#Singleton_bound_and_minimum_distance| "Singleton bound"]] is satisfied &nbsp; &#8658; &nbsp; $d_{\rm min} = n - k + 1 \ \underline{= 4}$.
 +
 +
*Thus,&nbsp; it is the Reed&ndash;Solomon code&nbsp; $(7, \, 4, \, 4)_8$.
  
  
  
'''(2)'''&nbsp; Eine Decodierung ist sicher möglich, so lange die Anzahl $e$ der Auslöschungen kleiner ist als die Minimaldistanz $d_{\rm min}$. Diese Bedingung ist hier erfüllt &nbsp;&#8658;&nbsp; <b><u>JA</u></b>.  
+
'''(2)'''&nbsp; Decoding is certainly possible as long as the number&nbsp; $e$&nbsp; of erasures is smaller than the minimum distance&nbsp; $d_{\rm min}$.&nbsp; This condition is fulfilled here &nbsp; &#8658; &nbsp; <b><u>YES</u></b>.  
*Nachdem bei allen RS&ndash;Codes das Nullwort zulässig ist und jedes andere Codewort mindestens vier Symbole ungleich &bdquo;$0$&rdquo; beinhaltet, ist bereits ohne Rechnung sicher, dass das Nullwort gesendet wurde.  
+
*Since the null word is allowed in all Reed&ndash;Solomon codes and every other code word contains at least four symbols&nbsp; "$\ne 0$",&nbsp; it is already certain without calculation that the null word was sent.
*Die formale Rechnung bestätigt dieses Ergebnis:
+
 +
*The formal calculation confirms this result:
 
:$${ \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}
Line 106: Line 115:
  
  
'''(3)'''&nbsp; Auch hier ist&nbsp; $e = 2$&nbsp; kleiner als&nbsp; $d_{\rm min} = 4$ &nbsp; &#8658; &nbsp; <b><u>JA</u></b>.  
+
'''(3)'''&nbsp; Again&nbsp; $e = 2$&nbsp; is smaller than&nbsp; $d_{\rm min} = 4$ &nbsp; &#8658; &nbsp; <b><u>YES</u></b>.  
*Da auch $(1, \, 1, \, 1, \, 1, \, 1, \, 1, \, 1)$ ein gültiges Codewort ist, erwarten wir bei der formalen Überprüfung $z_0 = 1$ und $z_1 = 1$.
+
*Since&nbsp; $(1, \, 1, \, 1, \, 1, \, 1, \, 1, \, 1)$&nbsp; is also a valid code word,&nbsp; we expect&nbsp; $z_0 = 1$&nbsp; und&nbsp; $z_1 = 1$&nbsp; in the formal verification.
 
:$${ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} \hspace{-0.15cm} \ = \ \hspace{-0.15cm}
 
:$${ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} \hspace{-0.15cm} \ = \ \hspace{-0.15cm}
 
\begin{pmatrix}
 
\begin{pmatrix}
Line 143: Line 152:
 
\hspace{0.05cm}. $$
 
\hspace{0.05cm}. $$
  
*Bei dieser Berechnung wurde zwischen der Polynomdarstellung und der Koeffizientendarstellung auf der Angabenseite variiert. Damit lautet das Gleichungssystem:
+
*In this calculation,&nbsp; we varied between the polynomial representation and the coefficient representation on the data side.&nbsp; Thus the system of equations reads:
 
:$$\begin{pmatrix}
 
:$$\begin{pmatrix}
 
(001) + (010) \\
 
(001) + (010) \\
Line 173: Line 182:
 
\end{pmatrix}\hspace{0.05cm}.$$
 
\end{pmatrix}\hspace{0.05cm}.$$
  
*Die zweite Form ergibt sich, wenn man die dritte Zeile aus der Modulo&ndash;$2$&ndash;Summe der Zeilen 2 und 3 ersetzt.  
+
*The second form is obtained by substituting the third row from the modulo-2 sum of rows 2 and 3.
*Aus der letzten Zeile folgt nun $z_1 = 1$ und die Zeilen 1 und 2 lauten dann:
+
 +
*From the last row now follows&nbsp; $z_1 = 1$&nbsp; and the rows 1 and 2 are then:
 
:$$(1)\hspace{0.3cm}z_0 + (010) \cdot 1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (011)\hspace{0.3cm} \Rightarrow \hspace{0.3cm}z_0 = (001) = 1\hspace{0.05cm},$$
 
:$$(1)\hspace{0.3cm}z_0 + (010) \cdot 1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (011)\hspace{0.3cm} \Rightarrow \hspace{0.3cm}z_0 = (001) = 1\hspace{0.05cm},$$
 
:$$(2)\hspace{0.3cm}z_0 + (100) \cdot 1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (101)\hspace{0.3cm} \Rightarrow \hspace{0.3cm}z_0 = (001) = 1\hspace{0.05cm}. $$
 
:$$(2)\hspace{0.3cm}z_0 + (100) \cdot 1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (101)\hspace{0.3cm} \Rightarrow \hspace{0.3cm}z_0 = (001) = 1\hspace{0.05cm}. $$
  
*Beide Gleichungen führen zum gleichen Ergebnis $z_0 = 1, \ z_1 = 1$. Die Decodierung ist erfolgreich.
+
*Both equations lead to the same result&nbsp; $z_0 = 1, \ z_1 = 1$.&nbsp; The decoding is successful.
  
  
  
'''(4)'''&nbsp; Die Decodierung passiert auf folgenden Schritten:
+
'''(4)'''&nbsp; The decoding happens on the following steps:
 
:$${ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} \hspace{-0.15cm} \ = \ \hspace{-0.15cm}
 
:$${ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} \hspace{-0.15cm} \ = \ \hspace{-0.15cm}
 
\begin{pmatrix}
 
\begin{pmatrix}
Line 238: Line 248:
 
\hspace{0.05cm}. $$
 
\hspace{0.05cm}. $$
  
*Wir ersetzen nun die Zeile 2 durch die Modulo&ndash;$2$&ndash;Summe der Zeilen 1 und 2 sowie die Zeile 3 durch die Modulo&ndash;$2$&ndash;Summe der Zeilen 1 und 3:
+
*We now replace row 2 with the modulo-2 sum of rows 1 and 2, and row 3 with the modulo-2 sum of rows 1 and 3:
 
:$$\begin{pmatrix}
 
:$$\begin{pmatrix}
 
(001) &(010) &(100)\\
 
(001) &(010) &(100)\\
Line 256: Line 266:
 
\hspace{0.05cm}.$$
 
\hspace{0.05cm}.$$
  
*Aus der letzten Zeile folgt $z_1 + z_2 = 0 \ \Rightarrow \ z_2 = z_1$. Eingesetzt in die zweite Zeile dieser Matrixgleichung erhält man:
+
*From the last row follows&nbsp; $z_1 + z_2 = 0 \ \Rightarrow \ z_2 = z_1$.&nbsp; Substituting into the second row of this matrix equation we get:
 
:$$\big[(110) + (010)\big] \cdot z_1 = (100) \cdot z_1 = (111) \hspace{0.2cm} \Rightarrow \hspace{0.2cm}
 
:$$\big[(110) + (010)\big] \cdot z_1 = (100) \cdot z_1 = (111) \hspace{0.2cm} \Rightarrow \hspace{0.2cm}
 
\alpha^2 \cdot z_1 = \alpha^5\hspace{0.2cm}\Rightarrow \hspace{0.2cm}
 
\alpha^2 \cdot z_1 = \alpha^5\hspace{0.2cm}\Rightarrow \hspace{0.2cm}
Line 262: Line 272:
 
\hspace{0.05cm}. $$
 
\hspace{0.05cm}. $$
  
*Mit diesem Ergebnis folgt aus der ersten Matrixzeile:
+
*With this result follows from the first matrix row:
 
:$$z_0 + \big[(010) + (100)\big] \cdot z_1 = z_0 + (110) \cdot z_1 = (011) $$
 
:$$z_0 + \big[(010) + (100)\big] \cdot z_1 = z_0 + (110) \cdot z_1 = (011) $$
 
:$$\Rightarrow \hspace{0.2cm}  z_0 + \alpha^4 \cdot \alpha^3 = z_0 + 1 =  \alpha^3  
 
:$$\Rightarrow \hspace{0.2cm}  z_0 + \alpha^4 \cdot \alpha^3 = z_0 + 1 =  \alpha^3  
Line 268: Line 278:
 
z_0 =  \alpha^3 + 1 = ( \alpha + 1) +1\hspace{0.15cm} \underline{= \alpha}\hspace{0.05cm}.$$
 
z_0 =  \alpha^3 + 1 = ( \alpha + 1) +1\hspace{0.15cm} \underline{= \alpha}\hspace{0.05cm}.$$
  
*Richtig ist demnach der <u>Lösungsvorschlag 2</u>.
+
*The correct solution is therefore&nbsp; <u>proposed solution 2</u>.
 +
 
  
  
 +
'''(5)'''&nbsp; Correct is the&nbsp; <u>proposed solution 4</u>. &nbsp; Reasons:
 +
* Four information symbols cannot be obtained from the three known symbols&nbsp; $0, \, 1, \, \alpha$.
  
'''(5)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 4</u>. &nbsp; Begründung:
+
*The&nbsp; $\mathbf{H}$&nbsp; matrix of this&nbsp; $(7, \, 4, \, 4)_8$&nbsp; code has exactly&nbsp; $n - k = 3$&nbsp; rows.
* Aus den drei bekannten Symbolen $0, \, 1, \, \alpha$ kann man nicht vier Informationssymbole gewinnen.
+
* Die $\mathbf{H}$&ndash;Matrix dieses $(7, \, 4, \, 4)_8$&ndash;Codes hat genau $n - k = 3$ Zeilen.  
+
*This also means that you have only three equations.&nbsp; But you would need four equations for the unknowns&nbsp; $z_0, \ z_1, \ z_2$&nbsp; and&nbsp; $z_6$.
*Man hat damit auch nur drei Gleichungen. Benötigen würde man aber vier Gleichungen für die Unbekannten $z_0, \ z_1, \ z_2$ und $z_6$.
 
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  
  
  
[[Category:Aufgaben zu  Kanalcodierung|^2.4 RS–Decodierung bei Auslöschungen^]]
+
[[Category:Channel Coding: Exercises|^2.4 Reed-Solomon Decoding at the BEC^]]

Latest revision as of 16:58, 20 October 2022

${\rm GF}(2^3)$, represented as powers, polynomials, coefficient vectors

We consider here an encoding and decoding system corresponding to the  "graph in the theory section for this chapter"

  • The Reed–Solomon code is given by the generator matrix  $\mathbf{G}$  and the parity-check matrix  $\mathbf{H}$  where all elements are from the Galois field  $\rm GF(2^3) \ \backslash \ \{0\}$:
$${ \boldsymbol{\rm G}} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \begin{pmatrix} 1 & 1 & 1 & 1 & 1 & 1 & 1\\ 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} \end{pmatrix} \hspace{0.05cm},$$
$${ \boldsymbol{\rm H}} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \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} \end{pmatrix} \hspace{0.05cm}.$$
  • All code symbols   $c_i ∈ \{0, \, 1, \, \alpha, \, \alpha^2, \, \alpha^3, \, \alpha^4, \, \alpha^5, \, \alpha^6\}$   are represented by  $m = 3$  bits and transmitted via the erasure channel  $(m–\rm BEC)$.  A code symbol is already marked as an erasure  $\rm E$  if one of the three associated bits is uncertain.
  • The  "code word finder"  $\rm (CWF)$  has the task of generating the regenerated code word  $\underline{z}$  from the partially erased received word  $\underline{y}$.  It must be ensured that the result  $\underline{z}$  is indeed a valid Reed–Solomon code word.
  • If the received word  $\underline{y}$  contains too many erasures,  the decoder outputs a message of the type  "symbol cannot be decoded".  So no attempt is made to estimate the code word.  If  $\underline{z}$  is output,  this is also correct:  $\underline{z} = \underline{c}$.
  • The sought information value  $\underline{v} = \underline{u}$  results from the inverse encoder function   $\underline{v} = {\rm enc}^{-1}(\underline{z})$.  With the generator matrix  $\mathbf{G}$  this can be realized as follows:
$$\underline{c} = {\rm enc}(\underline{u}) \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \underline{u} \cdot {\boldsymbol{\rm G}} \hspace{0.3cm} \Rightarrow \hspace{0.3cm} \underline{z} = {\rm enc}(\underline{v}) = \underline{v} \cdot {\boldsymbol{\rm G}} \hspace{0.3cm} \Rightarrow \hspace{0.3cm} \underline{v} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} {\rm enc}^{-1}(\underline{z}) = \underline{z} \cdot {\boldsymbol{\rm G}}^{\rm T}\hspace{0.05cm}.$$



Hints:

  • Regarding the code word finder,  we refer in particular to the pages 
"Decoding procedure ...",  and 
"Solution of the matrix equations ...".
  • All calculations are to be performed in  $\rm GF(2^3)$.  The upper graph describes their  $q = 8$  elements in power, polynomial and coefficient vector representation.


Questions

1

Specify the code parameters of the present Reed–Solomon code.

$n \ = \ $

$k \ = \ $

$d_{\rm min} \ = \ $

2

Can the received vector   $\underline{y} = (0, \, 0, \, 0,\, 0, \, 0, \, 0, \, {\rm E})$   be decoded??

YES.
NO.

3

Can the received vector   $\underline{y} = (\rm E, \, E, \, 1, \, 1, \, 1, \, 1, \, 1)$   be decoded?

YES.
NO.

4

What is the result of decoding   "$\underline{y} = (\rm E, \, E, \, E, \, 0, \, 1, \, \alpha, \, 0)$"?

$z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = 0$.
$z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = \alpha^3$.
$z_0 = 1, \ z_1 = 0, \ z_2 = \alpha^3$.
The decoding does not lead to any result.

5

What is the result of decoding   "$\underline{y} = (\rm E, \, E, \, E, \, 0, \, 1, \, \alpha, \, E)$"?

$z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = 0, \ z_6 = 1$.
$z_0 = \alpha, \ z_1 = \alpha^3, \ z_2 = \alpha^3, \ z_6 = 1$.
$z_0 = 1, \ z_1 = 0, \ z_2 = \alpha^3, \ z_6 = 1$.
The decoding does not lead to any result.


Solution

(1)  The number of columns of the parity-check matrix  $\mathbf{H}$  indicates the code length: $n \ \underline{= 7}$.

  • The same result is obtained if we assume the order  $q = 8$  of the Galois field.  For the Reed–Solomon codes  $n = q - 1$  is valid.
  • The number of rows of the parity-check matrix is equal to  $n - k = 3 \ \Rightarrow \ k \ \underline{= 4}$.
  • Of all Reed–Solomon codes,  the  "Singleton bound" is satisfied   ⇒   $d_{\rm min} = n - k + 1 \ \underline{= 4}$.
  • Thus,  it is the Reed–Solomon code  $(7, \, 4, \, 4)_8$.


(2)  Decoding is certainly possible as long as the number  $e$  of erasures is smaller than the minimum distance  $d_{\rm min}$.  This condition is fulfilled here   ⇒   YES.

  • Since the null word is allowed in all Reed–Solomon codes and every other code word contains at least four symbols  "$\ne 0$",  it is already certain without calculation that the null word was sent.
  • The formal calculation confirms this result:
$${ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} = \begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} \hspace{0.3cm} \Rightarrow \hspace{0.3cm} \begin{pmatrix} \alpha^6\\ \alpha^{5}\\ \alpha^{4} \end{pmatrix} \cdot z_6 = \begin{pmatrix} 0\\ 0\\ 0 \end{pmatrix} \hspace{0.3cm} \Rightarrow \hspace{0.3cm} z_6 = 0 \hspace{0.05cm}. $$


(3)  Again  $e = 2$  is smaller than  $d_{\rm min} = 4$   ⇒   YES.

  • Since  $(1, \, 1, \, 1, \, 1, \, 1, \, 1, \, 1)$  is also a valid code word,  we expect  $z_0 = 1$  und  $z_1 = 1$  in the formal verification.
$${ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \begin{pmatrix} \alpha^2 & \alpha^3 & \alpha^4 & \alpha^5 & \alpha^6\\ \alpha^4 & \alpha^6 & \alpha^1 & \alpha^{3} & \alpha^{5}\\ \alpha^6 & \alpha^2 & \alpha^{5} & \alpha^{1} & \alpha^{4} \end{pmatrix} \cdot\begin{pmatrix} 1\\ 1\\ 1\\ 1\\ 1 \end{pmatrix}= \begin{pmatrix} \alpha^2 + \alpha^3 + \alpha^4 + \alpha^5 + \alpha^6\\ \alpha^4 + \alpha^6 + \alpha^1 + \alpha^{3} + \alpha^{5}\\ \alpha^6 + \alpha^2 + \alpha^{5} + \alpha^{1} + \alpha^{4} \end{pmatrix}$$
$$\Rightarrow \hspace{0.3cm}{ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} \hspace{-0.15cm} \ = \ \begin{pmatrix} (100) + (011) + (110) + (111) + (101)\\ (110) + (101) + (010) + (011) + (111)\\ (101) + (100) + (111) + (010) + (110) \end{pmatrix} = \begin{pmatrix} (011)\\ (101)\\ (010) \end{pmatrix} = \begin{pmatrix} \alpha^3\\ \alpha^6\\ \alpha^1 \end{pmatrix} \hspace{0.05cm}. $$
  • In this calculation,  we varied between the polynomial representation and the coefficient representation on the data side.  Thus the system of equations reads:
$$\begin{pmatrix} (001) + (010) \\ (001) + (100)\\ (001) + (011) \end{pmatrix} \cdot \begin{pmatrix} z_0\\ z_1 \end{pmatrix} = \begin{pmatrix} (011)\\ (101)\\ (010) \end{pmatrix} \hspace{0.25cm} \Rightarrow \hspace{0.25cm} \begin{pmatrix} (001) + (010) \\ (001) + (100)\\ (000) + (111) \end{pmatrix} \cdot \begin{pmatrix} z_0\\ z_1 \end{pmatrix} = \begin{pmatrix} (011)\\ (101)\\ (111) \end{pmatrix}\hspace{0.05cm}.$$
  • The second form is obtained by substituting the third row from the modulo-2 sum of rows 2 and 3.
  • From the last row now follows  $z_1 = 1$  and the rows 1 and 2 are then:
$$(1)\hspace{0.3cm}z_0 + (010) \cdot 1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (011)\hspace{0.3cm} \Rightarrow \hspace{0.3cm}z_0 = (001) = 1\hspace{0.05cm},$$
$$(2)\hspace{0.3cm}z_0 + (100) \cdot 1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} (101)\hspace{0.3cm} \Rightarrow \hspace{0.3cm}z_0 = (001) = 1\hspace{0.05cm}. $$
  • Both equations lead to the same result  $z_0 = 1, \ z_1 = 1$.  The decoding is successful.


(4)  The decoding happens on the following steps:

$${ \boldsymbol{\rm H}}_{\rm K} \cdot \underline {z}_{\rm K}^{\rm T} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \begin{pmatrix} \alpha^3 & \alpha^4 & \alpha^5 & \alpha^6\\ \alpha^6 & \alpha^1 & \alpha^{3} & \alpha^{5}\\ \alpha^2 & \alpha^{5} & \alpha^{1} & \alpha^{4} \end{pmatrix} \cdot\begin{pmatrix} 0\\ 1\\ \alpha\\ 0 \end{pmatrix}= \begin{pmatrix} \alpha^4 + \alpha^6\\ \alpha^1 + \alpha^{4}\\ \alpha^5 + \alpha^2 \end{pmatrix}= \begin{pmatrix} (110) + (101)\\ (010) + (110)\\ (111) + (100) \end{pmatrix} = \begin{pmatrix} (011)\\ (100)\\ (011) \end{pmatrix} \hspace{0.05cm},$$
$${ \boldsymbol{\rm H}}_{\rm E} \cdot \underline {z}_{\rm E}^{\rm T} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} \begin{pmatrix} 1 & \alpha^1 & \alpha^2\\ 1 & \alpha^2 & \alpha^4\\ 1 & \alpha^3 & \alpha^6 \end{pmatrix} \cdot\begin{pmatrix} z_0\\ z_1\\ z_2 \end{pmatrix}\hspace{0.3cm} \Rightarrow \hspace{0.3cm} \begin{pmatrix} (001) &(010) &(100)\\ (001) &(100) &(110)\\ (001) &(011) &(101) \end{pmatrix} \cdot \begin{pmatrix} z_0\\ z_1\\ z_2 \end{pmatrix}= \begin{pmatrix} (011)\\ (100)\\ (011) \end{pmatrix} \hspace{0.05cm}. $$
  • We now replace row 2 with the modulo-2 sum of rows 1 and 2, and row 3 with the modulo-2 sum of rows 1 and 3:
$$\begin{pmatrix} (001) &(010) &(100)\\ (000) &(110) &(010)\\ (000) &(001) &(001) \end{pmatrix} \cdot \begin{pmatrix} z_0\\ z_1\\ z_2 \end{pmatrix}= \begin{pmatrix} (011)\\ (111)\\ (000) \end{pmatrix} \hspace{0.05cm}.$$
  • From the last row follows  $z_1 + z_2 = 0 \ \Rightarrow \ z_2 = z_1$.  Substituting into the second row of this matrix equation we get:
$$\big[(110) + (010)\big] \cdot z_1 = (100) \cdot z_1 = (111) \hspace{0.2cm} \Rightarrow \hspace{0.2cm} \alpha^2 \cdot z_1 = \alpha^5\hspace{0.2cm}\Rightarrow \hspace{0.2cm} z_1 \hspace{0.1cm}\underline{= \alpha^3}\hspace{0.05cm},\hspace{0.2cm}z_2 \hspace{0.1cm}\underline{= \alpha^3} \hspace{0.05cm}. $$
  • With this result follows from the first matrix row:
$$z_0 + \big[(010) + (100)\big] \cdot z_1 = z_0 + (110) \cdot z_1 = (011) $$
$$\Rightarrow \hspace{0.2cm} z_0 + \alpha^4 \cdot \alpha^3 = z_0 + 1 = \alpha^3 \hspace{0.2cm} \Rightarrow \hspace{0.2cm} z_0 = \alpha^3 + 1 = ( \alpha + 1) +1\hspace{0.15cm} \underline{= \alpha}\hspace{0.05cm}.$$
  • The correct solution is therefore  proposed solution 2.


(5)  Correct is the  proposed solution 4.   Reasons:

  • Four information symbols cannot be obtained from the three known symbols  $0, \, 1, \, \alpha$.
  • The  $\mathbf{H}$  matrix of this  $(7, \, 4, \, 4)_8$  code has exactly  $n - k = 3$  rows.
  • This also means that you have only three equations.  But you would need four equations for the unknowns  $z_0, \ z_1, \ z_2$  and  $z_6$.