Difference between revisions of "Aufgaben:Exercise 4.6: Product Code Generation"
(Die Seite wurde neu angelegt: „{{quiz-Header|Buchseite=Kanalcodierung/Grundlegendes zu den Produktcodes }} [[File:|right|]] ===Fragebogen=== <quiz display=simple> {Multiple-Cho…“) |
|||
(36 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | {{quiz-Header|Buchseite= | + | {{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Product_Codes}} |
+ | [[File:EN_KC_A_4_6.png|right|frame|Used component codes]] | ||
+ | A 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 [[Aufgaben:Aufgabe_4.6Z:_Grundlagen_der_Produktcodes|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 [[Channel_Coding/The_Basics_of_Product_Codes#Basic_structure_of_a_product_code|"Basic structure of a product code"]]: | ||
+ | * the parity-check matrix P(1) with respect to the horizontal code C1, | ||
+ | * the parity-check matrix P(2) with respect to the vertical code C2, | ||
− | }} | + | * the checks–on–checks matrix $\mathbf{P}^{(12)}$. |
− | |||
− | |||
+ | |||
+ | <u>Hints:</u> | ||
+ | *This exercise belongs to the chapter [[Channel_Coding/The_Basics_of_Product_Codes|"Basics of Product Code"]]. | ||
+ | |||
+ | *Reference is also made to the section [[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 [[Aufgaben:Aufgabe_4.6Z:_Grundlagen_der_Produktcodes|Exercise 4.6Z]] . | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===Questions=== | ||
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {What are the results of row coding with the (7, 4, 3) code C1? |
+ | |type="[]"} | ||
+ | + 1. row: u_=(0,1,1,0) ⇒ x_=(0,1,1,0,1,0,1). | ||
+ | - 2. row: u_=(0,0,0,0) ⇒ x_=(1,1,1,1,1,1,1). | ||
+ | + 3. row: u_=(1,1,1,0) ⇒ x_=(1,1,1,0,0,0,0). | ||
+ | |||
+ | {What are the results of column coding with the (6, 3, 3) code C2? | ||
|type="[]"} | |type="[]"} | ||
− | - | + | + 1. column: u_=(0,0,1) ⇒ x_=(0,0,1,0,1,1). |
− | + | + | + 2. column: u_=(1,0,1) ⇒ x_=(1,0,1,1,0,1). |
+ | - 3. column: u_=(1,0,1) ⇒ x_=(1,1,0,0,1,1). | ||
+ | + 4. column: u_=(0,0,0) ⇒ x_=(0,0,0,0,0,0). | ||
+ | {What statements apply to the checks–on–checks matrix? | ||
+ | |type="[]"} | ||
+ | + 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). | ||
+ | </quiz> | ||
− | { | + | ===Solution=== |
− | + | {{ML-Kopf}} | |
− | $\ | + | '''(1)''' Correct are the <u>proposed solutions 1 and 3</u>: 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 <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 (the third) of the generator matrix G2. | ||
+ | # 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. | ||
+ | # However, the given vector (1,1,0,0,1,1) cannot be correct if only because C2 is a systematic code just like C1. | ||
+ | # Also the truncated (6, 3, 3) Hamming code C2 is linear, so that the assignment $\underline{u} = (0, \, 0, \, 0) \ \Rightarrow \ \ \underline{x} = (0, \, 0, \, 0, \, 0)$ can be stated without calculation. | ||
+ | [[File:EN_KC_A_4_6_c.png|right|frame|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 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–on–checks matrix of dimension 3 × 3. | ||
+ | <br clear=all> | ||
+ | Concerning the subtask '''(3)''' the <u>suggested solutions 1 and 2</u> 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 C1 or columns 5 to 7 are obtained using the code C2. | ||
+ | {{ML-Fuß}} | ||
− | ^]] | + | [[Category:Channel Coding: Exercises|^4.2 About the Product Codes^]] |
Latest revision as of 18:09, 6 December 2022
A 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:
- This exercise belongs to the chapter "Basics of Product Code".
- Reference is also made to the section "Basic structure of a product code".
- The two component codes are also covered in the \text{Exercise 4.6Z} .
Questions
Solution
- \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:
- The given first column is correct if only because it coincides with a row (the third) of the generator matrix \mathbf{G}_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.
- 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.
- 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.
(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.
- 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.