Difference between revisions of "Aufgaben:Exercise 1.09Z: Extension and/or Puncturing"

From LNTwww
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Allgemeine Beschreibung linearer Blockcodes}}
+
{{quiz-Header|Buchseite=Channel_Coding/General_Description_of_Linear_Block_Codes}}
  
[[File:EN_KC_Z_1_9.png|right|frame|Zur Erweiterung und Punktierung]]
+
[[File:EN_KC_Z_1_9.png|right|frame|Extension and puncturing]]
  
Häufig kennt man einen Code, der für eine Anwendung als geeignet erscheint, dessen Coderate aber nicht exakt mit den Vorgaben übereinstimmt.
+
Often you know a code that seems to be suitable for an application, but its code rate does not exactly match the specifications.
  
Zur Ratenanpassung gibt es verschiedene Möglichkeiten
+
There are several possibilities for rate adaptation
  
'''Erweiterung'''  (englisch:   ''Extension''):  
+
'''Extension''':  
<br>Ausgehend vom&nbsp; $(n, \, k)$–Code, dessen Prüfmatrix&nbsp; $\mathbf{H}$&nbsp; gegeben ist, erhält man einen&nbsp; $(n+1, \, k)$–Code, indem man die Prüfmatrix um eine Zeile und eine Spalte erweitert und die neuen Matrixelemente entsprechend der oberen Grafik mit Nullen und Einsen ergänzt. Man fügt ein neues Prüfbit
+
<br>Starting from the&nbsp; $(n, \, k)$ code whose parity-check matrix&nbsp; $\mathbf{H}$&nbsp; is given, one obtains a&nbsp; $(n+1, \, k)$ code by extending the parity-check matrix by one row and one column and adding zeros and ones to the new matrix elements according to the upper graph. One adds a new parity bit
 
:$$x_{n+1} = x_1 \oplus x_2 \oplus ... \hspace{0.05cm} \oplus x_n$$
 
:$$x_{n+1} = x_1 \oplus x_2 \oplus ... \hspace{0.05cm} \oplus x_n$$
hinzu und damit auch eine neue Prüfgleichung, die in&nbsp; $\mathbf{H}\hspace{0.05cm}'$&nbsp; berücksichtigt ist.
+
and thus a new parity-check equation is added, which is considered in&nbsp; $\mathbf{H}\hspace{0.05cm}'$&nbsp; .
  
'''Punktierung'''&nbsp; (englisch: &nbsp; ''Puncturing''):  
+
'''Puncturing''':
<br>Entsprechend der unteren Abbildung kommt man zu einem&nbsp; $(n-1, \, k)$–Code größerer Rate, wenn man auf ein Prüfbit und eine Prüfgleichung verzichtet, was gleichbedeutend damit ist, aus der Prüfmatrix&nbsp; $\mathbf{H}$&nbsp; eine Zeile und eine Spalte zu streichen.
+
<br>According to the figure below, one arrives at a&nbsp; $(n-1, \, k)$ code of larger rate by omitting a parity bit and a parity-check equation, which is equivalent to deleting one row and one column from the parity-check matrix&nbsp; $\mathbf{H}$&nbsp;.
  
'''Verkürzung'''&nbsp; (englisch: &nbsp; Shortening):  
+
'''Shortening''':  
<br>Verzichtet man anstelle eines Prüfbits auf ein Informationsbit, so ergibt sich ein&nbsp; $(n-1, \, k-1)$–Code kleinerer Rate.
+
<br>If an information bit is omitted instead of a parity bit, the result is a&nbsp; $(n-1, \, k-1)$ code of smaller rate.
  
  
In dieser Aufgabe sollen ausgehend von einem&nbsp; $(5, \, 2)$–Blockcode
+
In this exercise, starting from a&nbsp; $(5, \, 2)$ block code
  
 
:$$\mathcal{C} = \{ (0, 0, 0, 0, 0) \hspace{0.1cm}, (0, 1, 0, 1, 1) \hspace{0.1cm},(1, 0, 1, 1, 0) \hspace{0.1cm},(1, 1, 1, 0, 1) \}$$
 
