Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Difference between revisions of "Aufgaben:Exercise 4.6: Product Code Generation"

From LNTwww
 
(32 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Grundlegendes zu den Produktcodes}}
+
{{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Product_Codes}}
  
[[File:P_ID3003__KC_A_4_6_v2.png|right|frame|Verwendete Komponentencodes]]
+
[[File:EN_KC_A_4_6.png|right|frame|Used component codes]]
Es soll ein Produktcode (42, 12) generiert werden, der auf folgenden Komponentencodes aufbaut:
+
A  $\rm product\:code \ (42, \ 12)$  shall be generated,  based on the following component codes:
* dem Hammingcode (7, 4, 3) $\Rightarrow C_1$,
+
* the Hamming code  $\rm HC \ (7, \ 4, \ 3)$  ⇒   $\mathcal{C}_1$,
* dem verkürzten Hamming–Code (6, 3, 3) $\Rightarrow C_2$.
 
  
 +
* the truncated Hamming code HC (6, 3, 3)   ⇒   C2.
  
Die entsprechenden Codetabellen sind rechts angegeben, wobei jeweils drei Zeilen unvollständig sind. Diese sollen von Ihnen ergänzt werden.
 
  
Das zu einem Informationsblock u_ gehörige Codewort ergibt sich allgemein entsprechend der Gleichung x_=u_G. Wie auch in der [[Aufgabe Z4.6]] wird hier von folgenden Generatormatrizen ausgegangen:
+
Corresponding code tables are given on the right,  with three rows incomplete in each case.  These are to be completed by you.
 +
 
 +
The code word belonging to an information block  u_  generally results according to the equation 
 +
:$$\underline{x} = \underline{u} \cdot \mathbf{G}.$$
 +
As in  [[Aufgaben:Aufgabe_4.6Z:_Grundlagen_der_Produktcodes|Exercise 4.6Z]],  the following generator matrices are assumed here:
 
:$${ \boldsymbol{\rm G}}_1  
 
:$${ \boldsymbol{\rm G}}_1  
 
=  \begin{pmatrix}
 
=  \begin{pmatrix}
Line 16: Line 19:
 
0 &0 &1 &0 &0 &1 &1 \\
 
0 &0 &1 &0 &0 &1 &1 \\
 
0 &0 &0 &1 &1 &1 &1  
 
0 &0 &0 &1 &1 &1 &1  
\end{pmatrix} \hspace{0.05cm},$$
+
\end{pmatrix} \hspace{0.05cm},\hspace{0.8cm}
:$${ \boldsymbol{\rm G}}_2  
+
{ \boldsymbol{\rm G}}_2  
 
=  \begin{pmatrix}
 
=  \begin{pmatrix}
 
1 &0 &0 &1 &1 &0  \\
 
1 &0 &0 &1 &1 &0  \\
Line 24: Line 27:
 
\end{pmatrix} \hspace{0.05cm}.$$
 
\end{pmatrix} \hspace{0.05cm}.$$
  
In der gesamten Aufgabe gelte für den Informationsblock:
+
Throughout the exercise,  apply to the information block:
 
:$${ \boldsymbol{\rm U}}  
 
:$${ \boldsymbol{\rm U}}  
 
=  \begin{pmatrix}
 
=  \begin{pmatrix}
Line 32: Line 35:
 
\end{pmatrix} \hspace{0.05cm}.$$
 
\end{pmatrix} \hspace{0.05cm}.$$
  
Gesucht sind entsprechend der Nomenklatur auf der [[ersten Theorieseite]]:
+
Searched for according to the nomenclature in section  [[Channel_Coding/The_Basics_of_Product_Codes#Basic_structure_of_a_product_code|"Basic structure of a product code"]]:
* die Parity–Matrix P(1) bezüglich des horizontalen Codes $C_1$,
+
* the parity-check matrix   P(1)   with respect to the horizontal code  $\mathcal{C}_1$,
* die Parity–Matrix P(2) bezüglich des vertikalen Codes $C_2$,
+
 
* die Checks–on–Checks–Matrix P(12).  
+
* the parity-check matrix  P(2)  with respect to the vertical code  $\mathcal{C}_2$,
 +
 
 +
* the checks–on–checks matrix  P(12).
 +
 
 +
 
 +
 
 +
 
 +
 
 +
<u>Hints:</u>
 +
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/The_Basics_of_Product_Codes|"Basics of Product Code"]].
 +
 
 +
