Difference between revisions of "Aufgaben:Exercise 1.10: Some Generator Matrices"

From LNTwww
(Die Seite wurde neu angelegt: „{{quiz-Header|Buchseite=Kanalcodierung/Allgemeine Beschreibung linearer Blockcodes }} [[File:|right|]] ===Fragebogen=== <quiz display=simple> {Multiple-C…“)
 
 
(25 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{quiz-Header|Buchseite=Kanalcodierung/Allgemeine Beschreibung linearer Blockcodes
+
{{quiz-Header|Buchseite=Channel_Coding/General_Description_of_Linear_Block_Codes
 +
}}
 +
 
 +
[[File:P_ID2404__KC_A_1_10.png|right|frame|Considered generator matrices]]
 +
 
 +
We now consider various binary codes of uniform length&nbsp; $n$.&nbsp; All codes of the form
 +
:$$\underline{x} \hspace{-0.15cm}\ = \ \hspace{-0.15cm} ( x_1,\ x_2, \ \text{...} \  \hspace{0.05cm},\ x_n) \hspace{0.5cm}\text{with}
 +
\hspace{0.5cm} x_i \hspace{-0.15cm}\ \in \ \hspace{-0.15cm} \{ 0,\ 1 \},\hspace{0.2cm} i = 1, \hspace{0.05cm} \text{...} \ \hspace{0.05cm}, n$$
 +
 
 +
can be represented and interpreted in an&nbsp; $n$-dimensional vector space. &nbsp; ⇒ &nbsp; ${\rm GF}(2^n)$.
  
}}
+
The&nbsp; $k×n$&nbsp; generator matrix&nbsp; $\mathbf{G}$&nbsp; (matrix with&nbsp; $k$&nbsp; rows and&nbsp; $n$&nbsp; columns)&nbsp; yields a&nbsp; $(n, \, k)$&nbsp; code,&nbsp; but only if the rank of the matrix&nbsp; $\mathbf{G}$&nbsp; is also equal&nbsp; $k$.&nbsp; Further holds:
 +
 
 +
*Each code&nbsp; $\mathcal{C}$&nbsp; spans a&nbsp; $k$-dimensional linear subspace of the Galois field&nbsp; ${\rm GF}(2^n)$.
 +
 
 +
*As basis vectors of this subspace,&nbsp; $k$&nbsp; independent code words of&nbsp; $\mathcal{C}$&nbsp; can be used.&nbsp; There is no further restriction for the basis vectors.
 +
 
 +
*The parity-check matrix&nbsp; $\mathbf{H}$&nbsp; also spans a subspace of&nbsp; ${\rm GF}(2^n)$.&nbsp; But this has dimension&nbsp; $m = n - k$&nbsp; and is orthogonal to the subspace based on&nbsp; $\mathbf{G}$.
 +
 
 +
*For a linear code &nbsp; &rArr; &nbsp; $\underline{x} = \underline{u} \cdot \boldsymbol{ {\rm G}}$,&nbsp; where&nbsp; $\underline{u} = (u_{1}, \, u_{2}, \, \text{...} \, , \, u_{k})$&nbsp; indicates the information word.&nbsp; A systematic code exists if&nbsp; $x_{1} = u_{1}, \, \text{...} \, , \, x_{k} = u_{k}$&nbsp; holds.
 +
 
 +
*In a systematic code,&nbsp; there is a simple relationship between&nbsp; $\mathbf{G}$&nbsp; and&nbsp; $\mathbf{H}$.&nbsp; For more details,&nbsp; see the&nbsp; [[Channel_Coding/General_Description_of_Linear_Block_Codes#Systematic_Codes|"Theory Section"]].
 +
 
 +
 
 +
 
 +
 
 +
 
 +
Hints :
 +
 
 +
*This exercise belongs to the chapter&nbsp; [[Channel_Coding/General_Description_of_Linear_Block_Codes|"General Description of Linear Block Codes"]].
 +
 
 +
*For the whole exercise holds&nbsp; $n = 6$.
 +
 
 +
*In the subtask&nbsp; '''(4)'''&nbsp; it is to be clarified which of the matrices&nbsp; $\boldsymbol{ {\rm G}}_{\rm A}, \ \boldsymbol{ {\rm G}}_{\rm B}$ resp. $ \boldsymbol{ {\rm G}}_{\rm C}$&nbsp; result in a&nbsp; $(6, \, 3)$&nbsp; block code with the code words listed below:
  
[[File:|right|]]
+
:$$  (  0, 0, 0, 0, 0, 0), \hspace{0.3cm}(0, 0, 1, 0, 1, 1), \hspace{0.3cm}(0, 1, 0, 1, 0, 1), \hspace{0.3cm}(0, 1, 1, 1, 1, 0), \hspace{0.3cm} (  1, 0, 0, 1, 1, 0), \hspace{0.3cm}(1, 0, 1, 1, 0, 1), \hspace{0.3cm}(1, 1, 0, 0, 1, 1), \hspace{0.3cm}(1, 1, 1, 0, 0, 0)\hspace{0.05cm}.$$
  
  
===Fragebogen===
 
  
 +
===Questions===
 
<quiz display=simple>
 
<quiz display=simple>
{Multiple-Choice Frage
+
{Known are only the two code words&nbsp; $(0, 1, 0, 1, 0, 1)$&nbsp; and&nbsp; $(1, 0, 0, 1, 1, 0)$&nbsp; of a linear code.&nbsp; Which statements are true?
 
|type="[]"}
 
|type="[]"}
- Falsch
+
- It could be a&nbsp; $(5, \, 2)$&nbsp; code.
+ Richtig
+
+ It could be a&nbsp; $(6, \, 2)$&nbsp; code.
 +
+ It could be a&nbsp; $(6, \, 3)$&nbsp; code.
 +
 
 +
 
 +
{What are the four code words of the linear&nbsp; $(6, \, 2)$&nbsp; code explicitly?
 +
|type="()"}
 +
- $(0 0 1 0 1 1), \ (0 1 0 1 0 1), \ (1 0 0 1 1 0), \ (1 1 0 0 1 1).$
 +
+ $(0 0 0 0 0 0), \ (0 1 0 1 0 1), \ (1 0 0 1 1 0), \ (1 1 0 0 1 1).$
 +
- $(0 0 0 0 0 0), \ (0 1 0 1 0 1), \ (1 0 0 1 1 0), \ (1 1 1 0 0 0).$
 +
 
 +
 
 +
{Which statements are true for this&nbsp; $(6, \, 2)$&nbsp; code&nbsp; $\mathcal{C}$?
 +
|type="[]"}
 +
+ For all code words&nbsp; $(i = 1,\hspace{0.05cm} \text{ ...} \ , 4)$ &nbsp; &rArr; &nbsp; $\underline{x}_{i} \in {\rm GF}(2^6)$.
 +
+ $\mathcal{C}$&nbsp; is a two-dimensional linear subvector space of&nbsp; ${\rm GF}(2^6)$.
 +
+ $\mathbf{G}$&nbsp; gives basis vectors of this subvector space&nbsp; ${\rm GF}(2^2)$.
 +
- $\mathbf{G}$&nbsp; and&nbsp; $\mathbf{H}$&nbsp; are each&nbsp; $2×6$&nbsp; matrices.
 +
 
 +
 
 +
{Which of the generator matrices given in the graphic result in a&nbsp; $(6, \, 3)$&nbsp; code?
 +
|type="[]"}
 +
+ The generator matrix&nbsp; $\boldsymbol{ {\rm G}}_{\rm A}$,
 +
+ the generator matrix&nbsp; $\boldsymbol{ {\rm G}}_{\rm B}$,
 +
- the generator matrix&nbsp; $\boldsymbol{ {\rm G}}_{\rm C}$.
  
  
{Input-Box Frage
 
|type="{}"}
 
$\alpha$ = { 0.3 }
 
  
  
Line 23: Line 74:
 
</quiz>
 
</quiz>
  
===Musterlösung===
+
===Solution===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''1.'''
+
'''(1)'''&nbsp; Correct are the&nbsp; <u>suggested solutions 2 and 3</u>:
'''2.'''
+
*The code word length is&nbsp; $n = 6$ &nbsp; ⇒ &nbsp;the&nbsp; $(5, \, 2)$&nbsp; code is not eligible.
'''3.'''
+
'''4.'''
+
*For a&nbsp; $(6, \, 2)$&nbsp; code,&nbsp; there are&nbsp; $2^2 = 4$&nbsp; distinct code words,&nbsp; and for the&nbsp; $(6, \, 3)$&nbsp; code,&nbsp; there are correspondingly&nbsp; $2^3 = 8$.
'''5.'''
+
'''6.'''
+
*By specifying only two code words,&nbsp; neither the&nbsp; $(6, \, 2)$&nbsp; code nor the&nbsp; $(6, \, 3)$&nbsp; code can be excluded.
'''7.'''
+
 
 +
 
 +
 
 +
'''(2)'''&nbsp;  Correct is the&nbsp; <u>solution suggestion 2</u>:
 +
*Since this is a linear code,&nbsp; the modulo 2 sum must also be a valid code word:
 +
:$$(0, 1, 0, 1, 0, 1) \oplus (1, 0, 0, 1, 1, 0) = (1, 1, 0, 0, 1, 1)\hspace{0.05cm}.$$
 +
*Likewise the all zero word:
 +
:$$(0, 1, 0, 1, 0, 1) \oplus (0, 1, 0, 1, 0, 1) = (0, 0, 0, 0, 0, 0)\hspace{0.05cm}.$$
 +
 
 +
 
 +
 
 +
'''(3)'''&nbsp; Correct are here  the&nbsp; <u>statements 1 to 3</u>:
 +
*Basis vectors of the generator matrix&nbsp; $\mathbf{G}$&nbsp; are, for example,&nbsp; the two given code words,&nbsp; from which the parity-check matrix&nbsp; $\mathbf{H}$&nbsp; can also be determined:
 +
:$${ \boldsymbol{\rm G}}_{(6,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &0 &1 &0 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm H}}_{(6,\hspace{0.05cm} 2)} = \begin{pmatrix} 0 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 1 &0 &0 &0 &1 &0\\ 0 &1 &0 &0 &0 &1 \end{pmatrix}\hspace{0.05cm}.$$
 +
*In general,&nbsp; the&nbsp; $k$&nbsp; basis vectors of the generator matrix&nbsp; $\mathbf{G}$&nbsp; form a&nbsp; $k$-dimensional subspace and the&nbsp; $m×n$&nbsp; matrix&nbsp; $\mathbf{H}$&nbsp; $($with $m = n - k)$&nbsp; forms an orthogonal subspace of dimension&nbsp; $m$.
 +
 
 +
 
 +
<u>Note:</u> The code given here
 +
:$$\mathcal{C}_{(6,\hspace{0.05cm} 2)} = \{ (0, 0, 0, 0, 0, 0), \hspace{0.3cm}(0, 1, 0, 1, 0, 1), \hspace{0.3cm} (1, 0, 0, 1, 1, 0), \hspace{0.3cm}(1, 1, 0, 0, 1, 1) \}$$
 +
 
 +
is not very effective,&nbsp; since $p_{1} = x_{3}$&nbsp; is always zero.&nbsp; By puncturing this redundant bit you get the code
 +
:$$\mathcal{C}_{(5,\hspace{0.05cm} 2)} = \{ (0, 0, 0, 0, 0), \hspace{0.3cm}(0, 1, 1, 0, 1), \hspace{0.3cm} (1, 0, 1, 1, 0), \hspace{0.3cm}(1, 1, 0, 1, 1) \}$$
 +
 
 +
with the same minimum distance&nbsp; $d_{\rm min} = 3$,&nbsp; but larger code rate&nbsp; $R = 2/5$&nbsp; compared to&nbsp; $R = 1/3$.
 +
 
 +
 
 +
 
 +
'''(4)'''&nbsp;  Correct are the&nbsp; <u>suggested solutions 1 and 2</u>:
 +
*The three rows&nbsp; $g_1, \ g_2$ and $g_3$&nbsp; of the matrix&nbsp; $\mathbf{G}_{\rm A}$&nbsp; are suitable as basis vectors,&nbsp; since they are linearly independent,&nbsp; that is,&nbsp; it holds
 +
:$$\underline{g}_1 \oplus \underline{g}_2 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_3\hspace{0.05cm},\hspace{0.5cm}
 +
\underline{g}_1 \oplus \underline{g}_3 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_2\hspace{0.05cm},\hspace{0.5cm}
 +
\underline{g}_2 \oplus \underline{g}_3 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_1\hspace{0.05cm}.$$
 +
*The same is true for matrix&nbsp; $\mathbf{G}_{\rm B}$.&nbsp; The basis vectors are chosen here so that the code is also systematic.
 +
 
 +
*For the last generator matrix holds:&nbsp; $\underline{g}_{1}⊕\underline{g}_{2} = \underline{g}_{3}$ &nbsp; ⇒ &nbsp; the rank of matrix&nbsp; $(2)$&nbsp; is smaller than its order&nbsp; $(2)$.
 +
 +
*Here not only&nbsp;  $\underline{u} = (0, 0, 0)$&nbsp; leads to the code word&nbsp; $(0, 0, 0, 0, 0)$,&nbsp; but also&nbsp; $\underline{u} = (1, 1, 1)$.
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  
  
  
[[Category:Aufgaben zu  Kanalcodierung|^1.4 Allgemeine Beschreibung linearer Blockcodes
+
[[Category:Channel Coding: Exercises|^1.4 Linear Block Code Description^]]
 
 
^]]
 

Latest revision as of 18:57, 1 November 2022

Considered generator matrices

We now consider various binary codes of uniform length  $n$.  All codes of the form

$$\underline{x} \hspace{-0.15cm}\ = \ \hspace{-0.15cm} ( x_1,\ x_2, \ \text{...} \ \hspace{0.05cm},\ x_n) \hspace{0.5cm}\text{with} \hspace{0.5cm} x_i \hspace{-0.15cm}\ \in \ \hspace{-0.15cm} \{ 0,\ 1 \},\hspace{0.2cm} i = 1, \hspace{0.05cm} \text{...} \ \hspace{0.05cm}, n$$

can be represented and interpreted in an  $n$-dimensional vector space.   ⇒   ${\rm GF}(2^n)$.

The  $k×n$  generator matrix  $\mathbf{G}$  (matrix with  $k$  rows and  $n$  columns)  yields a  $(n, \, k)$  code,  but only if the rank of the matrix  $\mathbf{G}$  is also equal  $k$.  Further holds:

  • Each code  $\mathcal{C}$  spans a  $k$-dimensional linear subspace of the Galois field  ${\rm GF}(2^n)$.
  • As basis vectors of this subspace,  $k$  independent code words of  $\mathcal{C}$  can be used.  There is no further restriction for the basis vectors.
  • The parity-check matrix  $\mathbf{H}$  also spans a subspace of  ${\rm GF}(2^n)$.  But this has dimension  $m = n - k$  and is orthogonal to the subspace based on  $\mathbf{G}$.
  • For a linear code   ⇒   $\underline{x} = \underline{u} \cdot \boldsymbol{ {\rm G}}$,  where  $\underline{u} = (u_{1}, \, u_{2}, \, \text{...} \, , \, u_{k})$  indicates the information word.  A systematic code exists if  $x_{1} = u_{1}, \, \text{...} \, , \, x_{k} = u_{k}$  holds.
  • In a systematic code,  there is a simple relationship between  $\mathbf{G}$  and  $\mathbf{H}$.  For more details,  see the  "Theory Section".



Hints :

  • For the whole exercise holds  $n = 6$.
  • In the subtask  (4)  it is to be clarified which of the matrices  $\boldsymbol{ {\rm G}}_{\rm A}, \ \boldsymbol{ {\rm G}}_{\rm B}$ resp. $ \boldsymbol{ {\rm G}}_{\rm C}$  result in a  $(6, \, 3)$  block code with the code words listed below:
$$ ( 0, 0, 0, 0, 0, 0), \hspace{0.3cm}(0, 0, 1, 0, 1, 1), \hspace{0.3cm}(0, 1, 0, 1, 0, 1), \hspace{0.3cm}(0, 1, 1, 1, 1, 0), \hspace{0.3cm} ( 1, 0, 0, 1, 1, 0), \hspace{0.3cm}(1, 0, 1, 1, 0, 1), \hspace{0.3cm}(1, 1, 0, 0, 1, 1), \hspace{0.3cm}(1, 1, 1, 0, 0, 0)\hspace{0.05cm}.$$


Questions

1

Known are only the two code words  $(0, 1, 0, 1, 0, 1)$  and  $(1, 0, 0, 1, 1, 0)$  of a linear code.  Which statements are true?

It could be a  $(5, \, 2)$  code.
It could be a  $(6, \, 2)$  code.
It could be a  $(6, \, 3)$  code.

2

What are the four code words of the linear  $(6, \, 2)$  code explicitly?

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

3

Which statements are true for this  $(6, \, 2)$  code  $\mathcal{C}$?

For all code words  $(i = 1,\hspace{0.05cm} \text{ ...} \ , 4)$   ⇒   $\underline{x}_{i} \in {\rm GF}(2^6)$.
$\mathcal{C}$  is a two-dimensional linear subvector space of  ${\rm GF}(2^6)$.
$\mathbf{G}$  gives basis vectors of this subvector space  ${\rm GF}(2^2)$.
$\mathbf{G}$  and  $\mathbf{H}$  are each  $2×6$  matrices.

4

Which of the generator matrices given in the graphic result in a  $(6, \, 3)$  code?

The generator matrix  $\boldsymbol{ {\rm G}}_{\rm A}$,
the generator matrix  $\boldsymbol{ {\rm G}}_{\rm B}$,
the generator matrix  $\boldsymbol{ {\rm G}}_{\rm C}$.


Solution

(1)  Correct are the  suggested solutions 2 and 3:

  • The code word length is  $n = 6$   ⇒  the  $(5, \, 2)$  code is not eligible.
  • For a  $(6, \, 2)$  code,  there are  $2^2 = 4$  distinct code words,  and for the  $(6, \, 3)$  code,  there are correspondingly  $2^3 = 8$.
  • By specifying only two code words,  neither the  $(6, \, 2)$  code nor the  $(6, \, 3)$  code can be excluded.


(2)  Correct is the  solution suggestion 2:

  • Since this is a linear code,  the modulo 2 sum must also be a valid code word:
$$(0, 1, 0, 1, 0, 1) \oplus (1, 0, 0, 1, 1, 0) = (1, 1, 0, 0, 1, 1)\hspace{0.05cm}.$$
  • Likewise the all zero word:
$$(0, 1, 0, 1, 0, 1) \oplus (0, 1, 0, 1, 0, 1) = (0, 0, 0, 0, 0, 0)\hspace{0.05cm}.$$


(3)  Correct are here the  statements 1 to 3:

  • Basis vectors of the generator matrix  $\mathbf{G}$  are, for example,  the two given code words,  from which the parity-check matrix  $\mathbf{H}$  can also be determined:
$${ \boldsymbol{\rm G}}_{(6,\hspace{0.05cm} 2)} = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &0 &1 &0 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm H}}_{(6,\hspace{0.05cm} 2)} = \begin{pmatrix} 0 &0 &1 &0 &0 &0\\ 1 &1 &0 &1 &0 &0\\ 1 &0 &0 &0 &1 &0\\ 0 &1 &0 &0 &0 &1 \end{pmatrix}\hspace{0.05cm}.$$
  • In general,  the  $k$  basis vectors of the generator matrix  $\mathbf{G}$  form a  $k$-dimensional subspace and the  $m×n$  matrix  $\mathbf{H}$  $($with $m = n - k)$  forms an orthogonal subspace of dimension  $m$.


Note: The code given here

$$\mathcal{C}_{(6,\hspace{0.05cm} 2)} = \{ (0, 0, 0, 0, 0, 0), \hspace{0.3cm}(0, 1, 0, 1, 0, 1), \hspace{0.3cm} (1, 0, 0, 1, 1, 0), \hspace{0.3cm}(1, 1, 0, 0, 1, 1) \}$$

is not very effective,  since $p_{1} = x_{3}$  is always zero.  By puncturing this redundant bit you get the code

$$\mathcal{C}_{(5,\hspace{0.05cm} 2)} = \{ (0, 0, 0, 0, 0), \hspace{0.3cm}(0, 1, 1, 0, 1), \hspace{0.3cm} (1, 0, 1, 1, 0), \hspace{0.3cm}(1, 1, 0, 1, 1) \}$$

with the same minimum distance  $d_{\rm min} = 3$,  but larger code rate  $R = 2/5$  compared to  $R = 1/3$.


(4)  Correct are the  suggested solutions 1 and 2:

  • The three rows  $g_1, \ g_2$ and $g_3$  of the matrix  $\mathbf{G}_{\rm A}$  are suitable as basis vectors,  since they are linearly independent,  that is,  it holds
$$\underline{g}_1 \oplus \underline{g}_2 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_3\hspace{0.05cm},\hspace{0.5cm} \underline{g}_1 \oplus \underline{g}_3 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_2\hspace{0.05cm},\hspace{0.5cm} \underline{g}_2 \oplus \underline{g}_3 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_1\hspace{0.05cm}.$$
  • The same is true for matrix  $\mathbf{G}_{\rm B}$.  The basis vectors are chosen here so that the code is also systematic.
  • For the last generator matrix holds:  $\underline{g}_{1}⊕\underline{g}_{2} = \underline{g}_{3}$   ⇒   the rank of matrix  $(2)$  is smaller than its order  $(2)$.
  • Here not only  $\underline{u} = (0, 0, 0)$  leads to the code word  $(0, 0, 0, 0, 0)$,  but also  $\underline{u} = (1, 1, 1)$.