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

From LNTwww
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  $\rm A$]]
+
[[File:P_ID3072__KC_A_4_12_v1.png|right|frame|Given Tanner graph for code  $\rm A$]]
 
Dargestellt ist ein Tanner–Graph eines Codes  $\rm A$  mit
 
Dargestellt ist ein Tanner–Graph eines Codes  $\rm A$  mit
* den&nbsp; <i>Variable Nodes</i>&nbsp; (abgekürzt VNs)&nbsp; $V_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ V_6$, wobei&nbsp; $V_i$&nbsp; das&nbsp; $i$&ndash;te Codewortbit kennzeichnet (egal, ob Informations&ndash; oder Paritybit) und der&nbsp; $i$&ndash;ten Spalte der Prüfmatrix entspricht;
+
* the&nbsp; <i>variable nodes</i>&nbsp; (abbreviated VNs)&nbsp; $V_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ V_6$, where&nbsp; $V_i$&nbsp; denotes the&nbsp; $i$th code word bit (whether information&ndash; or parity bit) and corresponds to the&nbsp; $i$th column of the parity-check matrix;
* den&nbsp; <i>Check Nodes</i>&nbsp; (abgekürzt CNs)&nbsp; $C_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ C_3$, die die Zeilen der&nbsp; $\mathbf{H}_{\rm A}$&ndash;Matrix und damit die Prüfgleichungen repräsentieren.
+
* the&nbsp; check nodes</i>&nbsp; (abbreviated CNs)&nbsp; $C_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ C_3$, which represent the rows of the&nbsp; $\mathbf{H}_{\rm A}$ matrix and hence the parity-check equations.
  
  
Eine Verbindungslinie&nbsp; (englisch:&nbsp; <i>Edge</i>)&nbsp; zwischen&nbsp; $V_i$&nbsp; und&nbsp; $C_j$&nbsp; zeigt an, dass das&nbsp; $i$&ndash;te Codewortsymbol an der&nbsp; $j$&ndash;ten Prüfgleichung beteiligt ist. In diesem Fall ist das Element&nbsp; $h_{j,\hspace{0.05cm}i}$&nbsp; der Prüfmatrix gleich&nbsp; $1$.
+
An edge between&nbsp; $V_i$&nbsp; and&nbsp; $C_j$&nbsp; indicates that the&nbsp; $i$th code word symbol is involved in the&nbsp; $j$th parity-check equation. In this case, the element&nbsp; $h_{j,\hspace{0.05cm}i}$&nbsp; of the parity-check matrix is equal&nbsp; $1$.
  
  
In der Aufgabe soll der Zusammenhang zwischen dem oben dargestellten Tanner&ndash;Graphen &nbsp;$($gültig für den Code&nbsp; $\rm A)$&nbsp; und der Matrix&nbsp; $\mathbf{H}_{\rm A}$&nbsp; angegeben werden. Außerdem ist der Tanner&ndash;Graph zu einer Prüfmatrix&nbsp; $\mathbf{H}_{\rm B}$&nbsp; aufzustellen, die sich aus&nbsp; $\mathbf{H}_{\rm A}$&nbsp; durch Hinzufügen einer weiteren Zeile ergibt. Diese ist so zu ermitteln, dass der zugehörige Code&nbsp; $\rm B$&nbsp; regulär ist. Das bedeutet:
+
In the exercise, the relation between the above Tanner&ndash;graph &nbsp;$($valid for the code&nbsp; $\rm A)$&nbsp; and the matrix&nbsp; $\mathbf{H}_{\rm A}$&nbsp; shall be given. In addition, the Tanner&ndash;graph to a parity-check matrix&nbsp; $\mathbf{H}_{\rm B}$&nbsp; shall be set up, resulting from&nbsp; $\mathbf{H}_{\rm A}$&nbsp; adding another row. This is to be determined so that the associated code&nbsp; $\rm B$&nbsp; is regular. This means:
* Von allen&nbsp; <i>Variable Nodes</i>&nbsp; $V_i$&nbsp; $($mit&nbsp; $1 &#8804; i &#8804; n)$&nbsp; gehen gleich viele Linien (<i>Edges</i>) ab, ebenso von allen&nbsp; <i>Check Nodes</i>&nbsp; $C_j$&nbsp; $($mit&nbsp; $1 &#8804; j &#8804; m)$.
+
* From all&nbsp; <i>variable nodes</i>&nbsp; $V_i$&nbsp; $($with&nbsp; $1 &#8804; i &#8804; n)$&nbsp; go off equal numbers of edges, likewise from all&nbsp; <i>check nodes</i>&nbsp; $C_j$&nbsp; $($with&nbsp; $1 &#8804; j &#8804; m)$.
* Die Hamming&ndash;Gewichte aller Zeilen von&nbsp; $\mathbf{H}_{\rm B}$&nbsp; sollen jeweils gleich sein&nbsp; $(w_{\rm Z})$, ebenso die Hamming&ndash;Gewichte aller Spalten&nbsp; $(w_{\rm S})$.
+
* The Hamming weights of all rows of&nbsp; $\mathbf{H}_{\rm B}$&nbsp; are each said to be equal&nbsp; $(w_{\rm Z})$, as are the Hamming&ndash;weights of all columns&nbsp; $(w_{\rm S})$.
* Für die Rate des zu konstruierenden regulären Codes &nbsp;$\rm B$&nbsp; gilt dann die folgende untere Schranke:
+
* For the rate of the regular code to be constructed&nbsp;$\rm B$&nbsp; the following lower bound then applies:
 
:$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}}
 
