Aufgaben:Aufgabe 1.10: Einige Generatormatrizen: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
{{quiz-Header|Buchseite=Kanalcodierung/Allgemeine Beschreibung linearer Blockcodes
 
{{quiz-Header|Buchseite=Kanalcodierung/Allgemeine Beschreibung linearer Blockcodes
 +
}}
  
}}
+
[[Datei:P_ID2404__KC_A_1_10.png|right|frame|Betrachtete Generatormatrizen]]
 +
 
 +
Wir betrachten nun verschiedene Binärcodes einheitlicher Länge  $n$.  Alle Codes der Form
 +
:$$\underline{x} \hspace{-0.15cm}\ = \ \hspace{-0.15cm} ( x_1, x_2, \ \text{...} \  \hspace{0.05cm}, x_n) \hspace{0.5cm}\text{mit}
 +
\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$$
 +
 
 +
lassen sich in einem  $n$–dimensionalen Vektorraum darstellen und interpretieren   ⇒   ${\rm GF}(2^n)$.
 +
 
 +
Durch eine  $k×n$–Generatormatrix  $\mathbf{G}$  $($also eine Matrix mit  $k$  Zeilen und  $n$  Spalten$)$  ergibt sich ein  $(n, \, k)$–Code,  allerdings nur dann,  wenn der  "Rang"  $($englisch:   "Rank")  der Matrix  $\mathbf{G}$  ebenfalls gleich  $k$  ist.  Weiter gilt:
  
[[Datei:P_ID2404__KC_A_1_10.png|right|frame|Betrachtete 3&times6–Generatormatrizen]]
+
*Jeder Code  $\mathcal{C}$  spannt einen  $k$–dimensionalen linearen Untervektorraum des Galoisfelds  ${\rm GF}(2^n)$  auf.
  
Wir betrachten nun verschiedene Binärcodes einheitlicher Länge ''n''. Alle Codes der Form
+
*Als Basisvektoren dieses Untervektorraums können  $k$  unabhängige Codeworte von  $\mathcal{C}$  verwendet werden.  Eine weitere Einschränkung gibt es für die Basisvektoren nicht.
:$$\underline{x} \hspace{-0.15cm}\ = \ \hspace{-0.15cm} ( x_1, x_2, ... \hspace{0.05cm}, x_n) \hspace{0.05cm},$$
 
:$$ x_i \hspace{-0.15cm}\ \in \ \hspace{-0.15cm} \{ 0, 1 \},\hspace{0.2cm} i = 1, ... \hspace{0.05cm}, n$$
 
  
lassen sich in einem ''n''–dimensionalen Vektorraum darstellen und interpretieren ⇒ GF$(2^n)$.
+
*Die Prüfmatrix  $\mathbf{H}$  spannt ebenfalls einen Untervektorraum von  ${\rm GF}(2^n)$  auf.  Dieser hat aber die Dimension  $m = n - k$  und ist orthogonal zum Untervektorraum,  der auf  $\mathbf{G}$  basiert.
  
Durch eine $k×n$–Generatormatrix '''G''' (also eine Matrix mit ''k'' Zeilen und ''n'' Spalten) ergibt sich ein $(n, k)$–Code, allerdings nur dann, wenn der Rang (englisch: ''Rank'') der Matrix '''G''' ebenfalls gleich ''k'' ist. Weiter gilt:
+
*Bei einem linearen Code gilt  $\underline{x} = \underline{u} · \boldsymbol{ {\rm G}}$,  wobei  $\underline{u} = (u_{1}, \, u_{2}, \, \text{...} \, , \, u_{k})$  das Informationswort angibt.  Ein systematischer Code liegt vor,  wenn  $x_{1} = u_{1}, \, \text{...} \, , \, x_{k} = u_{k}$  gilt.
  