:$$\mathcal{C} = \{ (0, 0, 0, 0, 0) \hspace{0.1cm}, (0, 1, 0, 1, 1) \hspace{0.1cm},(1, 0, 1, 1, 0) \hspace{0.1cm},(1, 1, 1, 0, 1) \}$$
  
folgende Codes konstruiert und analysiert werden:
+
the following codes are constructed and analyzed:
*ein&nbsp; $(6, \, 2)$–Code durch einmalige Erweiterung,
+
*one&nbsp; $(6, \, 2)$ code by single extension,
  
*ein&nbsp; $(7, \, 2)$–Code durch nochmalige Erweiterung,
+
*one&nbsp; $(7, \, 2)$ code by extending it again,
  
*ein&nbsp; $(4, \, 2)$–Code durch Punktierung.
+
*one&nbsp; $(4, \, 2)$ code by puncturing.
  
  
Die Prüfmatrix und die Generatormatrix des systematischen&nbsp; $(5, \, 2)$–Codes lauten:
+
The parity-check matrix and the generator matrix of the systematic&nbsp; $(5, \, 2)$ code are:
  
 
:$${ \boldsymbol{\rm H}}_{(5, 2)} = \begin{pmatrix} 1 &0 &1 &0 &0\\ 1 &1 &0 &1 &0\\ 0 &1 &0 &0 &1 \end{pmatrix} \hspace{0.3cm} \Leftrightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{(5, 2)} = \begin{pmatrix} 1 &0 &1 &1 &0\\ 0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$
 
:$${ \boldsymbol{\rm H}}_{(5, 2)} = \begin{pmatrix} 1 &0 &1 &0 &0\\ 1 &1 &0 &1 &0\\ 0 &1 &0 &0 &1 \end{pmatrix} \hspace{0.3cm} \Leftrightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{(5, 2)} = \begin{pmatrix} 1 &0 &1 &1 &0\\ 0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$
Line 40: Line 40:
  
  
''Hinweise'' :  
+
Hints :  
  
*Die Aufgabe gehört zum Kapitel&nbsp; [[Channel_Coding/Allgemeine_Beschreibung_linearer_Blockcodes|Allgemeine Beschreibung linearer Blockcodes]].
+
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/General_Description_of_Linear_Block_Codes|General Description of Linear Block Codes]].
* In der&nbsp; [[Aufgaben:Aufgabe_1.09:_Erweiterter_Hamming–Code|Aufgabe 1.9]]&nbsp; wird beispielhaft gezeigt, wie aus dem&nbsp; $(7, \, 4, \, 3)$–Hamming–Code durch Erweiterung ein&nbsp; $(8, \, 4, \, 4)$–Code entsteht.
+
*In the&nbsp; [[Aufgaben:Exercise_1.09:_Extended_Hamming_Code|Exercise 1.9]]&nbsp; it is exemplified how the&nbsp; $(7, \, 4, \, 3)$ Hamming code is turned into a&nbsp; $(8, \, 4, \, 4)$-code by extension.
  
  
  
===Fragebogen===
+
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Geben Sie die Kenngrößen des vorgegebenen&nbsp; $(5, \, 2)$–Codes an.
+
{Specify the characteristics of the given&nbsp; $(5, \, 2)$ code.
 
|type="{}"}
 
|type="{}"}
 
$R \ = \ $ { 0.4 3% }
 
$R \ = \ $ { 0.4 3% }
 
$d_{\rm min} \ = \ $ {  3 3% }  
 
$d_{\rm min} \ = \ $ {  3 3% }  
  
{Welche Codeworte besitzt der&nbsp; $(6, \, 2)$–Code nach Erweiterung?
+
{What code words does the $(6, \, 2)$ code have after expansion?
 
|type="[]"}
 
|type="[]"}
 
- $(0 0 0 0 0 1), \ (0 1 0 1 1 0), \ (1 0 1 1 0 0), \ (1 1 1 0 1 1).$
 
- $(0 0 0 0 0 1), \ (0 1 0 1 1 0), \ (1 0 1 1 0 0), \ (1 1 1 0 1 1).$
 
+ $(0 0 0 0 0 0), \ (0 1 0 1 1 1), \ (1 0 1 1 0 1), \ (1 1 1 0 1 0).$
 