:$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}}
 
\hspace{0.05cm}.$$
 
\hspace{0.05cm}.$$
Line 24: Line 24:
  
  
''Hinweise:''
+
Hints:  
* Die Aufgabe gehört zum Kapitel&nbsp; [[Channel_Coding/Grundlegendes_zu_den_Low%E2%80%93density_Parity%E2%80%93check_Codes|Grundlegendes zu den Low&ndash;density Parity&ndash;check Codes]].
+
*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"]].
*Bezug genommen wird insbesondere auf die Seite&nbsp; [[Channel_Coding/Grundlegendes_zu_den_Low–density_Parity–check_Codes#Zweiteilige_LDPC.E2.80.93Graphenrepr.C3.A4sentation_.E2.80.93_Tanner.E2.80.93Graph|Zweiteilige LDPC&ndash;Graphenrepräsentation &ndash; Tanner&ndash;Graph]].
+
*Reference is made in particular to the page&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"]].
 
   
 
   
  
Line 32: Line 32:
  
  
===Fragebogen===
+
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Wieviele Zeilen&nbsp; $(m)$&nbsp; und Spalten&nbsp; $(n)$&nbsp; hat die Prüfmatrix&nbsp; $\mathbf{H}_{\rm A}$?
+
{How many rows&nbsp; $(m)$&nbsp; and columns&nbsp; $(n)$&nbsp; does the parity-check matrix&nbsp; $\mathbf{H}_{\rm A}$ have?
 
|type="{}"}
 
|type="{}"}
 
$m \hspace{0.18cm} = \ ${ 3 }
 
$m \hspace{0.18cm} = \ ${ 3 }
 
$n \hspace{0.3cm} = \ ${ 6 }
 
$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 Zeile 1 der&nbsp; $\mathbf{H}_{\rm A}$&ndash;Matrix ist&nbsp; "$1 \ 1 \ 0 \ 1 \ 0 \ 0$".
+
+ The row 1 of&nbsp; $\mathbf{H}_{\rm A}$&ndash;matrix is&nbsp; "$1 \ 1 \ 0 \ 1 \ 0 \ 0$".
- Die Zeile 2 der&nbsp; $\mathbf{H}_{\rm A}$&ndash;Matrix ist&nbsp; "$1 \ 0 \ 1 \ 0 \ 0 \ 1$".
+
- The row 2 of&nbsp; $\mathbf{H}_{\rm A}$&ndash;matrix is&nbsp; "$1 \ 0 \ 1 \ 0 \ 0 \ 1$".
+ Die Zeile 3 der&nbsp; $\mathbf{H}_{\rm A}$&ndash;Matrix ist&nbsp; "$0 \ 1 \ 1 \ 0 \ 0 \ 1$".
+
+ The row 3 of&nbsp; $\mathbf{H}_{\rm A}$&ndash;matrix is&nbsp; "$0 \ 1 \ 1 \ 0 \ 0 \ 1$".
  
{Welche Eigenschaften weist der Code&nbsp; $\rm A$&nbsp; auf?
+
{What are the properties of the 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&nbsp; $R = 1/2$.
+
+ The code rate is&nbsp; $R = 1/2$.
- Die Coderate ist&nbsp; $R = 1/3$.
+
- The code rate is&nbsp; $R = 1/3$.
  
{Die Matrix&nbsp; $\mathbf{H}_{\rm B}$&nbsp; ergibt sich aus&nbsp; $\mathbf{H}_{\rm A}$&nbsp; durch Hinzufügen einer weiteren Zeile. Durch welche vierte Zeile ergibt sich ein regulärer Code&nbsp; $\rm B$?
+
{The matrix&nbsp; $\mathbf{H}_{\rm B}$&nbsp; is obtained from&nbsp; $\mathbf{H}_{\rm A}$&nbsp; by adding one more row. By which fourth row does a regular code&nbsp; $\rm B$ result?
 
|type="[]"}
 
|type="[]"}
+ Durch Hinzufügen von "$0 \ 0 \ 0 \ 1 \ 1 \ 1$".
+
+By adding "$0 \ 0 \ 0 \ 1 \ 1 \ 1$".
- Durch Hinzufügen von "$1 \ 1 \ 1 \ 1 \ 1 \ 1$".
+
- 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&nbsp; $\rm B$&nbsp; auf?
+
{What are the properties of the code&nbsp; $\rm B$&nbsp;?
 
|type="[]"}
 
|type="[]"}
- Der Code ist systematisch.
+
- The code is systematic.
+ Der Code ist regulär.
+
+ The code is regular.
+ Die Coderate ist&nbsp; $R = 1/2$.
+
+ The code rate is&nbsp; $R = 1/2$.
- Die Coderate ist&nbsp; $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 $\mathbf{H}_{\rm A}$&ndash;Zeilen ist gleich der Anzahl der <i>Check Nodes</i> $C_j$ im Tanner&ndash;Graphen &nbsp;&#8658;&nbsp; $\underline{m = 3}$, und die Anzahl $\underline{n = 6}$ der <i>Variable Nodes</i> $V_i$ ist gleich der Spaltenzahl.
+
'''(1)'''&nbsp; The number of $\mathbf{H}_{\rm A}$&ndash;rows is equal to the number of <i>check nodes</i> $C_j$ in the Tanner graph &nbsp;&#8658;&nbsp; $\underline{m = 3}$, and the number $\underline{n = 6}$ of <i>variable nodes</i> $V_i$ is equal to the column number.
  
  
  
'''(2)'''&nbsp; Richtig sind die <u>Antworten 1 und 3</u> im Gegensatz zur Aussage 2:  
+
'''(2)'''&nbsp; Correct are <u>answers 1 and 3</u> in contrast to statement 2:  
*Die zweite $\mathbf{H}_{\rm A}$&ndash;Zeile lautet vielmehr "$1 \ 0 \ 1 \ 0 \ 1 \ 0$". Somit liegt dieser Aufgabe die folgende Prüfgleichung zugrunde:
+
*The second $\mathbf{H}_{\rm A}$&ndash;row is rather "$1 \ 0 \ 1 \ 0 \ 1 \ 0$". Thus, this exercise is based on the following parity-check equation:
  
[[File:P_ID3073__KC_A_4_12c_v1.png|right|frame|Zugrunde liegende Prüfgleichungen]]
+
[[File:P_ID3073__KC_A_4_12c_v1.png|right|frame|Underlying parity-check equations]]
  
 
:$${ \boldsymbol{\rm H}}_{\rm A} =
 
:$${ \boldsymbol{\rm H}}_{\rm A} =
Line 84: Line 84:
 
\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, the parity-check equations are illustrated as red (row 1), green (row 2), and blue (row 3) groupings, respectively.
  
  
  
'''(3)'''&nbsp; Richtig sind die <u>Lösungsvorschläge 1 und 3</u>:
+
'''(3)'''&nbsp; Correct are <u>solutions 1 and 3</u>:
* Die $\mathbf{H}$&ndash;Matrix endet mit einer $3 &times 3$&ndash;Diagonalmatrix &nbsp; &#8658; &nbsp; systematischer Code.
+
* The $\mathbf{H}$ matrix ends with a $3 &times 3$ diagonal matrix &nbsp; &#8658; &nbsp; systematic code.
* Damit sind die Hamming&ndash;Gewichte der drei letzten Spalten $w_{\rm S}(4) = w_{\rm S}(5) = w_{\rm S}(6) = 1$.  
+
* Thus, the Hamming weights of the last three columns are $w_{\rm S}(4) = w_{\rm S}(5) = w_{\rm S}(6) = 1$.  
* Für die ersten drei Spalten gilt: $w_{\rm S}(1) = w_{\rm S}(2) = w_{\rm S}(3) = 2$ &nbsp; &#8658; &nbsp; irregulärer Code.
+
* For the first three columns, $w_{\rm S}(1) = w_{\rm S}(2) = w_{\rm S}(3) = 2$ &nbsp; &#8658; &nbsp; irregular code.
* Die drei Matrixzeilen sind linear unabhängig. Damit gilt $k = n - m = 6 - 3 = 3$ und $R = k/n = 1/2$.
+
* 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|Modifizierter Tanner–Graph für den Code $\rm B$]]   
+
[[File: P_ID3074__KC_A_4_12d_v1.png|right|frame|Modified Tanner graph for code $\rm B$]]   
'''(4)'''&nbsp; Richtig ist der <u>Lösungsvorschlag 1</u>:
+
'''(4)'''&nbsp; Correct is the <u>proposed solution 1</u>:
*Betrachtet man den bisherigen Tanner&ndash;Graphen, so erkennt man die Richtigkeit von Lösungsvorschlag 1.  
+
*Looking at the previous Tanner&ndash;s graph, one can see the correctness of proposed solution 1.  
*Durch Hinzufügen der Zeile "$0 \ 0 \ 0 \ 1 \ 1 \ 1$" zur $\mathbf{H}_{\rm A}$&ndash;Matrix erhält man:
+
*By adding the row "$0 \ 0 \ 0 \ 1 \ 1 \ 1$" to the $\mathbf{H}_{\rm A}$ matrix, one obtains:
 