*Jeder Code ''C'' spannt einen ''k''–dimensionalen linearen Untervektorraum des Galoisfeldes GF($2^n$) auf.
+
*Bei einem systematischen Code besteht ein einfacher Zusammenhang zwischen  $\mathbf{G}$  und  $\mathbf{H}$.  Nähere Angaben hierzu finden Sie im  [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes#Systematische_Codes|"Theorieteil"]].
  
*Als Basisvektoren dieses Untervektorraums können ''k'' unabhängige Codeworte von ''C'' verwendet werden. Eine weitere Einschränkung gibt es für die Basisvektoren nicht.
 
  
*Die Prüfmatrix '''H''' spannt ebenfalls einen Untervektorraum von GF$(2^n)$ auf. Dieser hat aber die Dimension $m = n – k$ und ist orthogonal zum Untervektorraum, der auf '''G''' basiert.
 
  
*Bei einem linearen Code gilt $ \underline{x} = \underline{u} · \boldsymbol{ {\rm G}} $, wobei $\underline{u} = (u_{1}, u_{2}, ... , u_{k})$ das Informationswort angibt. Ein systematischer Code liegt vor, wenn $x_{1} = u_{1}, ... , x_{k} = u_{k}$ gilt.
 
  
*Bei einem systematischen Code besteht ein einfacher Zusammenhang zwischen '''G''' und '''H'''. Nähere Angaben hierzu finden Sie im [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes#Systematische_Codes|Theorieteil]].
+
Hinweise:
  
 +
*Die Aufgabe gehört zum Kapitel  [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes|"Allgemeine Beschreibung linearer Blockcodes"]].
  
''Hinweis: ''
+
* Für die gesamte Aufgabe gilt  $n = 6$.
 +
 +
*In der Teilaufgabe  '''(4)'''  soll geklärt werden,  welche der Matrizen  $\boldsymbol{ {\rm G}}_{\rm A}, \ \boldsymbol{ {\rm G}}_{\rm B}$ bzw. $ \boldsymbol{ {\rm G}}_{\rm C}$  zu einem $(6, \, 3)$–Blockcode mit den nachfolgend aufgeführten Codeworten führen:
  
 +
:$$  (  0, 0, 0, 0, 0, 0), \hspace{0.1cm}(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}.$$
  
Die Aufgabe bezieht sich auf das Kapitel [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes|Allgemeine Beschreibung linearer
 
Blockcodes]]. Für die gesamte Aufgabe gilt n = 6. In der Teilaufgabe (4) soll geklärt werden, welche der Matrizen $\boldsymbol{ {\rm G}}_{\rm A}, \boldsymbol{ {\rm G}}_{\rm B}$ bzw. $ \boldsymbol{ {\rm G}}_{\rm C}$ zu einem (6, 3)–Blockcode mit den nachfolgend aufgeführten Codeworten führen:
 
  
:$$  \mathcal{C}_{(6,\hspace{0.05cm} 3)} = \{ \ (  0, 0, 0, 0, 0, 0), \hspace{0.1cm}(0, 0, 1, 0, 1, 1), \hspace{0.1cm}(0, 1, 0, 1, 0, 1), \hspace{0.1cm}(0, 1, 1, 1, 1, 0), \\ \hspace{2cm} (  1, 0, 0, 1, 1, 0), \hspace{0.1cm}(1, 0, 1, 1, 0, 1), \hspace{0.1cm}(1, 1, 0, 0, 1, 1), \hspace{0.1cm}(1, 1, 1, 0, 0, 0) \}\hspace{0.05cm}.$$
 
  
 
===Fragebogen===
 
===Fragebogen===
 
 
<quiz display=simple>
 
