Difference between revisions of "Aufgaben:Exercise 4.7: Product Code Decoding"

From LNTwww
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Grundlegendes zu den Produktcodes}}
+
{{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Product_Codes}}
  
[[File:P_ID3006__KC_A_4_7_v2.png|right|frame|Syndromtabellen der betrachteten Komponentencodes  $\mathcal{C}_1$  und  $\mathcal{C}_2$]]  
+
[[File:P_ID3006__KC_A_4_7_v2.png|right|frame|Syndrome tables of the considered component codes  $\mathcal{C}_1$  and  $\mathcal{C}_2$]]  
Wir betrachten wie in der  [[Aufgaben:Aufgabe_4.6:_Produktcode–Generierung|Aufgabe 4.6]]  einen Produktcode, basierend auf
+
We consider, as in the  [[Aufgaben:Aufgabe_4.6:_Produktcode–Generierung|"Exercise 4.6"]]  a product code based on.
* dem Hammingcode  $\rm HC \ (7, \ 4, \ 3)$   ⇒   $\mathcal{C}_1$,
+
* the Hamming code  $\rm HC \ (7, \ 4, \ 3)$   ⇒   $\mathcal{C}_1$,
* dem verkürzten Hammingcode  $\rm HC \ (6, \ 3, \ 3)$   ⇒   $\mathcal{C}_2$.
+
* the truncated Hamming code  $\rm HC \ (6, \ 3, \ 3)$   ⇒   $\mathcal{C}_2$.
  
  
Die Prüfmatrizen dieser Komponentencodes lauten:
+
The parity-check matrices of these component codes are:
 
:$${ \boldsymbol{\rm H}}_1  
 
:$${ \boldsymbol{\rm H}}_1  
 
=  \begin{pmatrix}
 
=  \begin{pmatrix}
Line 21: Line 21:
 
\end{pmatrix} \hspace{0.05cm}.$$
 
\end{pmatrix} \hspace{0.05cm}.$$
  
Der Vollständigkeit halber sind auch die Generatormatrizen angegeben, die jedoch zur Lösung der Aufgabe nicht benötigt werden:
+
For the sake of completeness, the generator matrices are also given, but they are not needed to solve the exercise:
 
:$${ \boldsymbol{\rm G}}_1  
 
:$${ \boldsymbol{\rm G}}_1  
 
=  \begin{pmatrix}
 
=  \begin{pmatrix}
Line 36: Line 36:
 
\end{pmatrix} \hspace{0.05cm}.$$
 
\end{pmatrix} \hspace{0.05cm}.$$
  
