Difference between revisions of "Aufgaben:Exercise 4.12: Regular and Irregular Tanner Graph"
m (Guenter verschob die Seite Aufgabe 4.12: Regulärer/irregulärer Tanner–Graph nach Aufgabe 4.12: Regulärer und irregulärer Tanner–Graph) |
|||
(12 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | {{quiz-Header|Buchseite= | + | {{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes}} |
− | [[File:P_ID3072__KC_A_4_12_v1.png|right|frame| | + | [[File:P_ID3072__KC_A_4_12_v1.png|right|frame|Tanner graph for code $\rm A$]] |
− | + | Shown is a Tanner graph of a code $\rm A$ with | |
− | * | + | * the variable nodes $V_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ V_6$, . where Vi denotes the i<sup>th</sup> code word bit (whether information bit or parity bit$)$ and corresponds to the i<sup>th</sup> column of the parity-check matrix; |
− | |||
+ | * the check nodes</i> C1,..., C3, which represent the rows of the HA matrix and hence the parity-check equations. | ||
− | |||
− | In | + | An edge between Vi and Cj indicates that the i<sup>th</sup> code word symbol is involved in the j<sup>th</sup> parity-check equation. In this case, the element hj,i of the parity-check matrix is equal 1. |
− | * | + | |
− | * | + | In this exercise, the relation between the above Tanner graph $(valid for the code \rm A)$ and the matrix HA shall be given. |
− | * | + | |
− | :$$R \ge 1 - \frac{w_{\rm | + | In addition, the Tanner graph to a parity-check matrix HB shall be set up, resulting from HA adding another row. This is to be determined so that the associated code $\rm B$ is regular. This means: |
+ | * From all variable nodes $V_i$ $($with $1 ≤ i ≤ n)$ go off an equal number of edges, <br>likewise from all check nodes $C_j$ $($with $1 ≤ j ≤ m)$. | ||
+ | |||
+ | * The Hamming weights of all rows of HB are each said to be equal $(w_{\rm R})$, as are the Hamming weights of all columns $(w_{\rm C})$. | ||
+ | |||
+ | * For the rate of the regular code $\rm B$ to be constructed, the following lower bound then applies: | ||
+ | :$$R \ge 1 - \frac{w_{\rm C}}{w_{\rm R}} | ||
\hspace{0.05cm}.$$ | \hspace{0.05cm}.$$ | ||
− | |||
− | |||
− | |||
− | === | + | <u>Hints:</u> |
+ | *This exercise belongs to the chapter [[Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes|"Basics of Low–density Parity–check Codes"]]. | ||
+ | |||
+ | *Reference is made in particular to the section [[Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes#Two-part_LDPC_graph_representation_-_Tanner_graph|"Two-part LDPC graph representation – Tanner graph"]]. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===Questions=== | ||
<quiz display=simple> | <quiz display=simple> | ||
− | { | + | {How many rows (m) and columns (n) does the parity-check matrix HA have? |
|type="{}"} | |type="{}"} | ||
− | m = { 3 | + | $m \hspace{0.18cm} = \ ${ 3 } |
− | n = { 6 | + | $n \hspace{0.3cm} = \ ${ 6 } |
− | { | + | {Which statements are true based on the Tanner graph? |
|type="[]"} | |type="[]"} | ||
− | + | + | + The row 1 of the HA matrix is "1 1 0 1 0 0". |
− | - | + | - The row 2 of the HA matrix is "1 0 1 0 0 1". |
− | + | + | + The row 3 of the HA matrix is "0 1 1 0 0 1". |
− | { | + | {What are the properties of code $\rm A$ ? |
|type="[]"} | |type="[]"} | ||
− | + | + | + The code is systematic. |
− | - | + | - The code is regular. |
− | + | + | + The code rate is R=1/2. |
− | - | + | - The code rate is R=1/3. |
− | { | + | {The matrix HB is obtained from HA by adding one more row. By which fourth row does a regular code $\rm B$ result? |
|type="[]"} | |type="[]"} | ||
− | + | + | +By adding "0 0 0 1 1 1". |
− | - | + | - By adding "1 1 1 1 1 1". |
− | - | + | - By adding any other row. |
− | { | + | {What are the properties of code $\rm B$? |
|type="[]"} | |type="[]"} | ||
− | - | + | - The code is systematic. |
− | + | + | + The code is regular. |
− | + | + | + The code rate is R=1/2. |
− | - | + | - The code rate is R=1/3. |
</quiz> | </quiz> | ||
− | === | + | ===Solutiojn=== |
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' | + | '''(1)''' The number of HA rows is equal to the number of check nodes Cj in the Tanner graph ⇒ m=3_, <br>and the number n=6_ of variable nodes Vi is equal to the column number. |
− | + | [[File:P_ID3073__KC_A_4_12c_v1.png|right|frame|Underlying parity-check equations]] | |
− | + | '''(2)''' Correct are the <u>answers 1 and 3</u> in contrast to statement 2: | |
+ | *The second HA row is rather "1 0 1 0 1 0". | ||
+ | *Thus, this exercise is based on the following parity-check equation: | ||
:$${ \boldsymbol{\rm H}}_{\rm A} = | :$${ \boldsymbol{\rm H}}_{\rm A} = | ||
\begin{pmatrix} | \begin{pmatrix} | ||
Line 72: | Line 85: | ||
\end{pmatrix}\hspace{0.05cm}.$$ | \end{pmatrix}\hspace{0.05cm}.$$ | ||
− | + | *In the diagram, the parity-check equations are illustrated as red (row 1), green (row 2) resp. blue (row 3) groupings. | |
+ | |||
− | '''(3)''' | + | '''(3)''' Correct are the <u>solutions 1 and 3</u>: |
− | * | + | * The H matrix ends with a 3 × 3 diagonal matrix ⇒ systematic code. |
− | |||
− | |||
+ | * Thus, the Hamming weights of the last three columns are wC(4)=wC(5)=wC(6)=1. | ||
+ | |||
+ | * For the first three columns, wC(1)=wC(2)=wC(3)=2 ⇒ irregular code. | ||
− | + | * The three matrix rows are linearly independent. | |
+ | |||
+ | *Thus k=n−m=6−3=3 and R=k/n=1/2 holds. | ||
+ | |||
+ | |||
+ | |||
+ | [[File: P_ID3074__KC_A_4_12d_v1.png|right|frame|Modified Tanner graph for code $\rm B$]] | ||
+ | '''(4)''' Correct is the <u>proposed solution 1</u>: | ||
+ | *Looking at the previous Tanner graph, one can see the correctness of the proposed solution 1. | ||
+ | |||
+ | *By adding the row "0 0 0 1 1 1" to the HA matrix, one obtains: | ||
:$${ \boldsymbol{\rm H}}_{\rm B} = | :$${ \boldsymbol{\rm H}}_{\rm B} = | ||
\begin{pmatrix} | \begin{pmatrix} | ||
Line 90: | Line 115: | ||
\end{pmatrix}\hspace{0.05cm}.$$ | \end{pmatrix}\hspace{0.05cm}.$$ | ||
− | + | :The modifications are marked in red in the adjacent graphic. | |
− | |||
− | |||
+ | *Due to the newly added check node C4 and the connections with V4, V5 and V6, there are now | ||
+ | :* from all variable nodes Vi two lines, and | ||
− | '''(5)''' | + | :* from all check nodes Cj uniformly four. |
− | :$$R \ge 1 - \frac{w_{\rm | + | *This is the condition for the code B to be regular. |
+ | |||
+ | |||
+ | |||
+ | '''(5)''' Correct are the <u>solutions 2 and 3</u>: | ||
+ | *The construction in subtask '''(4)''' yields a regular code. | ||
+ | |||
+ | *The Hamming weights of the rows and columns, respectively, are $w_{\rm R} = 3$ and $w_{\rm C} = 2$. | ||
+ | *This gives as lower bound for the code rate: | ||
+ | :$$R \ge 1 - \frac{w_{\rm C}}{w_{\rm R}} | ||
= 1 - {2}/{3} = 1/3 | = 1 - {2}/{3} = 1/3 | ||
\hspace{0.05cm}.$$ | \hspace{0.05cm}.$$ | ||
− | + | *The H manipulation does not change the generator matrix G. | |
− | + | ||
+ | *The same code is still sent with code rate R=1/2. | ||
{{ML-Fuß}} | {{ML-Fuß}} | ||
− | [[Category: | + | [[Category:Channel Coding: Exercises|^4.4 Low–density Parity–check Codes^]] |
Latest revision as of 17:39, 17 December 2022
Shown is a Tanner graph of a code A with
- the variable nodes V1,..., V6, . where Vi denotes the ith code word bit (whether information bit or parity bit) and corresponds to the ith column of the parity-check matrix;
- the check nodes C1,..., C3, which represent the rows of the HA matrix and hence the parity-check equations.
An edge between Vi and Cj indicates that the ith code word symbol is involved in the jth parity-check equation. In this case, the element hj,i of the parity-check matrix is equal 1.
In this exercise, the relation between the above Tanner graph (valid for the code A) and the matrix HA shall be given.
In addition, the Tanner graph to a parity-check matrix HB shall be set up, resulting from HA adding another row. This is to be determined so that the associated code B is regular. This means:
- From all variable nodes Vi (with 1≤i≤n) go off an equal number of edges,
likewise from all check nodes Cj (with 1≤j≤m).
- The Hamming weights of all rows of HB are each said to be equal (wR), as are the Hamming weights of all columns (wC).
- For the rate of the regular code B to be constructed, the following lower bound then applies:
- R≥1−wCwR.
Hints:
- This exercise belongs to the chapter "Basics of Low–density Parity–check Codes".
- Reference is made in particular to the section "Two-part LDPC graph representation – Tanner graph".
Questions
Solutiojn
and the number n=6_ of variable nodes Vi is equal to the column number.
(2) Correct are the answers 1 and 3 in contrast to statement 2:
- The second HA row is rather "1 0 1 0 1 0".
- Thus, this exercise is based on the following parity-check equation:
- { \boldsymbol{\rm H}}_{\rm A} = \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}.
- In the diagram, the parity-check equations are illustrated as red (row 1), green (row 2) resp. blue (row 3) groupings.
(3) Correct are the solutions 1 and 3:
- The \mathbf{H} matrix ends with a 3 × 3 diagonal matrix ⇒ systematic code.
- Thus, the Hamming weights of the last three columns are w_{\rm C}(4) = w_{\rm C}(5) = w_{\rm C}(6) = 1.
- For the first three columns, w_{\rm C}(1) = w_{\rm C}(2) = w_{\rm C}(3) = 2 ⇒ irregular code.
- The three matrix rows are linearly independent.
- Thus k = n - m = 6 - 3 = 3 and R = k/n = 1/2 holds.
(4) Correct is the proposed solution 1:
- Looking at the previous Tanner graph, one can see the correctness of the proposed solution 1.
- By adding the row "0 \ 0 \ 0 \ 1 \ 1 \ 1" to the \mathbf{H}_{\rm A} matrix, one obtains:
- { \boldsymbol{\rm H}}_{\rm B} = \begin{pmatrix} 1 &1 &0 &1 &0 &0\\ 1 &0 &1 &0 &1 &0\\ 0 &1 &1 &0 &0 &1\\ 0 &0 &0 &1 &1 &1 \end{pmatrix}\hspace{0.05cm}.
- The modifications are marked in red in the adjacent graphic.
- Due to the newly added check node C_4 and the connections with V_4, \ V_5 and V_6, there are now
- from all variable nodes V_i two lines, and
- from all check nodes C_j uniformly four.
- This is the condition for the code \rm B to be regular.
(5) Correct are the solutions 2 and 3:
- The construction in subtask (4) yields a regular code.
- The Hamming weights of the rows and columns, respectively, are w_{\rm R} = 3 and w_{\rm C} = 2.
- This gives as lower bound for the code rate:
- R \ge 1 - \frac{w_{\rm C}}{w_{\rm R}} = 1 - {2}/{3} = 1/3 \hspace{0.05cm}.
- The \mathbf{H} manipulation does not change the generator matrix \mathbf{G}.
- The same code is still sent with code rate R = 1/2.