<quiz display=simple>
{Bekannt sind nur die zwei Codeworte $(0, 1, 0, 1, 0, 1)$ und $(1, 0, 0, 1, 1, 0)$ eines linearen Codes. Welche Aussagen sind zutreffend?
+
{Bekannt sind nur die zwei Codeworte&nbsp; $(0, 1, 0, 1, 0, 1)$&nbsp; und&nbsp; $(1, 0, 0, 1, 1, 0)$&nbsp; eines linearen Codes.&nbsp; Welche Aussagen sind zutreffend?
 
|type="[]"}
 
|type="[]"}
- Es könnte sich um einen (5, 2)–Code handeln.
+
- Es könnte sich um einen&nbsp; $(5, \, 2)$–Code handeln.
+ Es könnte sich um einen (6, 2)–Code handeln.
+
+ Es könnte sich um einen&nbsp; $(6, \, 2)$–Code handeln.
+ Es könnte sich um einen (6, 3)–Code handeln.
+
+ Es könnte sich um einen&nbsp; $(6, \, 3)$–Code handeln.
  
  
{Wie lauten die Codeworte des linearen (6, 2)–Codes explizit?
+
{Wie lauten die vier Codeworte des linearen&nbsp; $(6, \, 2)$–Codes explizit?
 
|type="[]"}  
 
|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 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 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).$
+
- $(0 0 0 0 0 0), \ (0 1 0 1 0 1), \ (1 0 0 1 1 0), \ (1 1 1 0 0 0).$
  
  
{Welche Aussagen gelten für diesen (6, 2)–Code ''C''?
+
{Welche Aussagen gelten für diesen&nbsp; $(6, \, 2)$–Code&nbsp; $C$?
 
|type="[]"}
 
|type="[]"}
+ Für alle Codeworte $(i = 1, ... , 4)$ gilt $\underline{x}_{i} \in {\rm GF}(2^6)$.
+
+ Für alle Codeworte&nbsp; $(i = 1,\hspace{0.05cm} \text{ ...} \  , 4)$&nbsp; gilt&nbsp; $\underline{x}_{i} \in {\rm GF}(2^6)$.
+ ''C'' ist ein 2–dimensionaler linearer Untervektorraum von GF$(2^6)$.
+
+ $C$&nbsp; ist ein zweidimensionaler linearer Untervektorraum von&nbsp; ${\rm GF}(2^6)$.
+ '''G''' gibt Basisvektoren dieses Untervektorraumes GF$(2^2)$ an.
+
+ $\mathbf{G}$&nbsp; gibt Basisvektoren dieses Untervektorraumes&nbsp; ${\rm GF} (2^2)$&nbsp; an.
- '''G''' und '''H''' sind jeweils 2×6–Matrizen.
+
- $\mathbf{G}$&nbsp; und&nbsp; $\mathbf{H}$&nbsp; sind jeweils&nbsp; $2×6$–Matrizen.
  
  
{Welche der Generatormatrizen (siehe Grafik) führen zu einem (6, 3)–Code?
+
{Welche der in der Grafik angegebenen Generatormatrizen führen zu einem&nbsp; $(6, \, 3)$–Code?
 
|type="[]"}
 
|type="[]"}
+ Generatormatrix $\boldsymbol{ {\rm G}}_{\rm A}$,
+
+ Die Generatormatrix&nbsp; $\boldsymbol{ {\rm G}}_{\rm A}$,
+ Generatormatrix $\boldsymbol{ {\rm G}}_{\rm B}$,
+
+ die Generatormatrix&nbsp; $\boldsymbol{ {\rm G}}_{\rm B}$,
- Generatormatrix $\boldsymbol{ {\rm G}}_{\rm C}$.
+
- die Generatormatrix&nbsp; $\boldsymbol{ {\rm G}}_{\rm C}$.
  
  
Zeile 71: Zeile 75:
 
===Musterlösung===
 
===Musterlösung===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
'''(1)'''&nbsp; Die Codewortlänge ist $n = $6  ⇒  der (5, 2)–Code kommt nicht in Frage. Bei einem (6, 2)–Code gibt es $2^2 = 4$ verschiedene Codeworte und beim (6, 3)–Code entsprechend $2^3 = 8$. Durch die Angabe von zwei Codeworten lässt sich weder der (6, 2)noch der (6, 3)–Code ausschließen ⇒  <u>Antwort 2 und 3</u>.
+
'''(1)'''&nbsp; Richtig sind die&nbsp;  <u>Lösungsvorschläge 2 und 3</u>:
 +
*Die Codewortlänge ist&nbsp; $n = $6  &nbsp; ⇒  &nbsp; der&nbsp; $(5, \, 2)$–Code kommt nicht in Frage.
 +
 +