Die&nbsp; <i>Hard Decision Decodierung</i>&nbsp; dieses Codes geschieht vorzugsweise iterativ, indem abwechselnd alle Zeilen und anschließend alle Spalten syndromdecodiert werden. Siehe:&nbsp; [[Channel_Coding/Grundlegendes_zu_den_Produktcodes#Iterative_Syndromdecodierung_von_Produktcodes| Iterative Syndromdecodierung von Produktcodes]].
+
The&nbsp; <i>Hard Decision Decoding</i>&nbsp; of this code is preferably done iteratively, by alternately syndromdecoding all rows and then all columns. See:&nbsp; [[Channel_Coding/The_Basics_of_Product_Codes#Iterative_syndrome_decoding_of_product_codes| "Iterative Syndrome Decoding of Product Codes"]].
  
Die Syndromdecodierung (eindimensionaler) Blockcodes wurde bereits im Kapitel&nbsp; [[Channel_Coding/Decodierung_linearer_Blockcodes| Decodierung linearer Blockcodes]]&nbsp; behandelt. Hier eine kurze Zusammenfassung und eine Adaption an den zweidimensionalen Fall:
+
Syndrome decoding of (one-dimensional) block codes has already been covered in the chapter&nbsp; [[Channel_Coding/Decoding_of_Linear_Block_Codes| "Decoding of Linear Block Codes"]]&nbsp;. Here is a brief summary and an adaptation to the two-dimensional case:
* Aus dem Empfangswort&nbsp; $\underline{y}$&nbsp; (einer Zeile bzw. einer Spalte der vorgegebenen Empfangsmatrix) wird das Syndrom entsprechend&nbsp; $\underline{s} = \underline{y} \cdot \mathbf{H}_1^{\rm T}$&nbsp; bzw.&nbsp; $\underline{s} = \underline{y} \cdot \mathbf{H}_2^{\rm T}$&nbsp; gebildet.
+
* From the received word&nbsp; $\underline{y}$&nbsp; (a row or a column of the given received matrix), the syndrome corresponding to&nbsp; $\underline{s} = \underline{y} \cdot \mathbf{H}_1^{\rm T}$&nbsp; respectively&nbsp; $\underline{s} = \underline{y} \cdot \mathbf{H}_2^{\rm T}$&nbsp; formed.
* Mit dem Ergebnis&nbsp; $\underline{s} = \underline{s}_{\mu}$&nbsp; kann man in obigen Tabellen den so genannten Nebenklassenanfüherer&nbsp; $\underline{e}_{\mu}$&nbsp; ablesen.  
+
*With the result&nbsp; $\underline{s} = \underline{s}_{\mu}$&nbsp; one can read in above tables the so called side class adder&nbsp; $\underline{e}_{\mu}$&nbsp;.  
*Das korrigierte Codewort ist dann&nbsp; $\underline{y} + \underline{e}_{\mu}$.
+
*The corrected codeword is then&nbsp; $\underline{y} + \underline{e}_{\mu}$.
  
[[File:P_ID3007__KC_A_4_7zusatz_v1.png|right|frame|Vorgegebene Coder– und Empfangsmatrizen]]
+
[[File:P_ID3007__KC_A_4_7zusatz_v1.png|right|frame|Predefined coder and receiver matrices]]
<br><br><br>Die nebenstehende Grafik zeigt drei verschiedene Coder&ndash; und Empfangsmatrizen, die in den Teilaufgaben '''(1)''', '''(2)''' und '''(3)''' zu analysieren sind:
+
<br><br><br>The accompanying diagram shows three different coder&ndash; and receiver matrices to be analyzed in the subtasks '''(1)''', '''(2)''', and '''(3)''':
*Wir benennen diese mit Konstellation&nbsp; $\mathbf{A}$,&nbsp; $\mathbf{B}$&nbsp; und&nbsp; $\mathbf{C}$.  
+
*We name them constellation&nbsp; $\mathbf{A}$,&nbsp; $\mathbf{B}$&nbsp; and&nbsp; $\mathbf{C}$.  
*Gelb markiert sind die Unterschiede der Empfangsmatrix von Konstellation&nbsp; $\mathbf{B}$&nbsp; gegenüber&nbsp; $\mathbf{A}$.  
+
*Marked in yellow are the differences in the reception matrix of constellation&nbsp; $\mathbf{B}$&nbsp; versus&nbsp; $\mathbf{A}$.  
*In beiden Fällen besteht die Codermatrix nur aus Nullen.  
+
*In both cases, the code matrix consists only of zeros.  
*Die Codermatrix von&nbsp; $\rm C$&nbsp; wurde in der&nbsp; [[Aufgaben:Aufgabe_4.6:_Produktcode–Generierung|Aufgabe 4.6]]&nbsp; ermittelt.
+
*The code matrix of&nbsp; $\rm C$&nbsp; was determined in the&nbsp; [[Aufgaben:Aufgabe_4.6:_Produktcode–Generierung|Aufgabe 4.6]]&nbsp;.
  
  
Line 56: Line 56:
  
  
''Hinweise:''
+
Hints:
* Die Aufgabe gehört zum Kapitel&nbsp; [[Channel_Coding/Grundlegendes_zu_den_Produktcodes| Grundlegendes zu den Produktcode]].
+
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/The_Basics_of_Product_Codes| "Basics of Product Codes"]].
*Bezug genommen wird insbesondere auf die Seite&nbsp; [[Channel_Coding/Grundlegendes_zu_den_Produktcodes#Iterative_Syndromdecodierung_von_Produktcodes| Iterative Syndromdecodierung von Produktcodes]].
+
*Reference is made in particular to the page&nbsp; [[Channel_Coding/The_Basics_of_Product_Codes#Iterative_syndrome_decoding_of_product_codes| "Iterative syndrome decoding of product codes"]].
  
  
Line 64: Line 64:
  
  
===Fragebogen===
+
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Ist die 2D&ndash;Empfangsmatrix &nbsp;$\mathbf{A}$&nbsp; decodierbar?
+
{Is the two-dimensional received matrix &nbsp;$\mathbf{A}$&nbsp; decodable?
 
|type="()"}
 
|type="()"}
- Ja, nach der ersten Decodierung in horizontaler Richtung.
+
- Yes, after the first decoding in horizontal direction.
- Ja, nach der ersten Decodierung in vertikaler Richtung.
+
- Yes, after the first decoding in vertical direction.
+ Ja, nach der zweiten Decodierung in horizontaler Richtung.
+
+ Yes, after the second decoding in horizontal direction.
- Ja, nach der zweiten Decodierung in vertikaler Richtung.
+
- Yes, after the second decoding in vertical direction.
- Nein.
+
- No.
  
{Ist die 2D&ndash;Empfangsmatrix &nbsp;$\mathbf{B}$&nbsp; decodierbar?
+
{Is the two-dimensional received matrix &nbsp;$\mathbf{B}$&nbsp; decodable?
 
|type="()"}
 
|type="()"}
- Ja, nach der ersten Decodierung in horizontaler Richtung.
+
- Yes, after the first decoding in horizontal direction.
- Ja, nach der ersten Decodierung in vertikaler Richtung.
+
- Yes, after the first decoding in vertical direction.
- Ja, nach der zweiten Decodierung in horizontaler Richtung.
+
+ Yes, after the second decoding in horizontal direction.
- Ja, nach der zweiten Decodierung in vertikaler Richtung.
+
- Yes, after the second decoding in vertical direction.
+ Nein.
+
- No.
  
{Ist die 2D&ndash;Empfangsmatrix &nbsp;$\mathbf{C}$&nbsp; decodierbar? Versuchen Sie, die Lösung über eine Äquivalenz zur Aufgabe '''(1)''' oder '''(2)''' zu finden.
+
{Is the two-dimensional received matrix &nbsp;$\mathbf{C}$&nbsp; decodable? Try to find the solution via an equivalence to the exercise '''(1)''' or '''(2)'''.
 
|type="()"}
 
|type="()"}
- Ja, nach der ersten Decodierung in horizontaler Richtung.
+
- Yes, after the first decoding in horizontal direction.
- Ja, nach der ersten Decodierung in vertikaler Richtung.
+
- Yes, after the first decoding in vertical direction.
+ Ja, nach der zweiten Decodierung in horizontaler Richtung.
+
+ Yes, after the second decoding in horizontal direction.
- Ja, nach der zweiten Decodierung in vertikaler Richtung.
+
- Yes, after the second decoding in vertical direction.
- Nein.
+
- No.
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Der Decodiervorgang der Empfangsmatrix $\mathbf{A}$ wird durch die folgende Grafik verdeutlicht.
+
'''(1)'''&nbsp; The decoding process of the receive matrix $\mathbf{A}$ is illustrated by the following diagram.
  
[[File:P_ID3008__KC_A_4_7a_v1.png|center|frame|Zur Syndromdecodierung der 2D–Empfangsmatrix $\mathbf{A}$]]
+
[[File:P_ID3008__KC_A_4_7a_v1.png|center|frame|Syndrome decoding of the two-dimensional received matrix $\mathbf{A}$.]]
  
* Die Einzelfehler in den Zeilen 1, 3, 5 und 6 werden vom $(7, \ 4, \ 3)$&ndash;Hammingcode erkannt und können korrigiert werden <br>&nbsp;&#8658;&nbsp; grüne Markierungen in der Grafik "1. Iteration horizontal".
+
* The single errors in rows 1, 3, 5 and 6 are detected by $(7, \ 4, \ 3)$&ndash;Hamming code and can be corrected <br>&nbsp;&#8658;&nbsp; green markings in the graphic "1st iteration horizontal".
* Für die zweite Zeile ergibt sich das Syndrom
+
* For the second row results the syndrome
 
:$$\underline{s} = \underline{y}_2 \hspace{-0.03cm}\cdot \hspace{-0.03cm}{ \boldsymbol{\rm H}}_1^{\rm T} = \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot \hspace{-0.05cm}
 
:$$\underline{s} = \underline{y}_2 \hspace{-0.03cm}\cdot \hspace{-0.03cm}{ \boldsymbol{\rm H}}_1^{\rm T} = \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot \hspace{-0.05cm}
 
   \begin{pmatrix}
 
   \begin{pmatrix}
Line 114: Line 114:
 
= \underline{s}_1 \hspace{0.03cm}.$$
 
= \underline{s}_1 \hspace{0.03cm}.$$
  
* Nach der oberen Syndromtabelle auf der Angabenseite wird somit fälschlicherweise das letzte Bit "korrigiert". Fehlkorrekturen sind in der oberen Grafik rot eingetragen.
+
* According to the upper syndrome table on the information page, the last bit is thus incorrectly "corrected". Incorrect corrections are entered in red in the upper graphic.
* Entsprechend gilt für die vierte Zeile:
+
* Correspondingly applies to the fourth row:
 
:$$\underline{s} = \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0 \right ) \cdot { \boldsymbol{\rm H}}_1^{\rm T} =
 
:$$\underline{s} = \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0 \right ) \cdot { \boldsymbol{\rm H}}_1^{\rm T} =
 
\left ( 1, \hspace{0.03cm} 1, \hspace{0.03cm}0 \right )
 
\left ( 1, \hspace{0.03cm} 1, \hspace{0.03cm}0 \right )
 
+ \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0 \right )=
 
+ \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0 \right )=
 
\left ( 1, \hspace{0.03cm} 0, \hspace{0.03cm}0 \right )= \underline{s}_4 \hspace{0.05cm}.$$
 
\left ( 1, \hspace{0.03cm} 0, \hspace{0.03cm}0 \right )= \underline{s}_4 \hspace{0.05cm}.$$
* Dies bewirkt eine Fehlkorrektur von Bit 5.
+
* This causes a miscorrection of bit 5.
  
:* Die vertikale Decodierung der Spalten 1, 3, 4, 5, 6 und 7 ist problemlos, da höchstens ein Fehler pro Spalte auftritt, der durch den verkürzten Hammingcode $\rm (6, \ 3, \ 3)$ korrigiert werden kann.
+
:* Vertical decoding of columns 1, 3, 4, 5, 6, and 7 is straightforward because there is at most one error per column, which can be corrected by the truncated Hamming code $\rm (6, \ 3, \ 3)$.
  
:* In Spalte 2 kommt es dagegen zu einer Fehlkorrektur des letzten Bits entsprechend der unteren Syndromtabelle. Mit der Transponierten der $\rm (6, \ 3, \ 3)$&ndash;Prüfmatrix $\mathbf{H}_2$ ergibt sich nämlich:
+
:* In column 2, however, there is a miscorrection of the last bit according to the lower syndrome table. With the transpose of the $\rm (6, \ 3, \ 3)$ parity-check matrix $\mathbf{H}_2$ results namely:
 
:$$\underline{s}= \underline{y}_{2{\rm S}}\cdot { \boldsymbol{\rm H}}_2^{\rm T}
 
:$$\underline{s}= \underline{y}_{2{\rm S}}\cdot { \boldsymbol{\rm H}}_2^{\rm T}
 
= \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot
 
= \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot
Line 138: Line 138:
 
+ \left ( 1, \hspace{0.03cm} 0, \hspace{0.03cm}0 \right )=
 
+ \left ( 1, \hspace{0.03cm} 0, \hspace{0.03cm}0 \right )=
 
\left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}1 \right ) = \underline{s}_1.$$
 