*Reference is also  made to the section&nbsp; [[Channel_Coding/The_Basics_of_Product_Codes#Basic_structure_of_a_product_code|"Basic structure of a product code"]].
  
 +
*The two component codes are also covered in the&nbsp; [[Aufgaben:Aufgabe_4.6Z:_Grundlagen_der_Produktcodes|Exercise 4.6Z]]&nbsp;.
  
''Hinweis:
 
* Die Aufgabe gehört zum Kapitel [[Kanalcodierung/Grundlegendes_zu_den_Produktcodes| Grundlegendes zu den Produktcode]].
 
  
  
  
===Fragebogen===
+
 
 +
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Multiple-Choice
+
{What are the results of row coding with the&nbsp; (7, 4, 3) code&nbsp; C1?
 +
|type="[]"}
 +
+ 1. row: &nbsp; u_=(0,1,1,0)  x_=(0,1,1,0,1,0,1).
 +
- 2. row: &nbsp; u_=(0,0,0,0)  x_=(1,1,1,1,1,1,1).
 +
+ 3. row: &nbsp; u_=(1,1,1,0)  x_=(1,1,1,0,0,0,0).
 +
 
 +
{What are the results of column coding with the&nbsp; (6, 3, 3) code&nbsp; C2?
 
|type="[]"}
 
|type="[]"}
+ correct
+
+ 1. column: &nbsp; u_=(0,0,1)  x_=(0,0,1,0,1,1).
- false
+
+ 2. column: &nbsp; u_=(1,0,1)  x_=(1,0,1,1,0,1).
 +
- 3. column: &nbsp; u_=(1,0,1)  x_=(1,1,0,0,1,1).
 +
+ 4. column: &nbsp; u_=(0,0,0)  x_=(0,0,0,0,0,0).
  
{Input-Box Frage
+
{What statements apply to the checks&ndash;on&ndash;checks matrix?
|type="{}"}
+
|type="[]"}
$xyz \ = \ ${ 5.4 3% } $ab$
+
+ The first row is&nbsp; (1,0,1)&nbsp; and the first column is&nbsp; (1,1,0).
 +
+ The second row is&nbsp; $(1, \, 0, \, 1)&nbsp; and the second column is&nbsp;(0, \, 0, \, 0)$.
 +
- The third row is&nbsp; (0,0,0)&nbsp; and the third column is&nbsp; $(0, \, 0, \, 0)$.
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp;  
+
'''(1)'''&nbsp; Correct are the&nbsp; <u>proposed solutions 1 and 3</u>:&nbsp; In general:&nbsp;
'''(2)'''&nbsp;  
+
:x_=u_G.
'''(3)'''&nbsp;  
+
From this follows for
'''(4)'''&nbsp;  
+
:* the first row vector:
'''(5)'''&nbsp;  
+
:$$\begin{pmatrix}
 +
0 &1 &1 &0 
 +
\end{pmatrix}  \cdot
 +
  \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}
 +
=\begin{pmatrix}
 +
0 &1 &1 &0 &1 &0 &1
 +
\end{pmatrix} \hspace{0.05cm},$$
 +
 
 +
:* the second row vector:
 +
:$$\begin{pmatrix}
 +
0 &0 &0 &0 
 +
\end{pmatrix}  \cdot
 +
  \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}
 +
=\begin{pmatrix}
 +
0 &0 &0 &0 &0 &0 &0
 +
\end{pmatrix} \hspace{0.05cm},$$
 +
 
 +
:* the third row vector:
 +
:$$\begin{pmatrix}
 +
1 &1 &1 &0 
 +
\end{pmatrix}  \cdot
 +
  \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}
 +
=\begin{pmatrix}
 +
1 &1 &1 &0 &0 &0 &0
 +
\end{pmatrix} \hspace{0.05cm}.$$
 +
 
 +
 
 +
'''(2)'''&nbsp; Correct are the&nbsp; <u>proposed solutions 1, 2 and 4</u>:
 +
:$$\begin{pmatrix}
 +
0 &0 &1 
 +
\end{pmatrix}  \cdot
 +
  \begin{pmatrix}
 +
1 &0 &0 &1 &1 &0  \\
 +
0 &1 &0 &1 &0 &1  \\
 +
0 &0 &1 &0 &1 &1
 +
\end{pmatrix}
 +
=\begin{pmatrix}
 +
0 &0 &1 &0 &1 &1
 +
\end{pmatrix} \hspace{0.05cm},$$
 +
:$$\begin{pmatrix}
 +
1 &0 &1 
 +
\end{pmatrix}  \cdot
 +
  \begin{pmatrix}
 +
1 &0 &0 &1 &1 &0  \\
 +