*Bei einem&nbsp; $(6, \, 2)$–Code gibt es&nbsp; $2^2 = 4$&nbsp; verschiedene Codeworte und beim&nbsp; $(6, \, 3)$–Code entsprechend&nbsp; $2^3 = 8$.
 +
 +
*Durch die Angabe von nur zwei Codeworten lässt sich weder der&nbsp; $(6, \, 2)$–Code noch der&nbsp; $(6, \, 3)$–Code ausschließen.
  
  
  
'''(2)'''&nbsp;  Da es sich um einen linearen Code handelt, muss die Modulo–2–Summe
+
'''(2)'''&nbsp;  Richtig ist der&nbsp;  <u>Lösungsvorschlag 2</u>:
:$$(0, 1, 0, 1, 0, 1) \oplus (1, 0, 0, 1, 1, 0) = (1, 1, 0, 0, 1, 1)$$
+
*Da es sich um einen linearen Code handelt,&nbsp; muss die Modulo–$2$–Summe ebenfalls ein gültiges Codewort sein:
ebenfalls ein gültiges Codewort sein. Ebenso das Nullwort:
+
:$$(0, 1, 0, 1, 0, 1) \oplus (1, 0, 0, 1, 1, 0) = (1, 1, 0, 0, 1, 1)\hspace{0.05cm}.$$
 +
*Ebenso das Nullwort:
 
:$$(0, 1, 0, 1, 0, 1) \oplus (0, 1, 0, 1, 0, 1) = (0, 0, 0, 0, 0, 0)\hspace{0.05cm}.$$
 
:$$(0, 1, 0, 1, 0, 1) \oplus (0, 1, 0, 1, 0, 1) = (0, 0, 0, 0, 0, 0)\hspace{0.05cm}.$$
Richtig ist somit <u>Antwort 2</u>.
 
  
  
  
'''(3)'''&nbsp; Richtig sind hier die <u>Aussagen 1 bis 3</u>. Basisvektoren der Generatormatrix '''G''' sind beispielsweise die beiden gegebenen Codeworte, woraus sich auch die Prüfmatrix '''H''' bestimmen lässt:
+
'''(3)'''&nbsp; Richtig sind hier die&nbsp; <u>Aussagen 1 bis 3</u>:
 +
*Basisvektoren der Generatormatrix&nbsp; $\mathbf{G}$&nbsp; sind zum Beispiel die zwei gegebenen Codeworte,&nbsp; woraus sich auch die Prüfmatrix&nbsp; $\mathbf{H}$&nbsp; bestimmen lässt:
 
:$${ \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}.$$
 
:$${ \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}.$$
 +
*Allgemein wird durch die&nbsp; $k$&nbsp; Basisvektoren der Generatormatrix&nbsp; $\mathbf{G}$&nbsp; ein&nbsp; $k$–dimensionaler Untervektorraum aufgespannt und durch die&nbsp; $m×n$–Matrix&nbsp; $\mathbf{H}$&nbsp; (mit&nbsp; $m = n - k)$&nbsp; ein hierzu orthogonaler Untervektorraum der Dimension&nbsp; $m$.
 +
 +
 +
<u>Anmerkung:</u> &nbsp; Der hier angegebene Code
 +
:$$\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) \}$$
  