\left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}1 \right ) = \underline{s}_1.$$
* Die zweite Horizontaldecodierung ist problemlos, da nun in jeder Zeile maximal ein Fehler auftritt &nbsp;&#8658;&nbsp; <u>Lösungsvorschlag 3</u>.
+
* The second horizontal decoding is problem-free, since now at most one error occurs in each row &nbsp;&#8658;&nbsp; <u>Solution suggestion 3</u>.
  
  
  
'''(2)'''&nbsp; Die folgende Grafik zeigt den Decodiervorgang entsprechend den Vorgaben gemäß $\mathbf{B}$.
+
'''(2)'''&nbsp; The following graphic shows the decoding process according to the specifications given by $\mathbf{B}$.
  
[[File:P_ID3009__KC_A_4_7b_v2.png|center|frame|Zur Syndromdecodierung der 2D–Empfangsmatrix $\mathbf{B}$]]
+
[[File:P_ID3009__KC_A_4_7b_v2.png|center|frame|For syndrome decoding of the two-dimensional receive matrix $\mathbf{B}$.]]
  
Trotz nur geringfügigen Modifikationen gegenüber $\mathbf{A}$ gibt es nun gravierende Unterschiede:
+
Despite only minor modifications compared to $\mathbf{A}$, there are now serious differences:
* Durch die erste Horizontaldecodierung lauten nun die "korrigierten" Zeilen 2 und 4 gleichermaßen: $(0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1)$, das heißt, das letzte Bit dieser Zeilen wird jeweils fehlkorrigiert.
+
* Due to the first horizontal decoding, the "corrected" rows 2 and 4 now read equally: $(0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1)$, i.e., the last bit of these rows is miscorrected in each case.
* Die Vertikaldecodierung führt zu gleichlautenden Spalten 2, 4 und 6, nämlich $(0, \, 1, \, 0, \, 1, \, 0, \, 1)$. Danach gibt es in jeder Zeile und in jeder Spalte drei Einsen (oder keine einzige).
+
* Vertical decoding results in identical columns 2, 4, and 6, namely $(0, \, 1, \, 0, \, 1, \, 0, \, 1)$. After that, there are three ones (or none) in each row and in each column.
* Diese Konstellation bleibt für beliebig weitere (horizontale oder vertikale) Decodierungen erhalten, weil sich für $d_{\rm min} = 3$ stets das Syndrom $\underline{s}_0 = (0, \, 0, \, 0)$ ergibt.
+
* This constellation remains for arbitrary further (horizontal or vertical) decodings, because for $d_{\rm min} = 3$ always the syndrome $\underline{s}_0 = (0, \, 0, \, 0)$ results.
  
  
Richtig ist also der <u>Lösungsvorschlag 5</u>.
+
The correct solution is <u>proposal 5</u>.
  
  
  
