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

Difference between revisions of "Aufgaben:Exercise 4.12: Regular and Irregular Tanner Graph"

From LNTwww
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Grundlegendes zu den Low–density Parity–check Codes}}
+
{{quiz-Header|Buchseite=Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes}}
  
[[File:P_ID3072__KC_A_4_12_v1.png|right|frame|Vorgegebener Tanner–Graph für Code A]]
+
[[File:P_ID3072__KC_A_4_12_v1.png|right|frame|Tanner graph for code  $\rm A$]]
Dargestellt ist ein Tanner–Graph eines Codes A mit
+
Shown is a Tanner graph of a code  $\rm A$  with
* den <i>Variable Nodes</i> (abgekürzt VNs) V1, ... , V6, wobei Vi das i&ndash;te Codewortbit kennzeichnet (egal, ob Informations &ndash; oder Paritybit) und der $i$&ndash;ten Spalte der Prüfmatrix entspricht;
+
* the&nbsp; variable nodes&nbsp;  $V_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ V_6$,&nbsp;. where&nbsp; Vi&nbsp; denotes the&nbsp; i<sup>th</sup>&nbsp; code word bit&nbsp; (whether information bit or parity bit$)$&nbsp; and corresponds to the&nbsp; i<sup>th</sup>&nbsp; column of the parity-check matrix;
* den <i>Check Nodes</i> (abgekürzt CNs) C1, ... , C3, die die Zeilen der HA&ndash;Matrix und damit die Prüfgleichungen repräsentieren.
 
  
 +
* the&nbsp; check nodes</i>&nbsp; C1,..., C3,&nbsp; which represent the rows of the&nbsp; HA&nbsp; matrix and hence the parity-check equations.
  
Eine Verbindungslinie (englisch: <i>Edge</i>) zwischen Vi und Cj zeigt an, dass das i&ndash;te Codewortsymbol an der j&ndash;ten Prüfgleichung beteiligt ist. In diesem Fall ist das Element hj,i der Prüfmatrix gleich 1.
 
  
In der Aufgabe soll der Zusammenhang zwischen dem oben dargestellten Tanner&ndash;Graphen (gültig für den Code A) und der Matrix HA angegeben werden. Außerdem ist der Tanner&ndash;Graph zu einer Prüfmatrix HB aufzustellen, die sich aus HA durch Hinzufügen einer weiteren Zeile ergibt. Diese ist so zu ermitteln, dass der zugehörige Code B regulär ist. Das bedeutet:
+
An edge between&nbsp; Vi&nbsp; and&nbsp; Cj&nbsp; indicates that the&nbsp; i<sup>th</sup>&nbsp; code word symbol is involved in the&nbsp; j<sup>th</sup>&nbsp; parity-check equation.&nbsp; In this case,&nbsp; the element&nbsp; hj,i&nbsp; of the parity-check matrix is equal&nbsp; 1.
* Von allen <i>Variable Nodes</i> Vi (mit 1 &#8804; i &#8804; n) gehen gleich viele Linien (<i>Edges</i>) ab, ebenso von allen <i>Check Nodes</i> Cj (mit 1 &#8804; j &#8804; m).
+
 
* Die Hamming&ndash;Gewichte aller Zeilen von HB sollen jeweils gleich sein $(w_{\rm Z})$, ebenso die Hamming&ndash;Gewichte aller Spalten $(w_{\rm S})$.
+
In this exercise, the relation between the above Tanner graph &nbsp;$(valid for the code&nbsp;\rm A)$&nbsp; and the matrix&nbsp; HA&nbsp; shall be given.&nbsp;
* Für die Rate des zu konstruierenden regulären Codes B gilt dann die folgende untere Schranke:
+
 
:$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}}
+
In addition,&nbsp; the Tanner graph to a parity-check matrix&nbsp; HB&nbsp; shall be set up,&nbsp; resulting from&nbsp; HA&nbsp; adding another row.&nbsp; This is to be determined so that the associated code&nbsp; $\rm B$&nbsp; is regular.&nbsp; This means:
 +