Allgemein wird durch die ''k'' Basisvektoren der Generatormatrix '''G''' ein ''k''–dimensionaler Untervektorraum aufgespannt und durch die $m×n$–Matrix '''H''' (mit $m = n – k$) ein hierzu orthogonaler Untervektorraum der Dimension ''m''.
+
ist nicht sonderlich effektiv,&nbsp; da&nbsp; $p_{1} = x_{3}$&nbsp; stets&nbsp; $0$&nbsp; ist.&nbsp; Durch Punktierung dieses redundanten Bits kommt man zum Code
<u>Anmerkung:</u> Der hier angegebene
+
:$$\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) \}$$
:$$\mathcal{C}_{(6,\hspace{0.05cm} 2)} = \{ (0, 0, 0, 0, 0, 0), \hspace{0.1cm}(0, 1, 0, 1, 0, 1), (1, 0, 0, 1, 1, 0), \hspace{0.1cm}(1, 1, 0, 0, 1, 1) \}$$
 
  
ist nicht sonderlich effektiv, da $p_{1} = x_{3}$ stets 0 ist. Durch Punktierung kommt man zum Code
+
mit gleicher Minimaldistanz&nbsp; $d_{\rm min} = 3$,&nbsp; aber größerer Coderate&nbsp; $R = 2/5$&nbsp; gegenüber&nbsp; $R = 1/3$.
:$$\mathcal{C}_{(5,\hspace{0.05cm} 2)} = \{ (0, 0, 0, 0, 0), \hspace{0.1cm}(0, 1, 1, 0, 1), (1, 0, 1, 1, 0), \hspace{0.1cm}(1, 1, 0, 1, 1) \}$$
 
  
mit gleicher Minimaldistanz $d_{\rm min} = 3$, aber größerer Coderate $R = 2/5$ gegenüber $R = 1/3$.
 
  
'''(4)'''&nbsp; [[Datei:P_ID2405__KC_A_1_10d_neu.png|right|frame|Codes gemäß <b>G</b><sub>A</sub>, <b>G</b><sub>B</sub>, <b>G</b><sub>C</sub>]]
 
Die drei Zeilen $g_{1}, g_{2} {\rm und} g_{3}$ der Matrix $\boldsymbol{ {\rm G}}_{\rm A}$ sind als Basisvektoren geeignet, da sie linear unabhängig sind, das heißt, es gilt
 
:$$\underline{g}_1 \oplus \underline{g}_2 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_3\hspace{0.05cm},\\ \underline{g}_1 \oplus \underline{g}_3 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_2\hspace{0.05cm},\\ \underline{g}_2 \oplus \underline{g}_3 \hspace{-0.15cm} \ \ne \ \hspace{-0.15cm} \underline{g}_1\hspace{0.05cm}.$$
 
  
Gleiches gilt für Matrix $\boldsymbol{ {\rm G}}_{\rm B}$. Die Basisvektoren sind hier so gewählt, dass der Code auch systematisch ist.
+
'''(4)'''&nbsp;  Richtig sind die&nbsp; <u>Lösungsvorschläge 1 und 2</u>:
 +
*Die drei Zeilen&nbsp; $g_1, \ g_2$ und $g_3$&nbsp; der Matrix&nbsp; $\mathbf{G}_{\rm A}$&nbsp; sind als Basisvektoren geeignet,&nbsp; da sie linear unabhängig sind,&nbsp; das heißt,&nbsp; es gilt
 +
:$$\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}.$$
  
Für die letzte Generatormatrix gilt: $\underline{g}_{1}⊕\underline{g}_{2} = \underline{g}_{3}$ ⇒ der Rang der Matrix (2) ist kleiner als deren Ordnung (3). Hier führt nicht nur $\underline{u} = (0, 0, 0)$ zum Codewort $(0, 0, 0, 0, 0, 0)$, sondern auch $\underline{u} = (1, 1, 1)$. Richtig sind die <u>Lösungsvorschläge 1 und 2</u>.
+
*Gleiches gilt für Matrix&nbsp; $\mathbf{G}_{\rm B}$.&nbsp; Die Basisvektoren sind hier so gewählt,&nbsp; dass der Code auch systematisch ist.
  
 +
*Für die letzte Generatormatrix gilt:&nbsp; $\underline{g}_{1}⊕\underline{g}_{2} = \underline{g}_{3}$ &nbsp; ⇒ &nbsp; der Rang der Matrix&nbsp; $(2)$&nbsp; ist kleiner als deren Ordnung&nbsp; $(3)$.
  
 +
*Hier führt nicht nur&nbsp; $\underline{u} = (0, 0, 0)$&nbsp; zum Codewort&nbsp; $(0, 0, 0, 0, 0, 0)$,&nbsp; sondern auch&nbsp; $\underline{u} = (1, 1, 1)$.
  
 
{{ML-Fuß}}
 