'''(3)'''&nbsp; Vergleicht man die Coder&ndash; und Empfangsmatrizen (Unterschiede sind blau markiert), so kann man entsprechend der folgenden Grafik durch Modulo&ndash;2&ndash;Additionen die Fehlermatrix erstellen.
+
'''(3)'''&nbsp; Comparing the coder&ndash; and receiver matrices (differences are marked in blue), one can create the error matrix by modulo 2 additions according to the following graph.
  
[[File:P_ID3010__KC_A_4_7c_v2.png|center|frame|Matrizendarstellung von Coder, Empfänger und Fehlermuster]]
+
[[File:P_ID3010__KC_A_4_7c_v2.png|center|frame|Matrix representation of coder, receiver and error pattern]]
  
Die Fehlermatrix ist gleich der Empfangsmatrix von $\mathbf{A}$ &nbsp;&#8658;&nbsp; auch hier ist der <u>Lösungsvorschlag 3</u> richtig.
+
The error matrix is equal to the receive matrix of $\mathbf{A}$ &nbsp;&#8658;&nbsp; again, <u>proposed solution 3</u> is correct.
 
{{ML-Fuß}}
 
{{ML-Fuß}}
 
  
  
 
[[Category:Channel Coding: Exercises|^4.2 About the Product Codes^]]
 