+ $(0 0 0 0 0 0), \ (0 1 0 1 1 1), \ (1 0 1 1 0 1), \ (1 1 1 0 1 0).$
  
{Geben Sie die Kenngrößen des erweiterten&nbsp; $(6, \, 2)$–Codes an.
+
{Specify the characteristics of the extended&nbsp; $(6, \, 2)$ code.
 
|type="{}"}
 
|type="{}"}
 
$R \ = \ $ { 0.333 3% }
 
$R \ = \ $ { 0.333 3% }
 
$d_{\rm min} \ = \ $ {  4 3% }  
 
$d_{\rm min} \ = \ $ {  4 3% }  
  
{Wie lautet die systematische Generatormatrix&nbsp; $\boldsymbol{\rm G}$&nbsp; des&nbsp; $(7, \, 2)$–Codes?
+
{What is the systematic generator matrix&nbsp; $\boldsymbol{\rm G}$&nbsp; of the&nbsp; $(7, \, 2)$ code?
 
|type="[]"}
 
|type="[]"}
+ Zeile 1 von&nbsp; $\boldsymbol{\rm G} \text{:} \hspace{0.2cm} 1, \, 0, \, 1, \, 1, \, 0, \, 1, \, 0.$
+
+ Row 1 of&nbsp; $\boldsymbol{\rm G} \text{:} \hspace{0.2cm} 1, \, 0, \, 1, \, 1, \, 0, \, 1, \, 0.$
+ Zeile 2 von&nbsp;  $\boldsymbol{\rm G} \text{:} \hspace{0.2cm} 0, \, 1, \, 0, \, 1, \, 1, \, 1, \, 0.$
+
+ Row 2 of&nbsp;  $\boldsymbol{\rm G} \text{:} \hspace{0.2cm} 0, \, 1, \, 0, \, 1, \, 1, \, 1, \, 0.$
  
{Geben Sie die Kenngrößen des erweiterten&nbsp; $(7, \, 2)$–Codes an.
+
{Specify the characteristics of the extended&nbsp; $(7, \, 2)$ code.
 
|type="{}"}
 
|type="{}"}
 
$R \ = \ $ { 0.266 3% }
 
$R \ = \ $ { 0.266 3% }
 
$d_{\rm min} \ = \ $ {  4 3% }  
 
$d_{\rm min} \ = \ $ {  4 3% }  
  
{Welche Aussagen gelten für den&nbsp; $(4, \, 2)$–Code (Punktierung des letzten Prüfbits)?
+
{Which statements are true for the $(4, \, 2)$ code (puncturing the last parity bit)?
 
|type="[]"}
 
|type="[]"}
+ Die Coderate beträgt nun&nbsp; $R = 2/4 = 0.5$.
+
+ The code rate is now&nbsp; $R = 2/4 = 0.5$.
 
+ $C_{(4, 2)} = \{(0, 0, 0, 0),  \, (1, 0, 1, 1), \, (0, 1, 0, 1), \, (1, 1, 1, 0)\}$.
 
+ $C_{(4, 2)} = \{(0, 0, 0, 0),  \, (1, 0, 1, 1), \, (0, 1, 0, 1), \, (1, 1, 1, 0)\}$.
- Die Minimaldistanz bleibt gegenüber dem&nbsp; $(5, \, 2)$–Code unverändert.
+
- The minimum distance remains unchanged from the&nbsp; $(5, \, 2)$ code.
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Die Rate des $(5, \, 2)$–Codes ist $R = 2/5 \ \underline{ = 0.4}$.  
+
'''(1)'''&nbsp; The rate of the $(5, \, 2)$ code is $R = 2/5 \ \underline{ = 0.4}$.  
*Aus dem angegebenen Code erkennt man weiterhin die minimale Distanz $d_{\rm min} \ \underline{ = 3}$.
+
*From the given code, we further recognize the minimum distance $d_{\rm min} \ \underline{ = 3}$.
  
  
  