0 &1 &0 &1 &0 &1  \\
 +
0 &0 &1 &0 &1 &1
 +
\end{pmatrix}
 +
=\begin{pmatrix}
 +
1 &0 &1 &1 &0 &1
 +
\end{pmatrix} \hspace{0.05cm}.$$
 +
 
 +
To this subtask is to be noted further:
 +
# The given first column is correct if only because it coincides with a row&nbsp; (the third)&nbsp; of the generator matrix G2.
 +
# The third column of the two-dimensional code word should be identical to the second column,&nbsp; since the same code word&nbsp; (1,0,1)&nbsp; is assumed.
 +
# However,&nbsp; the given vector&nbsp; (1,1,0,0,1,1)&nbsp; cannot be correct if only because&nbsp; C2&nbsp; is a systematic code just like&nbsp; C1.
 +
# Also the truncated&nbsp; (6, 3, 3)&nbsp; Hamming code C2&nbsp; is linear,&nbsp; so that the assignment&nbsp; u_=(0,0,0)   x_=(0,0,0,0)&nbsp; can be stated without calculation.
 +
 
 +
 
 +
[[File:EN_KC_A_4_6_c.png|right|frame|Complete code tables]]
 +
'''(3)'''&nbsp; Given on the right are the complete code tables
 +
 
 +
* of the Hamming code $(7, \ 4, \ 3)$,&nbsp; and
 +
 +
* of the truncated Hamming code (6, 3, 3).
 +
 
 +
 
 +
One can see from this&nbsp; (without it being of interest for this exercise)&nbsp; that the codes considered here each have Hamming distance&nbsp; dmin=3.
 +
 
 +
[[File:P_ID3012__KC_A_4_6d_v3.png|left|frame|Wanted product code]]
 +
<br><br>
 +
*The left graph shows the result of the whole coding.
 +
 
 +
*At the bottom right you can see the checks&ndash;on&ndash;checks matrix of dimension&nbsp; 3 &times 3.
 +
<br clear=all>
 +
Concerning the subtask&nbsp; '''(3)'''&nbsp; the&nbsp; <u>suggested solutions 1 and 2</u>&nbsp; are correct:
 +
*It is a coincidence that here in the checks&ndash;on&ndash;checks matrix two rows and two columns are identical.
 +
 
 +
*It doesn't matter whether rows 4 to 6 of the total matrix are obtained using the code&nbsp; C1&nbsp; or columns 5 to 7 are obtained using the code&nbsp; C2.
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  
  
  
[[Category:Aufgaben zu  Kanalcodierung|^4.2 Grundlegendes zu den Produktcodes^]]
+
[[Category:Channel Coding: Exercises|^4.2 About the Product Codes^]]

Latest revision as of 18:09, 6 December 2022

Used component codes

productcode (42, 12)  shall be generated,  based on the following component codes:

  • the Hamming code  HC (7, 4, 3)  ⇒   C1,
  • the truncated Hamming code HC (6, 3, 3)   ⇒   C2.


Corresponding code tables are given on the right,  with three rows incomplete in each case.  These are to be completed by you.

The code word belonging to an information block  u_  generally results according to the equation 

x_=u_G.

As in  Exercise 4.6Z,  the following generator matrices are assumed here:

{ \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}.

Throughout the exercise,  apply to the information block:

{ \boldsymbol{\rm U}} = \begin{pmatrix} 0 &1 &1 &0 \\ 0 &0 &0 &0 \\ 1 &1 &1 &0 \end{pmatrix} \hspace{0.05cm}.

Searched for according to the nomenclature in section  "Basic structure of a product code":

  • the parity-check matrix   \mathbf{P}^{(1)}   with respect to the horizontal code  \mathcal{C}_1,
  • the parity-check matrix  \mathbf{P}^{(2)}  with respect to the vertical code  \mathcal{C}_2,
  • the checks–on–checks matrix  \mathbf{P}^{(12)}.



Hints:



Questions

1

What are the results of row coding with the  (7, \ 4, \ 3) code  \mathcal{C}_1?

1. row:   \underline{u} = (0, \, 1, \, 1, \, 0) \ \Rightarrow \ \underline{x} = (0, \, 1, \, 1, \, 0, \, 1, \, 0, \, 1).
2. row:   \underline{u} = (0, \, 0, \, 0, \, 0) \ \Rightarrow \ \underline{x} = (1, \, 1, \, 1, \, 1, \, 1, \, 1, \, 1).
3. row:   \underline{u} = (1, \, 1, \, 1, \, 0) \ \Rightarrow \ \underline{x} = (1, \, 1, \, 1, \, 0, \, 0, \, 0, \, 0).