[[Category:Channel Coding: Exercises|^4.2 About the Product Codes^]]

Revision as of 18:58, 31 October 2022

Syndrome tables of the considered component codes  $\mathcal{C}_1$  and  $\mathcal{C}_2$

We consider, as in the  "Exercise 4.6"  a product code based on.

  • the Hamming code  $\rm HC \ (7, \ 4, \ 3)$   ⇒   $\mathcal{C}_1$,
  • the truncated Hamming code  $\rm HC \ (6, \ 3, \ 3)$   ⇒   $\mathcal{C}_2$.


The parity-check matrices of these component codes are:

$${ \boldsymbol{\rm H}}_1 = \begin{pmatrix} 1 &1 &0 &1 &1 &0 &0 \\ 0 &1 &1 &1 &0 &1 &0 \\ 1 &0 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm},\hspace{0.8cm} { \boldsymbol{\rm H}}_2 = \begin{pmatrix} 1 &1 &0 &1 &0 &0 \\ 1 &0 &1 &0 &1 &0 \\ 0 &1 &1 &0 &0 &1 \end{pmatrix} \hspace{0.05cm}.$$

For the sake of completeness, the generator matrices are also given, but they are not needed to solve the exercise:

$${ \boldsymbol{\rm G}}_1 = \begin{pmatrix} 1 &0 &0 &0 &1 &0 &1 \\ 0 &1 &0 &0 &1 &1 &0 \\ 0 &0 &1 &0 &0 &1 &1 \\ 0 &0 &0 &1 &1 &1 &1 \end{pmatrix} \hspace{0.05cm},\hspace{0.8cm} { \boldsymbol{\rm G}}_2 = \begin{pmatrix} 1 &0 &0 &1 &1 &0 \\ 0 &1 &0 &1 &0 &1 \\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$