* From all&nbsp; variable nodes&nbsp; $V_i$&nbsp; $($with&nbsp; $1 &#8804; i &#8804; n)$&nbsp; go off an equal number of edges,&nbsp; <br>likewise from all&nbsp; check nodes&nbsp; $C_j$&nbsp; $($with&nbsp; $1 &#8804; j &#8804; m)$.
 +
 
 +
* The Hamming weights of all rows of&nbsp; HB&nbsp; are each said to be equal&nbsp; $(w_{\rm R})$,&nbsp; as are the Hamming weights of all columns&nbsp; $(w_{\rm C})$.
 +
 
 +
* For the rate of the regular code&nbsp;$\rm B$&nbsp; to be constructed,&nbsp; the following lower bound then applies:
 +
:$$R \ge 1 - \frac{w_{\rm C}}{w_{\rm R}}
 
\hspace{0.05cm}.$$
 
\hspace{0.05cm}.$$
  
''Hinweis:''
 
* Die Aufgabe gehört zum Themengebiet des Kapitels [[Kanalcodierung/Grundlegendes_zu_den_Low%E2%80%93density_Parity%E2%80%93check_Codes|Grundlegendes zu den Low&ndash;density Parity&ndash;check Codes]].
 
* Sollte die Eingabe des Zahlenwertes &bdquo;0&rdquo; erforderlich sein, so geben Sie bitte &bdquo;0.&rdquo; ein.
 
  
  
  
===Fragebogen===
+
<u>Hints:</u>
 +
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes|"Basics of Low&ndash;density Parity&ndash;check Codes"]].
 +
 
 +
*Reference is made in particular to the section&nbsp; [[Channel_Coding/The_Basics_of_Low-Density_Parity_Check_Codes#Two-part_LDPC_graph_representation_-_Tanner_graph|"Two-part LDPC graph representation &ndash; Tanner graph"]].
 +
 +
 
 +
 
 +
 
 +
 
 +
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Wieviele Zeilen (m) und Spalten (n) hat die Prüfmatrix HA?
+
{How many rows&nbsp; (m)&nbsp; and columns&nbsp; (n)&nbsp; does the parity-check matrix&nbsp; HA have?
 
|type="{}"}
 
|type="{}"}
m = { 3 3% }
+
$m \hspace{0.18cm} = \ ${ 3 }
n = { 6 3% }
+
$n \hspace{0.3cm} = \ ${ 6 }
  
{Welche Aussagen sind aufgrund des Tanner&ndash;Graphen zutreffend?
+
{Which statements are true based on the Tanner graph?
 
|type="[]"}
 
|type="[]"}
+ Die erste Zeile der HA&ndash;Matrix ist &bdquo;1 1 0 1 0 0&rdquo;..
+
+ The row 1 of the&nbsp; HA&nbsp; matrix is&nbsp; "1 1 0 1 0 0".
- Die zweite Zeile der HA&ndash;Matrix ist &bdquo;1 0 1 0 0 1&rdquo;.
+
- The row 2 of the&nbsp; HA&nbsp; matrix is&nbsp; "1 0 1 0 0 1".
+ Die dritte Zeile der HA&ndash;Matrix ist &bdquo;0 1 1 0 0 1&rdquo;.
+
+ The row 3 of the&nbsp; HA&nbsp; matrix is&nbsp; "0 1 1 0 0 1".
  
{Welche Eigenschaften weist der Code A auf?
+
{What are the properties of code&nbsp; $\rm A$&nbsp;?
 
|type="[]"}
 
|type="[]"}
+ Der Code ist systematisch.
+
+ The code is systematic.
- Der Code ist regulär.
+
- The code is regular.
+ Die Coderate ist R=1/2.
+
+ The code rate is&nbsp; R=1/2.
- Die Coderate ist R=1/3.
+
- The code rate is&nbsp; R=1/3.
  
{Die Matrix HB ergibt sich aus HA durch Hinzufügen einer weiteren Zeile. Durch welche Zeile 4 ergibt sich ein regulärer Code B?
+
{The matrix&nbsp; HB&nbsp; is obtained from&nbsp; HA&nbsp; by adding one more row.&nbsp; By which fourth row does a regular code&nbsp; $\rm B$&nbsp; result?
 
|type="[]"}
 
|type="[]"}
+ Durch Hinzufügen von &bdquo;0 0 0 1 1 1&rdquo;.
+
+By adding "0 0 0 1 1 1".
- Durch Hinzufügen von &bdquo;1 1 1 1 1 1&rdquo;.
+
- By adding "1 1 1 1 1 1".
- Durch Hinzufügen irgend einer anderen Zeile.
+
- By adding any other row.
  
{Welche Eigenschaften weist der Code B auf?
+
{What are the properties of code&nbsp; $\rm B$?
 
|type="[]"}
 
|type="[]"}
- Der Code ist systematisch.
+
- The code is systematic.
+ Der Code ist regulär.
+
+ The code is regular.
+ Die Coderate ist R=1/2.
+
+ The code rate is&nbsp; R=1/2.
- Die Coderate ist R=1/3.
+
- The code rate is&nbsp; R=1/3.
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solutiojn===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Die Anzahl der HA&ndash;Zeilen ist gleich der Anzahl der <i>Check Nodes</i> Cj im Tanner&ndash;Graphen &nbsp;&#8658;&nbsp; m=3_, und die Anzahl n=6_ der <i>Variable Nodes</i> Vi ist gleich der Spaltenzahl.
+
'''(1)'''&nbsp; The number of&nbsp; HA&nbsp; rows is equal to the number of check nodes&nbsp; Cj&nbsp; in the Tanner graph &nbsp; &#8658; &nbsp; m=3_,&nbsp; <br>and the number&nbsp; n=6_&nbsp; of variable nodes&nbsp; Vi&nbsp; is equal to the column number.
  
  
'''(2)'''&nbsp; Richtig sind die <u>Antworten 1 und 3</u> im Gegensatz zur Aussage 2: Die zweite HA&ndash;Zeile lautet vielmehr &bdquo;1 0 1 0 1 0&rdquo;. Somit liegt dieser Aufgabe die folgende Prüfgleichung zugrunde:
+
[[File:P_ID3073__KC_A_4_12c_v1.png|right|frame|Underlying parity-check equations]]
  
[[File:P_ID3073__KC_A_4_12c_v1.png|right|frame|Zugrunde liegende Prüfgleichungen]]
+
'''(2)'''&nbsp; Correct are the&nbsp; <u>answers 1 and 3</u>&nbsp; in contrast to statement 2:  
 +
*The second&nbsp; HA&nbsp; row is rather&nbsp; "1 0 1 0 1 0".  
  
 +
*Thus,&nbsp; 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}.$$
  