{{ML-Fuß}}
Zeile 109: Zeile 124:
  
  
[[Category:Aufgaben zu  Kanalcodierung|^1.4 Beschreibung linearer Blockcodes
+
[[Category:Aufgaben zu  Kanalcodierung|^1.4 Beschreibung linearer Blockcodes^]]
 
 
^]]
 

Aktuelle Version vom 12. Juli 2022, 11:54 Uhr

Betrachtete Generatormatrizen

Wir betrachten nun verschiedene Binärcodes einheitlicher Länge  $n$.  Alle Codes der Form

$$\underline{x} \hspace{-0.15cm}\ = \ \hspace{-0.15cm} ( x_1, x_2, \ \text{...} \ \hspace{0.05cm}, x_n) \hspace{0.5cm}\text{mit} \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$$

lassen sich in einem  $n$–dimensionalen Vektorraum darstellen und interpretieren   ⇒   ${\rm GF}(2^n)$.

Durch eine  $k×n$–Generatormatrix  $\mathbf{G}$  $($also eine Matrix mit  $k$  Zeilen und  $n$  Spalten$)$  ergibt sich ein  $(n, \, k)$–Code,  allerdings nur dann,  wenn der  "Rang"  $($englisch:   "Rank")  der Matrix  $\mathbf{G}$  ebenfalls gleich  $k$  ist.  Weiter gilt:

  • Jeder Code  $\mathcal{C}$  spannt einen  $k$–dimensionalen linearen Untervektorraum des Galoisfelds  ${\rm GF}(2^n)$  auf.
  • Als Basisvektoren dieses Untervektorraums können  $k$  unabhängige Codeworte von  $\mathcal{C}$  verwendet werden.  Eine weitere Einschränkung gibt es für die Basisvektoren nicht.
  • Die Prüfmatrix  $\mathbf{H}$  spannt ebenfalls einen Untervektorraum von  ${\rm GF}(2^n)$  auf.  Dieser hat aber die Dimension  $m = n - k$  und ist orthogonal zum Untervektorraum,  der auf  $\mathbf{G}$  basiert.
  • Bei einem linearen Code gilt  $\underline{x} = \underline{u} · \boldsymbol{ {\rm G}}$,  wobei  $\underline{u} = (u_{1}, \, u_{2}, \, \text{...} \, , \, u_{k})$  das Informationswort angibt.  Ein systematischer Code liegt vor,  wenn  $x_{1} = u_{1}, \, \text{...} \, , \, x_{k} = u_{k}$  gilt.
  • Bei einem systematischen Code besteht ein einfacher Zusammenhang zwischen  $\mathbf{G}$  und  $\mathbf{H}$.  Nähere Angaben hierzu finden Sie im  "Theorieteil".



Hinweise:

  • Für die gesamte Aufgabe gilt  $n = 6$.
  • In der Teilaufgabe  (4)  soll geklärt werden,  welche der Matrizen  $\boldsymbol{ {\rm G}}_{\rm A}, \ \boldsymbol{ {\rm G}}_{\rm B}$ bzw. $ \boldsymbol{ {\rm G}}_{\rm C}$  zu einem $(6, \, 3)$–Blockcode mit den nachfolgend aufgeführten Codeworten führen:
$$ ( 0, 0, 0, 0, 0, 0), \hspace{0.1cm}(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

1

Bekannt sind nur die zwei Codeworte  $(0, 1, 0, 1, 0, 1)$  und  $(1, 0, 0, 1, 1, 0)$  eines linearen Codes.  Welche Aussagen sind zutreffend?

Es könnte sich um einen  $(5, \, 2)$–Code handeln.
Es könnte sich um einen  $(6, \, 2)$–Code handeln.
Es könnte sich um einen  $(6, \, 3)$–Code handeln.

2

Wie lauten die vier Codeworte des linearen  $(6, \, 2)$–Codes explizit?

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

Welche Aussagen gelten für diesen  $(6, \, 2)$–Code  $C$?

Für alle Codeworte  $(i = 1,\hspace{0.05cm} \text{ ...} \ , 4)$  gilt  $\underline{x}_{i} \in {\rm GF}(2^6)$.
$C$  ist ein zweidimensionaler linearer Untervektorraum von  ${\rm GF}(2^6)$.
$\mathbf{G}$  gibt Basisvektoren dieses Untervektorraumes  ${\rm GF} (2^2)$  an.
$\mathbf{G}$  und  $\mathbf{H}$  sind jeweils  $2×6$–Matrizen.

4

Welche der in der Grafik angegebenen Generatormatrizen führen zu einem  $(6, \, 3)$–Code?

Die Generatormatrix  $\boldsymbol{ {\rm G}}_{\rm A}$,
die Generatormatrix  $\boldsymbol{ {\rm G}}_{\rm B}$,
die Generatormatrix  $\boldsymbol{ {\rm G}}_{\rm C}$.


Musterlösung

(1)  Richtig sind die  Lösungsvorschläge 2 und 3:

  • Die Codewortlänge ist  $n = $6   ⇒   der  $(5, \, 2)$–Code kommt nicht in Frage.
  • Bei einem  $(6, \, 2)$–Code gibt es  $2^2 = 4$  verschiedene Codeworte und beim  $(6, \, 3)$–Code entsprechend  $2^3 = 8$.
  • Durch die Angabe von nur zwei Codeworten lässt sich weder der  $(6, \, 2)$–Code noch der  $(6, \, 3)$–Code ausschließen.


(2)  Richtig ist der  Lösungsvorschlag 2:

  • Da es sich um einen linearen Code handelt,  muss die Modulo–$2$–Summe ebenfalls ein gültiges Codewort sein:
$$(0, 1, 0, 1, 0, 1) \oplus (1, 0, 0, 1, 1, 0) = (1, 1, 0, 0, 1, 1)\hspace{0.05cm}.$$
  • Ebenso das Nullwort:
$$(0, 1, 0, 1, 0, 1) \oplus (0, 1, 0, 1, 0, 1) = (0, 0, 0, 0, 0, 0)\hspace{0.05cm}.$$


(3)  Richtig sind hier die  Aussagen 1 bis 3:

  • Basisvektoren der Generatormatrix  $\mathbf{G}$  sind zum Beispiel die zwei gegebenen Codeworte,  woraus sich auch die Prüfmatrix  $\mathbf{H}$  bestimmen lässt:
$${ \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}.$$
  • Allgemein wird durch die  $k$  Basisvektoren der Generatormatrix  $\mathbf{G}$  ein  $k$–dimensionaler Untervektorraum aufgespannt und durch die  $m×n$–Matrix  $\mathbf{H}$  (mit  $m = n - k)$  ein hierzu orthogonaler Untervektorraum der Dimension  $m$.


Anmerkung:   Der hier angegebene Code

$$\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) \}$$

ist nicht sonderlich effektiv,  da  $p_{1} = x_{3}$  stets  $0$  ist.  Durch Punktierung dieses redundanten Bits kommt man zum 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) \}$$

mit gleicher Minimaldistanz  $d_{\rm min} = 3$,  aber größerer Coderate  $R = 2/5$  gegenüber  $R = 1/3$.


(4)  Richtig sind die  Lösungsvorschläge 1 und 2:

  • Die drei Zeilen  $g_1, \ g_2$ und $g_3$  der Matrix  $\mathbf{G}_{\rm A}$  sind als Basisvektoren geeignet,  da sie linear unabhängig sind,  das heißt,  es gilt
$$\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}.$$
  • Gleiches gilt für Matrix  $\mathbf{G}_{\rm B}$.  Die Basisvektoren sind hier so gewählt,  dass der Code auch systematisch ist.
  • Für die letzte Generatormatrix gilt:  $\underline{g}_{1}⊕\underline{g}_{2} = \underline{g}_{3}$   ⇒   der Rang der Matrix  $(2)$  ist kleiner als deren Ordnung  $(3)$.
  • Hier führt nicht nur  $\underline{u} = (0, 0, 0)$  zum Codewort  $(0, 0, 0, 0, 0, 0)$,  sondern auch  $\underline{u} = (1, 1, 1)$.