The  Hard Decision Decoding  of this code is preferably done iteratively, by alternately syndromdecoding all rows and then all columns. See:  "Iterative Syndrome Decoding of Product Codes".

Syndrome decoding of (one-dimensional) block codes has already been covered in the chapter  "Decoding of Linear Block Codes" . Here is a brief summary and an adaptation to the two-dimensional case:

  • From the received word  $\underline{y}$  (a row or a column of the given received matrix), the syndrome corresponding to  $\underline{s} = \underline{y} \cdot \mathbf{H}_1^{\rm T}$  respectively  $\underline{s} = \underline{y} \cdot \mathbf{H}_2^{\rm T}$  formed.
  • With the result  $\underline{s} = \underline{s}_{\mu}$  one can read in above tables the so called side class adder  $\underline{e}_{\mu}$ .
  • The corrected codeword is then  $\underline{y} + \underline{e}_{\mu}$.
Predefined coder and receiver matrices




The accompanying diagram shows three different coder– and receiver matrices to be analyzed in the subtasks (1), (2), and (3):

  • We name them constellation  $\mathbf{A}$,  $\mathbf{B}$  and  $\mathbf{C}$.
  • Marked in yellow are the differences in the reception matrix of constellation  $\mathbf{B}$  versus  $\mathbf{A}$.
  • In both cases, the code matrix consists only of zeros.
  • The code matrix of  $\rm C$  was determined in the  Aufgabe 4.6 .




Hints:



Questions

1

Is the two-dimensional received matrix  $\mathbf{A}$  decodable?

Yes, after the first decoding in horizontal direction.
Yes, after the first decoding in vertical direction.
Yes, after the second decoding in horizontal direction.
Yes, after the second decoding in vertical direction.
No.

2

Is the two-dimensional received matrix  $\mathbf{B}$  decodable?

Yes, after the first decoding in horizontal direction.
Yes, after the first decoding in vertical direction.
Yes, after the second decoding in horizontal direction.
Yes, after the second decoding in vertical direction.
No.

3

Is the two-dimensional received matrix  $\mathbf{C}$  decodable? Try to find the solution via an equivalence to the exercise (1) or (2).

Yes, after the first decoding in horizontal direction.
Yes, after the first decoding in vertical direction.
Yes, after the second decoding in horizontal direction.
Yes, after the second decoding in vertical direction.
No.


Solution

(1)  The decoding process of the receive matrix $\mathbf{A}$ is illustrated by the following diagram.

Syndrome decoding of the two-dimensional received matrix $\mathbf{A}$.
  • The single errors in rows 1, 3, 5 and 6 are detected by $(7, \ 4, \ 3)$–Hamming code and can be corrected
     ⇒  green markings in the graphic "1st iteration horizontal".
  • For the second row results the syndrome