Im Schaubild sind die Prüfgleichungen als rote (Zeile 1), grüne (Zeile 2) bzw. blaue (Zeile 3) Gruppierung veranschaulicht.
+
*In the diagram,&nbsp; the parity-check equations are illustrated as red&nbsp; (row 1),&nbsp; green&nbsp; (row 2)&nbsp; resp. blue&nbsp; (row 3)&nbsp; groupings.
 +
 
  
  
'''(3)'''&nbsp; Richtig sind die <u>Lösungsvorschläge 1 und 3</u>:
+
'''(3)'''&nbsp; Correct are the&nbsp; <u>solutions 1 and 3</u>:
* Die H&ndash;Matrix endet mit einer 3 &times 3&ndash;Diagonalmatrix &nbsp;&#8658;&nbsp; systematischer Code.
+
* The&nbsp; H&nbsp; matrix ends with a&nbsp; 3 &times 3&nbsp; diagonal matrix &nbsp; &#8658; &nbsp; systematic code.
* Damit sind die Hamming&ndash;Gewichte der drei letzten Spalten wS(4)=wS(5)=wS(6)=1, während für die ersten drei Spalten gilt: wS(1)=wS(2)=wS(3)=2 &nbsp;&#8658;&nbsp; irregulärer Code.
 
* Die drei Matrixzeilen sind linear unabhängig. Damit gilt k=nm=63=3 und R=k/n=1/2.
 
  
 +
* Thus,&nbsp; the Hamming weights of the last three columns are&nbsp; wC(4)=wC(5)=wC(6)=1.
 +
 +
* For the first three columns,&nbsp; wC(1)=wC(2)=wC(3)=2 &nbsp; &#8658; &nbsp; irregular code.
  
'''(4)'''&nbsp; [[File: P_ID3074__KC_A_4_12d_v1.png|right|frame|Modifizierter Tanner–Graph für den Code B]]  Betrachtet man den bisherigen Tanner&ndash;Graphen, so erkennt man, dass der <u>Lösungsvorschlag 1</u> richtig ist. Durch Hinzufügen der Zeile &bdquo;0 0 0 1 1 1&rdquo; zur HA&ndash;Matrix erhält man:
+
* The three matrix rows are linearly independent.&nbsp;
 +
 
 +