'''(2)'''&nbsp; Bei Erweiterung vom $(5, \, 2)$–Code zum $(6, \, 2)$–Code wird ein weiteres Prüfbit hinzugefügt.  
+
'''(2)'''&nbsp; When extending from the $(5, \, 2)$ code to the $(6, \, 2)$ code, another parity bit is added.  
*Das Codewort hat somit die Form
+
*The codeword thus has the form
  
 
:$$\underline{x} = ( x_1, x_2, x_3, x_4, x_5, x_6) = ( u_1, u_2, p_1, p_2, p_{3}, p_4) \hspace{0.05cm}.$$
 
:$$\underline{x} = ( x_1, x_2, x_3, x_4, x_5, x_6) = ( u_1, u_2, p_1, p_2, p_{3}, p_4) \hspace{0.05cm}.$$
  
*Für das hinzugekommene Prüfbit muss dabei gelten:
+
*For the added parity bit must be valid:
  
 
:$$p_4 = x_6 = x_1 \oplus x_2 \oplus x_3 \oplus x_4 \oplus x_5 \hspace{0.05cm}.$$
 
:$$p_4 = x_6 = x_1 \oplus x_2 \oplus x_3 \oplus x_4 \oplus x_5 \hspace{0.05cm}.$$
  
*Das heißt: Das neue Prüfbit $p_{4}$ wird so gewählt, dass sich in jedem Codewort eine gerade Anzahl von Einsen ergibt &nbsp;⇒&nbsp; <u>Antwort 2</u>.  
+
*That is, the new parity bit $p_{4}$ is chosen to result in an even number of ones in each codeword &nbsp;⇒&nbsp; <u>Answer 2</u>.  
*Löst man diese Aufgabe mit der Prüfmatrix, so erhält man
+
*Solving this task with the parity-check matrix, we get
 
:$${ \boldsymbol{\rm H}}_{(6,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &0 &0 &1 &0\\ 1 &1 &1 &1 &1 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm H}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} = \begin{pmatrix} 1 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &0 &0 &1 &0\\ 1 &1 &0 &0 &0 &1 \end{pmatrix}\hspace{0.3cm}
 
:$${ \boldsymbol{\rm H}}_{(6,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &0 &0 &1 &0\\ 1 &1 &1 &1 &1 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm H}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} = \begin{pmatrix} 1 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &0 &0 &1 &0\\ 1 &1 &0 &0 &0 &1 \end{pmatrix}\hspace{0.3cm}
 
\Rightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} = \begin{pmatrix} 1 &0 &1 &1 &0 &1\\ 0 &1 &0 &1 &1 &1 \end{pmatrix}\hspace{0.05cm}.$$
 
\Rightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} = \begin{pmatrix} 1 &0 &1 &1 &0 &1\\ 0 &1 &0 &1 &1 &1 \end{pmatrix}\hspace{0.05cm}.$$
  
*Die beiden Zeilen der Generatormatrix $\boldsymbol{\rm G}$ ergeben zwei der vier Codeworte, die Modulo–$2$–Summe das dritte und schließlich ist auch noch das Nullwort zu berücksichtigen.
+
*The two rows of the generator matrix $\boldsymbol{\rm G}$ give two of the four codewords, the modulo $2$ sum gives the third, and finally the all zero word has to be considered.
  
  
  
'''(3)'''&nbsp; Nach Erweiterung vom $(5, \, 2)$–Code auf den $(6, \, 2)$–Code
+
'''(3)'''&nbsp; After extension from the $(5, \, 2)$ code to the $(6, \, 2)$ code.
*vermindert sich die Rate von $R = 2/5$ auf $R = 2/6 \ \underline{= 0.333}$,
+
*decreases the rate from $R = 2/5$ to $R = 2/6 \ \underline{= 0.333}$,
*erhöht sich die Minimaldistanz von $d_{\rm min} = 3$ auf $d_{\rm min} \ \underline{= 4}$ .
+
*increases the minimum distance from $d_{\rm min} = 3$ to $d_{\rm min} \ \underline{= 4}$ .
  
  
<u>Allgemein gilt:</u> &nbsp; Erweitert man einen Code, so nimmt die Rate ab und die Minimaldistanz erhöht sich um $1$, falls $d_{\rm min}$ vorher ungerade war.
+
<u>In general:</u> &nbsp; Extending a code, the rate decreases and the minimum distance increases by $1$ if $d_{\rm min}$ was odd before.
  
  
  