$$\underline{s} = \underline{y}_2 \hspace{-0.03cm}\cdot \hspace{-0.03cm}{ \boldsymbol{\rm H}}_1^{\rm T} = \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot \hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 \\ 1 &1 &0 \\ 0 &1 &1 \\ 1 &1 &1 \\ 1 &0 &0 \\ 0 &1 &0 \\ 0 &0 &1 \end{pmatrix} \hspace{-0.05cm}= \left ( 1, \hspace{0.03cm} 1, \hspace{0.03cm}0 \right ) + \left ( 1, \hspace{0.03cm} 1, \hspace{0.03cm}1 \right )= \left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}1 \right ) = \underline{s}_1 \hspace{0.03cm}.$$
  • According to the upper syndrome table on the information page, the last bit is thus incorrectly "corrected". Incorrect corrections are entered in red in the upper graphic.
  • Correspondingly applies to the fourth row:
$$\underline{s} = \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0 \right ) \cdot { \boldsymbol{\rm H}}_1^{\rm T} = \left ( 1, \hspace{0.03cm} 1, \hspace{0.03cm}0 \right ) + \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0 \right )= \left ( 1, \hspace{0.03cm} 0, \hspace{0.03cm}0 \right )= \underline{s}_4 \hspace{0.05cm}.$$
  • This causes a miscorrection of bit 5.
  • Vertical decoding of columns 1, 3, 4, 5, 6, and 7 is straightforward because there is at most one error per column, which can be corrected by the truncated Hamming code $\rm (6, \ 3, \ 3)$.
  • In column 2, however, there is a miscorrection of the last bit according to the lower syndrome table. With the transpose of the $\rm (6, \ 3, \ 3)$ parity-check matrix $\mathbf{H}_2$ results namely:
$$\underline{s}= \underline{y}_{2{\rm S}}\cdot { \boldsymbol{\rm H}}_2^{\rm T} = \left ( 0, \hspace{0.03cm} 1, \hspace{0.03cm}0, \hspace{0.03cm}1, \hspace{0.03cm}0, \hspace{0.03cm}0 \right ) \cdot \begin{pmatrix} 1 &1 &0 \\ 1 &0 &1 \\ 0 &1 &1 \\ 1 &0 &0 \\ 0 &1 &0 \\ 0 &0 &1 \end{pmatrix}= \left ( 1, \hspace{0.03cm} 0, \hspace{0.03cm}1 \right ) + \left ( 1, \hspace{0.03cm} 0, \hspace{0.03cm}0 \right )= \left ( 0, \hspace{0.03cm} 0, \hspace{0.03cm}1 \right ) = \underline{s}_1.$$
  • The second horizontal decoding is problem-free, since now at most one error occurs in each row  ⇒  Solution suggestion 3.


(2)  The following graphic shows the decoding process according to the specifications given by $\mathbf{B}$.

For syndrome decoding of the two-dimensional receive matrix $\mathbf{B}$.

Despite only minor modifications compared to $\mathbf{A}$, there are now serious differences:

  • Due to the first horizontal decoding, the "corrected" rows 2 and 4 now read equally: $(0, \, 1, \, 0, \, 1, \, 0, \, 0, \, 1)$, i.e., the last bit of these rows is miscorrected in each case.
  • Vertical decoding results in identical columns 2, 4, and 6, namely $(0, \, 1, \, 0, \, 1, \, 0, \, 1)$. After that, there are three ones (or none) in each row and in each column.
  • This constellation remains for arbitrary further (horizontal or vertical) decodings, because for $d_{\rm min} = 3$ always the syndrome $\underline{s}_0 = (0, \, 0, \, 0)$ results.


The correct solution is proposal 5.


(3)  Comparing the coder– and receiver matrices (differences are marked in blue), one can create the error matrix by modulo 2 additions according to the following graph.

Matrix representation of coder, receiver and error pattern

The error matrix is equal to the receive matrix of $\mathbf{A}$  ⇒  again, proposed solution 3 is correct.