:$${ \boldsymbol{\rm H}}_{\rm B} =
 
:$${ \boldsymbol{\rm H}}_{\rm B} =
 
\begin{pmatrix}
 
\begin{pmatrix}
Line 108: Line 108:
 
\end{pmatrix}\hspace{0.05cm}.$$
 
\end{pmatrix}\hspace{0.05cm}.$$
  
Die Modifikationen sind in nebenstehender Grafik rot markiert.  
+
The modifications are marked in red in the adjacent graphic.  
  
Durch den neu hinzugefügten <i>Check Node</i> $C_4$ und die Verbindungen mit $V_4, \ V_5$ und $V_6$ gehen nun
+
Due to the newly added check node $C_4$ and the connections with $V_4, \ V_5$ and $V_6$, there are now
* von allen <i>Variable Nodes</i> $V_i$ zwei Linien ab, und
+
* from all variable nodes $V_i$ two lines, and
* von allen <i>Check Nodes</i> $C_j$ einheitlich vier.
+
* from all Check Nodes $C_j$ uniformly four.
  
  
Dies ist die Bedingung dafür, dass der  Code $\rm B$ regulär ist.
+
This is the condition for the code $\rm B$ to be regular.
  
  
  
'''(5)'''&nbsp; Richtig sind die <u>Lösungsvorschläge 2 und 3</u>:
+
'''(5)'''&nbsp; Correct are the <u>solutions 2 and 3</u>:
*Die Konstruktion in Teilaufgabe (4) liefert einen regulären Code.  
+
*The construction in subtask (4) yields a regular code.  
*Die Hamming&ndash;Gewichte der Zeilen bzw. Spalten sind $w_{\rm Z} = 3$ und $w_{\rm S} = 2$.  
+
*The Hamming weights of the rows and columns, respectively, are $w_{\rm Z} = 3$ and $w_{\rm S} = 2$.  
*Damit ergibt sich als untere Schranke für die Coderate:
+
*This gives as lower bound for the code rate:
 