*Thus&nbsp; k=nm=63=3&nbsp; and&nbsp; R=k/n=1/2&nbsp; holds.
 +
 
 +
 
 +
 
 +
[[File: P_ID3074__KC_A_4_12d_v1.png|right|frame|Modified Tanner graph for code&nbsp; $\rm B$]]   
 +
'''(4)'''&nbsp; Correct is the&nbsp; <u>proposed solution 1</u>:
 +
*Looking at the previous Tanner  graph,&nbsp; one can see the correctness of the proposed solution 1.
 +
 +
*By adding the row&nbsp; "0 0 0 1 1 1"&nbsp; to the&nbsp; HA&nbsp; matrix,&nbsp; 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}.$$
  
Die Modifikationen sind in nebenstehender Grafik rot markiert: Durch den neu hinzugefügten <i>Check Node</i> C4 und die Verbindungen mit V4, V5 und V6 gehen nun
+
:The modifications are marked in red in the adjacent graphic.  
* von allen <i>Variable Nodes</i> Vi zwei Linien ab, und
 
* von allen <i>Check Nodes</i> Cj einheitlich vier.
 
  
 +
*Due to the newly added check node&nbsp; C4&nbsp; and the connections with&nbsp; V4, V5 and V6,&nbsp; there are now
 +
:* from all variable nodes&nbsp; Vi&nbsp; two lines,&nbsp; and
  
'''(5)'''&nbsp; Die Konstruktion in Teilaufgabe (4) liefert einen regulären Code. Die Hamming&ndash;Gewichte der Zeilen bzw. Spalten sind $w_{\rm Z} = 3$ und $w_{\rm S} = 2$. Damit ergibt sich als untere Schranke für die Coderate:
+
:* from all check nodes&nbsp; Cj&nbsp; uniformly four.
:$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}}
+
*This is the condition for the code&nbsp; B&nbsp; to be regular.
 +
 
 +
 
 +
 
 +
'''(5)'''&nbsp; Correct are the&nbsp; <u>solutions 2 and 3</u>:
 +
*The construction in subtask&nbsp; '''(4)'''&nbsp; yields a regular code.
 +
 +
*The Hamming weights of the rows and columns,&nbsp; respectively,&nbsp; are $w_{\rm R} = 3$&nbsp; and&nbsp; $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&nbsp; H&nbsp; manipulation does not change the generator matrix&nbsp; G.
Durch die H&ndash;Manipulation ändert sich nichts an der Generatormatrix G. Gesendet wird weiterhin der gleiche Code mit der Coderate R=1/2. Richtig sind demnach die <u>Lösungsvorschläge 2 und 3</u>.
+
 +
*The same code is still sent with code rate&nbsp; R=1/2.  
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  
  
  
[[Category:Aufgaben zu  Kanalcodierung|^4.4 Low–density Parity–check Codes^]]
+
[[Category:Channel Coding: Exercises|^4.4 Low–density Parity–check Codes^]]

Latest revision as of 17:39, 17 December 2022

Tanner graph for code  A

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  1in)  go off an equal number of edges, 
    likewise from all  check nodes  Cj  (with  1jm).
  • 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:
R1wCwR.



Hints:



Questions

1

How many rows  (m)  and columns  (n)  does the parity-check matrix  HA have?

m= 

n= 

2

Which statements are true based on the Tanner graph?

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".

3

What are the properties of code  A ?

The code is systematic.
The code is regular.
The code rate is  R=1/2.
The code rate is  R=1/3.

4

The matrix  HB  is obtained from  HA  by adding one more row.  By which fourth row does a regular code  B  result?

By adding "0 0 0 1 1 1".
By adding "1 1 1 1 1 1".
By adding any other row.

5

What are the properties of code  B?

The code is systematic.
The code is regular.
The code rate is  R=1/2.
The code rate is  R=1/3.


Solutiojn

(1)  The number of  HA  rows is equal to the number of check nodes  Cj  in the Tanner graph   ⇒   m=3_
and the number  n=6_  of variable nodes  Vi  is equal to the column number.


Underlying parity-check equations

(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.


Modified Tanner graph for code  \rm B

(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.