'''(4)'''&nbsp; Bei gleicher Vorgehensweise wie unter (3) erhält man
+
'''(4)'''&nbsp; Using the same procedure as in (3), we obtain
 
:$${ \boldsymbol{\rm H}}_{(7,\hspace{0.05cm} 2)} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &0 &0 &0 &0\\ 1 &1 &0 &1 &0 &0 &0\\ 0 &1 &0 &0 &1 &0 &0\\ 1 &1 &0 &0 &0 &1 &0\\ 1 &1 &1 &1 &1 &1 &1 \end{pmatrix} \hspace{0.15cm} \Rightarrow\hspace{0.15cm} { \boldsymbol{\rm H}}_{{\rm (7,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &0 &0 &0 &0\\ 1 &1 &0 &1 &0 &0 &0\\ 0 &1 &0 &0 &1 &0 &0\\ 1 &1 &0 &0 &0 &1 &0\\ 0 &0 &0 &0 &0 &0 &1 \end{pmatrix}\hspace{0.15cm} \Rightarrow\hspace{0.15cm} { \boldsymbol{\rm G}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &1 &0 &1 &0 \\ 0 &1 &0 &1 &1 &1 &0 \end{pmatrix}\hspace{0.05cm}.$$
 
:$${ \boldsymbol{\rm H}}_{(7,\hspace{0.05cm} 2)} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &0 &0 &0 &0\\ 1 &1 &0 &1 &0 &0 &0\\ 0 &1 &0 &0 &1 &0 &0\\ 1 &1 &0 &0 &0 &1 &0\\ 1 &1 &1 &1 &1 &1 &1 \end{pmatrix} \hspace{0.15cm} \Rightarrow\hspace{0.15cm} { \boldsymbol{\rm H}}_{{\rm (7,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &0 &0 &0 &0\\ 1 &1 &0 &1 &0 &0 &0\\ 0 &1 &0 &0 &1 &0 &0\\ 1 &1 &0 &0 &0 &1 &0\\ 0 &0 &0 &0 &0 &0 &1 \end{pmatrix}\hspace{0.15cm} \Rightarrow\hspace{0.15cm} { \boldsymbol{\rm G}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &1 &0 &1 &0 \\ 0 &1 &0 &1 &1 &1 &0 \end{pmatrix}\hspace{0.05cm}.$$
  
⇒&nbsp; <u>Beide Antworten</u> sind richtig.
+
⇒&nbsp; <u>Both answers</u> are correct.
  
  
  
'''(5)'''&nbsp; Die Rate beträgt nun $R = 2/7 = \underline{0.266}$.  
+
'''(5)'''&nbsp; The rate is now $R = 2/7 = \underline{0.266}$.  
*Die Minimaldistanz ist weiterhin $d_{\rm min} \ \underline{= 4}$ , wie man aus den $(7, \, 2)$–Codeworten ablesen kann:
+
*The minimum distance is still $d_{\rm min} \ \underline{= 4}$ , as can be seen from the $(7, \, 2)$ code words:
 
:$$\mathcal{C} = \{ (0, 0, 0, 0, 0, 0, 0), \hspace{0.1cm}(0, 1, 0, 1, 1, 1, 0), \hspace{0.1cm}(1, 0, 1, 1, 0, 1, 0), \hspace{0.1cm}(1, 1, 1, 0, 1, 0, 0) \}\hspace{0.05cm}.$$
 
:$$\mathcal{C} = \{ (0, 0, 0, 0, 0, 0, 0), \hspace{0.1cm}(0, 1, 0, 1, 1, 1, 0), \hspace{0.1cm}(1, 0, 1, 1, 0, 1, 0), \hspace{0.1cm}(1, 1, 1, 0, 1, 0, 0) \}\hspace{0.05cm}.$$
  
<u>Allgemein gilt:</u> &nbsp; Ist die Minimaldistanz eines Codes geradzahlig, so kann diese durch Erweiterung nicht vergrößert werden.
+
<u>In general:</u> &nbsp; If the minimum distance of a code is even, it cannot be increased by extension.
  
  
  
'''(6)'''&nbsp; Richtig sind die <u>Aussagen 1 und 2</u>:  
+
'''(6)'''&nbsp; Correct are the <u>statements 1 and 2</u>:  
*Durch Streichen der letzten Zeile und der letzten Spalte erhält man für Prüfmatrix bzw.  Generatormatrix (jeweils in systematischer Form):
+
*By crossing out the last row and the last column, we obtain for parity-check matrix and generator matrix, respectively (each in systematic form):
 
:$${ \boldsymbol{\rm H}}_{(4,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &1 &0 \\ 1 &1 &0 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{{\rm (4,\hspace{0.05cm} 2)}} = \begin{pmatrix} 1 &0 &1 &1 \\ 0 &1 &0 &1 \end{pmatrix}\hspace{0.05cm}.$$
 
:$${ \boldsymbol{\rm H}}_{(4,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &1 &0 \\ 1 &1 &0 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{{\rm (4,\hspace{0.05cm} 2)}} = \begin{pmatrix} 1 &0 &1 &1 \\ 0 &1 &0 &1 \end{pmatrix}\hspace{0.05cm}.$$
  
*Aus der Generatormatrix ergeben sich die genannten Codeworte $(1, 0, 1, 1), \, (0, 1, 0, 1), \, (1, 1, 1, 0)$ als Zeilensumme sowie das Nullwort $(0, 0, 0, 0)$. Die Minimaldistanz dieses Codes ist $d_{\rm min}= 2$ und damit kleiner als die minimale Distanz $d_{\rm min}= 3$ des $(5, \, 2)$–Codes.
+
*From the generator matrix we get the mentioned codewords $(1, 0, 1, 1), \, (0, 1, 0, 1), \, (1, 1, 1, 0)$ as row sum as well as the null word $(0, 0, 0, 0)$. The minimum distance of this code is $d_{\rm min}= 2$, which is smaller than the minimum distance $d_{\rm min}= 3$ of the $(5, \, 2)$ code.
  
  
<u>Allgemein gilt:</u> &nbsp; Durch Punktierung wird $d_{\rm min}$ um $1$ kleiner (wenn sie vorher gerade war) oder sie bleibt gleich. Dies kann man sich verdeutlichen, wenn man durch eine weitere Punktierung (des Prüfbits $p_{2}$) den $(3, \, 2)$–Blockcode generiert. Dieser Code
+
<u>In general:</u> &nbsp; Puncturing makes $d_{\rm min}$ smaller by $1$ (if it was even before) or it stays the same. This can be illustrated by generating the $(3, \, 2)$ block code by another puncturing (of the parity bit $p_{2}$). This code
 
:$$ \mathcal{C} = \{ (0, 0, 0), \hspace{0.1cm}(0, 1, 1), \hspace{0.1cm}(1, 0, 1), \hspace{0.1cm}(1, 1, 0) \}$$
 
:$$ \mathcal{C} = \{ (0, 0, 0), \hspace{0.1cm}(0, 1, 1), \hspace{0.1cm}(1, 0, 1), \hspace{0.1cm}(1, 1, 0) \}$$
besitzt die gleiche Minimaldistanz $d_{\rm min}= 2$ wie der $(4, \, 2)$–Code.
+
has the same minimum distance $d_{\rm min}= 2$ as the $(4, \, 2)$ code.
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  

Revision as of 22:56, 7 July 2022

Extension and puncturing

Often you know a code that seems to be suitable for an application, but its code rate does not exactly match the specifications.

There are several possibilities for rate adaptation

Extension:
Starting from the  $(n, \, k)$ code whose parity-check matrix  $\mathbf{H}$  is given, one obtains a  $(n+1, \, k)$ code by extending the parity-check matrix by one row and one column and adding zeros and ones to the new matrix elements according to the upper graph. One adds a new parity bit

$$x_{n+1} = x_1 \oplus x_2 \oplus ... \hspace{0.05cm} \oplus x_n$$

and thus a new parity-check equation is added, which is considered in  $\mathbf{H}\hspace{0.05cm}'$  .

Puncturing:
According to the figure below, one arrives at a  $(n-1, \, k)$ code of larger rate by omitting a parity bit and a parity-check equation, which is equivalent to deleting one row and one column from the parity-check matrix  $\mathbf{H}$ .

Shortening:
If an information bit is omitted instead of a parity bit, the result is a  $(n-1, \, k-1)$ code of smaller rate.


In this exercise, starting from a  $(5, \, 2)$ block code

$$\mathcal{C} = \{ (0, 0, 0, 0, 0) \hspace{0.1cm}, (0, 1, 0, 1, 1) \hspace{0.1cm},(1, 0, 1, 1, 0) \hspace{0.1cm},(1, 1, 1, 0, 1) \}$$

the following codes are constructed and analyzed:

  • one  $(6, \, 2)$ code by single extension,
  • one  $(7, \, 2)$ code by extending it again,
  • one  $(4, \, 2)$ code by puncturing.


The parity-check matrix and the generator matrix of the systematic  $(5, \, 2)$ code are:

$${ \boldsymbol{\rm H}}_{(5, 2)} = \begin{pmatrix} 1 &0 &1 &0 &0\\ 1 &1 &0 &1 &0\\ 0 &1 &0 &0 &1 \end{pmatrix} \hspace{0.3cm} \Leftrightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{(5, 2)} = \begin{pmatrix} 1 &0 &1 &1 &0\\ 0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$




Hints :


Questions

1

Specify the characteristics of the given  $(5, \, 2)$ code.

$R \ = \ $

$d_{\rm min} \ = \ $

2

What code words does the $(6, \, 2)$ code have after expansion?

$(0 0 0 0 0 1), \ (0 1 0 1 1 0), \ (1 0 1 1 0 0), \ (1 1 1 0 1 1).$
$(0 0 0 0 0 0), \ (0 1 0 1 1 1), \ (1 0 1 1 0 1), \ (1 1 1 0 1 0).$

3

Specify the characteristics of the extended  $(6, \, 2)$ code.

$R \ = \ $

$d_{\rm min} \ = \ $

4

What is the systematic generator matrix  $\boldsymbol{\rm G}$  of the  $(7, \, 2)$ code?

Row 1 of  $\boldsymbol{\rm G} \text{:} \hspace{0.2cm} 1, \, 0, \, 1, \, 1, \, 0, \, 1, \, 0.$
Row 2 of  $\boldsymbol{\rm G} \text{:} \hspace{0.2cm} 0, \, 1, \, 0, \, 1, \, 1, \, 1, \, 0.$

5

Specify the characteristics of the extended  $(7, \, 2)$ code.

$R \ = \ $

$d_{\rm min} \ = \ $

6

Which statements are true for the $(4, \, 2)$ code (puncturing the last parity bit)?

The code rate is now  $R = 2/4 = 0.5$.
$C_{(4, 2)} = \{(0, 0, 0, 0), \, (1, 0, 1, 1), \, (0, 1, 0, 1), \, (1, 1, 1, 0)\}$.
The minimum distance remains unchanged from the  $(5, \, 2)$ code.


Solution

(1)  The rate of the $(5, \, 2)$ code is $R = 2/5 \ \underline{ = 0.4}$.

  • From the given code, we further recognize the minimum distance $d_{\rm min} \ \underline{ = 3}$.


(2)  When extending from the $(5, \, 2)$ code to the $(6, \, 2)$ code, another parity bit is added.

  • The codeword thus has the form
$$\underline{x} = ( x_1, x_2, x_3, x_4, x_5, x_6) = ( u_1, u_2, p_1, p_2, p_{3}, p_4) \hspace{0.05cm}.$$
  • For the added parity bit must be valid:
$$p_4 = x_6 = x_1 \oplus x_2 \oplus x_3 \oplus x_4 \oplus x_5 \hspace{0.05cm}.$$
  • That is, the new parity bit $p_{4}$ is chosen to result in an even number of ones in each codeword  ⇒  Answer 2.
  • Solving this task with the parity-check matrix, we get
$${ \boldsymbol{\rm H}}_{(6,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &0 &0 &1 &0\\ 1 &1 &1 &1 &1 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm H}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} = \begin{pmatrix} 1 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 0 &1 &0 &0 &1 &0\\ 1 &1 &0 &0 &0 &1 \end{pmatrix}\hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} = \begin{pmatrix} 1 &0 &1 &1 &0 &1\\ 0 &1 &0 &1 &1 &1 \end{pmatrix}\hspace{0.05cm}.$$
  • The two rows of the generator matrix $\boldsymbol{\rm G}$ give two of the four codewords, the modulo $2$ sum gives the third, and finally the all zero word has to be considered.


(3)  After extension from the $(5, \, 2)$ code to the $(6, \, 2)$ code.

  • decreases the rate from $R = 2/5$ to $R = 2/6 \ \underline{= 0.333}$,
  • increases the minimum distance from $d_{\rm min} = 3$ to $d_{\rm min} \ \underline{= 4}$ .


In general:   Extending a code, the rate decreases and the minimum distance increases by $1$ if $d_{\rm min}$ was odd before.


(4)  Using the same procedure as in (3), we obtain

$${ \boldsymbol{\rm H}}_{(7,\hspace{0.05cm} 2)} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &0 &0 &0 &0\\ 1 &1 &0 &1 &0 &0 &0\\ 0 &1 &0 &0 &1 &0 &0\\ 1 &1 &0 &0 &0 &1 &0\\ 1 &1 &1 &1 &1 &1 &1 \end{pmatrix} \hspace{0.15cm} \Rightarrow\hspace{0.15cm} { \boldsymbol{\rm H}}_{{\rm (7,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &0 &0 &0 &0\\ 1 &1 &0 &1 &0 &0 &0\\ 0 &1 &0 &0 &1 &0 &0\\ 1 &1 &0 &0 &0 &1 &0\\ 0 &0 &0 &0 &0 &0 &1 \end{pmatrix}\hspace{0.15cm} \Rightarrow\hspace{0.15cm} { \boldsymbol{\rm G}}_{{\rm (6,\hspace{0.05cm} 2)\hspace{0.05cm}sys}} \hspace{-0.05cm}=\hspace{-0.05cm} \begin{pmatrix} 1 &0 &1 &1 &0 &1 &0 \\ 0 &1 &0 &1 &1 &1 &0 \end{pmatrix}\hspace{0.05cm}.$$

⇒  Both answers are correct.


(5)  The rate is now $R = 2/7 = \underline{0.266}$.

  • The minimum distance is still $d_{\rm min} \ \underline{= 4}$ , as can be seen from the $(7, \, 2)$ code words:
$$\mathcal{C} = \{ (0, 0, 0, 0, 0, 0, 0), \hspace{0.1cm}(0, 1, 0, 1, 1, 1, 0), \hspace{0.1cm}(1, 0, 1, 1, 0, 1, 0), \hspace{0.1cm}(1, 1, 1, 0, 1, 0, 0) \}\hspace{0.05cm}.$$

In general:   If the minimum distance of a code is even, it cannot be increased by extension.


(6)  Correct are the statements 1 and 2:

  • By crossing out the last row and the last column, we obtain for parity-check matrix and generator matrix, respectively (each in systematic form):
$${ \boldsymbol{\rm H}}_{(4,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &1 &0 \\ 1 &1 &0 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm G}}_{{\rm (4,\hspace{0.05cm} 2)}} = \begin{pmatrix} 1 &0 &1 &1 \\ 0 &1 &0 &1 \end{pmatrix}\hspace{0.05cm}.$$
  • From the generator matrix we get the mentioned codewords $(1, 0, 1, 1), \, (0, 1, 0, 1), \, (1, 1, 1, 0)$ as row sum as well as the null word $(0, 0, 0, 0)$. The minimum distance of this code is $d_{\rm min}= 2$, which is smaller than the minimum distance $d_{\rm min}= 3$ of the $(5, \, 2)$ code.


In general:   Puncturing makes $d_{\rm min}$ smaller by $1$ (if it was even before) or it stays the same. This can be illustrated by generating the $(3, \, 2)$ block code by another puncturing (of the parity bit $p_{2}$). This code

$$ \mathcal{C} = \{ (0, 0, 0), \hspace{0.1cm}(0, 1, 1), \hspace{0.1cm}(1, 0, 1), \hspace{0.1cm}(1, 1, 0) \}$$

has the same minimum distance $d_{\rm min}= 2$ as the $(4, \, 2)$ code.