2

What are the results of column coding with the  (6, \ 3, \ 3) code  \mathcal{C}_2?

1. column:   \underline{u} = (0, \, 0, \, 1) \ \Rightarrow \ \underline{x} = (0, \, 0, \, 1, \, 0, \, 1, \, 1).
2. column:   \underline{u} = (1, \, 0, \, 1) \ \Rightarrow \ \underline{x} = (1, \, 0, \, 1, \, 1, \, 0, \, 1).
3. column:   \underline{u} = (1, \, 0, \, 1) \ \Rightarrow \ \underline{x} = (1, \, 1, \, 0, \, 0, \, 1, \, 1).
4. column:   \underline{u} = (0, \, 0, \, 0) \ \Rightarrow \ \underline{x} = (0, \, 0, \, 0, \, 0, \,0, \, 0).

3

What statements apply to the checks–on–checks matrix?

The first row is  (1, \, 0, \, 1)  and the first column is  (1, \, 1, \, 0).
The second row is  (1, \, 0, \, 1)  and the second column is  (0, \, 0, \, 0).
The third row is  (0, \, 0, \, 0)  and the third column is  (0, \, 0, \, 0).


Solution

(1)  Correct are the  proposed solutions 1 and 3:  In general: 

\underline{x} = \underline{u} \cdot \mathbf{G}.

From this follows for

  • the first row vector:
\begin{pmatrix} 0 &1 &1 &0 \end{pmatrix} \cdot \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} =\begin{pmatrix} 0 &1 &1 &0 &1 &0 &1 \end{pmatrix} \hspace{0.05cm},
  • the second row vector:
\begin{pmatrix} 0 &0 &0 &0 \end{pmatrix} \cdot \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} =\begin{pmatrix} 0 &0 &0 &0 &0 &0 &0 \end{pmatrix} \hspace{0.05cm},
  • the third row vector:
\begin{pmatrix} 1 &1 &1 &0 \end{pmatrix} \cdot \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} =\begin{pmatrix} 1 &1 &1 &0 &0 &0 &0 \end{pmatrix} \hspace{0.05cm}.


(2)  Correct are the  proposed solutions 1, 2 and 4:

\begin{pmatrix} 0 &0 &1 \end{pmatrix} \cdot \begin{pmatrix} 1 &0 &0 &1 &1 &0 \\ 0 &1 &0 &1 &0 &1 \\ 0 &0 &1 &0 &1 &1 \end{pmatrix} =\begin{pmatrix} 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm},
\begin{pmatrix} 1 &0 &1 \end{pmatrix} \cdot \begin{pmatrix} 1 &0 &0 &1 &1 &0 \\ 0 &1 &0 &1 &0 &1 \\ 0 &0 &1 &0 &1 &1 \end{pmatrix} =\begin{pmatrix} 1 &0 &1 &1 &0 &1 \end{pmatrix} \hspace{0.05cm}.

To this subtask is to be noted further:

  1. The given first column is correct if only because it coincides with a row  (the third)  of the generator matrix \mathbf{G}_2.
  2. The third column of the two-dimensional code word should be identical to the second column,  since the same code word  (1, \, 0, \, 1)  is assumed.
  3. However,  the given vector  (1, \, 1, \, 0, \, 0, \, 1, \, 1)  cannot be correct if only because  \mathcal{C}_2  is a systematic code just like  \mathcal{C}_1.
  4. Also the truncated  (6, \ 3, \ 3)  Hamming code C_2  is linear,  so that the assignment  \underline{u} = (0, \, 0, \, 0) \ \Rightarrow \ \ \underline{x} = (0, \, 0, \, 0, \, 0)  can be stated without calculation.


Complete code tables

(3)  Given on the right are the complete code tables

  • of the Hamming code (7, \ 4, \ 3),  and
  • of the truncated Hamming code (6, \ 3, \ 3).


One can see from this  (without it being of interest for this exercise)  that the codes considered here each have Hamming distance  d_{\rm min} = 3.

Wanted product code



  • The left graph shows the result of the whole coding.
  • At the bottom right you can see the checks–on–checks matrix of dimension  3 × 3.


Concerning the subtask  (3)  the  suggested solutions 1 and 2  are correct:

  • It is a coincidence that here in the checks–on–checks matrix two rows and two columns are identical.
  • It doesn't matter whether rows 4 to 6 of the total matrix are obtained using the code  \mathcal{C}_1  or columns 5 to 7 are obtained using the code  \mathcal{C}_2.