:$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}}
 
:$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}}
 
= 1 - {2}/{3} = 1/3
 
= 1 - {2}/{3} = 1/3
 
\hspace{0.05cm}.$$
 
\hspace{0.05cm}.$$
*Durch die $\mathbf{H}$&ndash;Manipulation ändert sich nichts an der Generatormatrix $\mathbf{G}$.  
+
*The $\mathbf{H}$ manipulation does not change the generator matrix $\mathbf{G}$.  
*Gesendet wird weiterhin der gleiche Code mit der Coderate $R = 1/2$.  
+
*The same code is still sent with code rate $R = 1/2$.  
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  

Revision as of 22:21, 10 December 2022

Given Tanner graph for code  $\rm A$

Dargestellt ist ein Tanner–Graph eines Codes  $\rm A$  mit

  • the  variable nodes  (abbreviated VNs)  $V_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ V_6$, where  $V_i$  denotes the  $i$th code word bit (whether information– or parity bit) and corresponds to the  $i$th column of the parity-check matrix;
  • the  check nodes  (abbreviated CNs)  $C_1, \hspace{0.05cm} \text{...} \hspace{0.05cm} , \ C_3$, which represent the rows of the  $\mathbf{H}_{\rm A}$ matrix and hence the parity-check equations.


An edge between  $V_i$  and  $C_j$  indicates that the  $i$th code word symbol is involved in the  $j$th parity-check equation. In this case, the element  $h_{j,\hspace{0.05cm}i}$  of the parity-check matrix is equal  $1$.


In the exercise, the relation between the above Tanner–graph  $($valid for the code  $\rm A)$  and the matrix  $\mathbf{H}_{\rm A}$  shall be given. In addition, the Tanner–graph to a parity-check matrix  $\mathbf{H}_{\rm B}$  shall be set up, resulting from  $\mathbf{H}_{\rm A}$  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 equal numbers of edges, likewise from all  check nodes  $C_j$  $($with  $1 ≤ j ≤ m)$.
  • The Hamming weights of all rows of  $\mathbf{H}_{\rm B}$  are each said to be equal  $(w_{\rm Z})$, as are the Hamming–weights of all columns  $(w_{\rm S})$.
  • For the rate of the regular code to be constructed $\rm B$  the following lower bound then applies:
$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}} \hspace{0.05cm}.$$





Hints:



Questions

1

How many rows  $(m)$  and columns  $(n)$  does the parity-check matrix  $\mathbf{H}_{\rm A}$ have?

$m \hspace{0.18cm} = \ $

$n \hspace{0.3cm} = \ $

2

Which statements are true based on the Tanner graph?

The row 1 of  $\mathbf{H}_{\rm A}$–matrix is  "$1 \ 1 \ 0 \ 1 \ 0 \ 0$".
The row 2 of  $\mathbf{H}_{\rm A}$–matrix is  "$1 \ 0 \ 1 \ 0 \ 0 \ 1$".
The row 3 of  $\mathbf{H}_{\rm A}$–matrix is  "$0 \ 1 \ 1 \ 0 \ 0 \ 1$".

3

What are the properties of the code  $\rm 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  $\mathbf{H}_{\rm B}$  is obtained from  $\mathbf{H}_{\rm A}$  by adding one more row. By which fourth row does a regular code  $\rm 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 the code  $\rm 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 $\mathbf{H}_{\rm A}$–rows is equal to the number of check nodes $C_j$ in the Tanner graph  ⇒  $\underline{m = 3}$, and the number $\underline{n = 6}$ of variable nodes $V_i$ is equal to the column number.


(2)  Correct are answers 1 and 3 in contrast to statement 2:

  • The second $\mathbf{H}_{\rm A}$–row is rather "$1 \ 0 \ 1 \ 0 \ 1 \ 0$". Thus, this exercise is based on the following parity-check equation:
Underlying parity-check equations
$${ \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), and blue (row 3) groupings, respectively.


(3)  Correct are 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 S}(4) = w_{\rm S}(5) = w_{\rm S}(6) = 1$.
  • For the first three columns, $w_{\rm S}(1) = w_{\rm S}(2) = w_{\rm S}(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–s graph, one can see the correctness of 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 Z} = 3$ and $w_{\rm S} = 2$.
  • This gives as lower bound for the code rate:
$$R \ge 1 - \frac{w_{\rm S}}{w_{\rm Z}} = 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$.