Aufgaben:Aufgabe 1.08: Identische Codes: Unterschied zwischen den Versionen
Wael (Diskussion | Beiträge) Die Seite wurde neu angelegt: „{{quiz-Header|Buchseite=Kanalcodierung/Allgemeine Beschreibung linearer Blockcodes }} [[Datei:|right|]] ===Fragebogen=== <quiz display=simple> {Multiple-C…“ |
Add English interlanguage link |
||
| (14 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
}} | }} | ||
[[Datei:|right|]] | [[Datei:P_ID2393__KC_A_1_8_neu.png|right|frame|Zuordnung des $(6, 3)$–Blockcodes]] | ||
Wir betrachten einen Blockcode $\mathcal{C}$, der durch folgende Generatormatrix beschrieben wird: | |||
:$${ \boldsymbol{\rm G}} = \begin{pmatrix} 0 &0 &1 &0 &1 &1\\ 1 &0 &0 &1 &1 &0\\ 0 &1 &1 &1 &1 &0 \end{pmatrix} \hspace{0.05cm}.$$ | |||
Die Zuordnung zwischen den Informationsworten $\underline{u}$ und den Codeworten $\underline{x}$ kann der Tabelle entnommen werden. Man erkennt, dass es sich dabei nicht um einen systematischen Code handelt. | |||
Durch Manipulation der Generatormatrix $\boldsymbol {\rm G}$ lassen sich daraus identische Codes konstruieren. Darunter versteht man Codes mit gleichen Codeworten, jedoch unterschiedlicher Zuordnung $\underline{u} \rightarrow \underline{x}$. | |||
Folgende Operationen sind erlaubt, um einen identischen Code zu erhalten: | |||
*Vertauschen oder Permutieren der Zeilen, | |||
*Multiplizieren aller Zeilen mit einem konstanten Vektor ungleich "$\underline{0}$", | |||
*Ersetzen einer Zeile durch eine Linearkombination zwischen dieser Zeile und einer anderen. | |||
Für den in der Teilaufgabe '''(3)''' gesuchten Code $\mathcal{C}_{\rm sys}$ mit Generatormatrix $\boldsymbol{\rm G}_{\rm sys}$ wird weiter gefordert, dass er systematisch ist. | |||
Hinweise: | |||
*Die Aufgabe gehört zum Kapitel [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes|"Allgemeine Beschreibung linearer Blockcodes"]]. | |||
*Bezug genommen wird insbesondere auf die Seite [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes#Systematische_Codes|"Systematische Codes"]]. | |||
*Bezug genommen wird zudem auf die so genannte "Singleton–Schranke":& | |||
*Diese besagt, dass die minimale Hamming–Distanz eines $(n, k)$–Blockcodes nach oben beschränkt ist: $d_{\rm min} \le n - k +1.$ | |||
| Zeile 9: | Zeile 45: | ||
<quiz display=simple> | <quiz display=simple> | ||
{ | {Geben Sie die Kenngrößen des gegebenen Codes $\mathcal{C}$ an. | ||
|type="{}"} | |||
$n \hspace{0.3cm} = \ $ { 6 } | |||
$k \hspace{0.3cm} = \ $ { 3 } | |||
$m \hspace{0.15cm} = \ $ { 3 } | |||
$R \hspace{0.2cm} = \ ${ 0.5 3% } | |||
$|\hspace{0.05cm}\mathcal{C}\hspace{0.05cm}| \hspace{-0.05cm} = \ ${ 8 } | |||
$d_{\rm min} \hspace{0.01cm} = \ $ { 3 } | |||
{Gibt es einen $(6, 3)$–Blockcode mit größerer Minimaldistanz? | |||
|type="()"} | |||
+ Ja. | |||
- Nein. | |||
{Wie lautet die Generatormatrix ${\boldsymbol{\rm G}}_{\rm sys}$ des identischen systematischen Codes? | |||
|type="[]"} | |||
- Die 1. Zeile lautet „$1 \ 0 \ 1 \ 1 \ 0 \ 1$”. | |||
+ Die 2. Zeile lautet „$0 \ 1 \ 0 \ 1 \ 0 \ 1$”. | |||
+ Die 3. Zeile lautet „$0 \ 0 \ 1 \ 0 \ 1 \ 1$”. | |||
{Welche Zuordnungen ergeben sich bei dieser Codierung? | |||
|type="[]"} | |type="[]"} | ||
+ $\underline{u} = (0, 0, 0) \ \Rightarrow \ \underline{x}_{\rm sys} = (0, 0, 0, 0, 0, 0)$. | |||
+ | + $\underline{u} = (0, 0, 1) \ \Rightarrow \ \underline{x}_{\rm sys}= (0, 0, 1, 0, 0, 1)$. | ||
- $\underline{u} = (0, 1, 0) \ \Rightarrow \ \underline{x}_{\rm sys} = (0, 1, 0, 1, 1, 0)$. | |||
{ | {Welche Prüfbits hat der systematische Code $\underline{x}_{\rm sys} = (u_{1},\ u_{2},\ u_{3},\ p_{1},\ p_{2},\ p_{3})$? | ||
|type="{} | |type="[]"} | ||
$\ | +$p_{1} = u_{1} \oplus u_{2},$ | ||
-$p_{2} = u_{2} \oplus u_{3},$ | |||
-$p_{3} = u_{1} \oplus u_{3}.$ | |||
| Zeile 25: | Zeile 84: | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
'''1 | '''(1)''' Der vorgegebene Code $\mathcal{C}$ wird durch folgende Kenngrößen charakterisiert: | ||
'''2 | *Bitanzahl der Codeworte: $\underline{n = 6}$, | ||
'''3 | |||
''' | *Bitanzahl der Informationsworte: $\underline{k = 3}$, | ||
''' | |||
''' | *Anzahl der Prüfbitgleichungen: $\underline{m = n - k = 3}$, | ||
*Coderate: $R = k/n = 3/6 \Rightarrow \underline{R = 0.5}$, | |||
*Anzahl der Codeworte (Codeumfang): $|\mathcal{C}| = 2^k \Rightarrow \underline{|C| = 8}$, | |||
*minimale Hamming–Distanz (siehe Tabelle): $\underline{d}_{\rm min} \underline{= 3}$. | |||
'''(2)''' Richtig ist $\underline{\rm JA}$: | |||
*Nach der Singleton–Schranke gilt $d_{\rm min} ≤ n - k + 1$. Mit $n = 6$ und $k = 3$ erhält man hierfür $d_{\rm min} ≤ 4$. | |||
*Es kann also durchaus ein $(6, 3)$–Blockcode mit größerer Minimaldistanz konstruiert werden. Wie ein solcher Code aussieht, wurde freundlicherweise nicht gefragt. | |||
Die Minimaldistanz aller Hamming–Codes ist $d_{\rm min} = 3$, und nur der Sonderfall mit $n = 3$ und $k = 1$ erreicht den Grenzwert. Dagegen erreichen das Maximum entsprechend der Singleton–Schranke: | |||
*alle [[Kanalcodierung/Beispiele_binärer_Blockcodes#Wiederholungscodes|Wiederholungscodes]] $($Repetition Codes, $\rm RC)$ wegen $k = 1$ und $d_{\rm min} = n$; hierzu gehört auch der $\rm (3, 1)$–Hamming–Code, der ja bekannterweise identisch ist mit dem $\text{RC (3, 1)}$, | |||
*alle [[Kanalcodierung/Beispiele_binärer_Blockcodes#Single_Parity.E2.80.93check_Codes|Single Parity–check Codes]] $\rm (SPC)$: $k = n - 1, d_{\rm min} = 2$. | |||
'''(3)''' Richtig sind die <u>Lösungsvorschläge 2 und 3</u>: | |||
*Vertauscht man Zeilen der Generatormatrix $\boldsymbol {\rm G}$, so kommt man zu einem identischen Code $\mathcal{C}'$. Das heißt: $\mathcal{C}$ und $\mathcal{C}'$ beinhalten die genau gleichen Codeworte. | |||
*Beispielsweise erhält man nach zyklischem Zeilentausch $2 \rightarrow 1,\ 3 \rightarrow 2$ und $1 \rightarrow 3$ die neue Matrix | |||
:$${ \boldsymbol{\rm G}}' = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &1 &1 &1 &0\\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$ | |||
*Die erste und die letzte Zeile der neuen Matrix entsprechen schon den Vorgaben eines systematischen Codes, nämlich, dass deren Generatormatrix ${ \boldsymbol{\rm G}_{\rm sys}}$ mit einer Diagonalmatrix beginnen muss. | |||
*Ersetzt man die Zeile 2 durch die Modulo–2–Summe von Zeile 2 und 3, so erhält man: | |||
:$${ \boldsymbol{\rm G}}_{\rm sys} = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &0 &1 &0 &1\\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$ | |||
*Dieser systematische Code beinhaltet genau die gleichen Codeworte wie die Codes $\mathcal{C}$ und $\mathcal{C}'$. | |||
'''(4)''' Richtig sind die <u>Lösungsvorschläge 1 und 2</u>: | |||
*Wendet man die Gleichung $\underline{x}_{\rm sys} = \underline{u} \cdot \boldsymbol{\rm G}_{\rm sys}$ auf obige Beispiele an, so erkennt man, dass die beiden ersten Aussagen richtig sind, nicht aber die letzte. | |||
*Ohne Rechnung kommt man zum gleichen Ergebnis, wenn man berücksichtigt, dass | |||
:*das systematische Codewort $\underline{x}_{\rm sys}$ mit $\underline{u}$ beginnen muss, | |||
:*der Code $\mathcal{C}_{\rm sys}$ die gleichen Codeworte beinhaltet wie der vorgegebene Code $\mathcal{C}$. | |||
*Für $\underline{u} = (0, 1, 0)$ lautet somit das Codewort $(0, 1, 0, ?, ?, ?)$. | |||
*Ein Vergleich mit der Codetabelle von $\mathcal{C}$ auf der Angabenseite führt zu $\underline{x}_{\rm sys} = (0, 1, 0, 1, 0, 1)$. | |||
'''(5)''' Richtig ist nur die <u>Aussage 1</u>. Die Angaben für $p_{2}$ und $p_{3}$ sind dagegen genau vertauscht. | |||
*Bei systematischer Codierung besteht folgender Zusammenhang zwischen Generator– und Prüfmatrix: | |||
:$${ \boldsymbol{\rm G}} =\left({ \boldsymbol{\rm I}}_k \: ; \:{ \boldsymbol{\rm P}} \right) \hspace{0.3cm}\Leftrightarrow \hspace{0.3cm} { \boldsymbol{\rm H}} =\left({ \boldsymbol{\rm P}}^{\rm T}\: ; \:{ \boldsymbol{\rm I}}_m \right) \hspace{0.05cm}.$$ | |||
[[Datei:P_ID2395__KC_A_1_8_ML.png|right|frame|Schaubild der Prüfgleichungen]] | |||
*Angewendet auf das aktuelle Beispiel erhält man so: | |||
:$${ \boldsymbol{\rm G}}_{\rm sys} = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &0 &1 &0 &1\\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm H}}_{\rm sys} = \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}.$$ | |||
*Daraus ergeben sich Prüfgleichungen (siehe Grafik): | |||
:$$u_1 \oplus u_2 \oplus p_1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm}0 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} p_1 = u_1 \oplus u_2 \hspace{0.05cm},$$ | |||
:$$ u_1 \oplus u_3 \oplus p_2 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} 0 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} p_2 = u_1 \oplus u_3 \hspace{0.05cm},$$ | |||
:$$ u_2 \oplus u_3 \oplus p_3 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} 0 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} p_3 = u_2 \oplus u_3 \hspace{0.05cm}.$$ | |||
{{ML-Fuß}} | {{ML-Fuß}} | ||
[[Category:Aufgaben zu Kanalcodierung|^1.4 | [[Category:Aufgaben zu Kanalcodierung|^1.4 Beschreibung linearer Blockcodes | ||
^]] | ^]] | ||
[[en:Aufgaben:Exercise_1.08:_Identical_Codes]] | |||
Aktuelle Version vom 16. März 2026, 14:34 Uhr

Wir betrachten einen Blockcode $\mathcal{C}$, der durch folgende Generatormatrix beschrieben wird:
- $${ \boldsymbol{\rm G}} = \begin{pmatrix} 0 &0 &1 &0 &1 &1\\ 1 &0 &0 &1 &1 &0\\ 0 &1 &1 &1 &1 &0 \end{pmatrix} \hspace{0.05cm}.$$
Die Zuordnung zwischen den Informationsworten $\underline{u}$ und den Codeworten $\underline{x}$ kann der Tabelle entnommen werden. Man erkennt, dass es sich dabei nicht um einen systematischen Code handelt.
Durch Manipulation der Generatormatrix $\boldsymbol {\rm G}$ lassen sich daraus identische Codes konstruieren. Darunter versteht man Codes mit gleichen Codeworten, jedoch unterschiedlicher Zuordnung $\underline{u} \rightarrow \underline{x}$.
Folgende Operationen sind erlaubt, um einen identischen Code zu erhalten:
- Vertauschen oder Permutieren der Zeilen,
- Multiplizieren aller Zeilen mit einem konstanten Vektor ungleich "$\underline{0}$",
- Ersetzen einer Zeile durch eine Linearkombination zwischen dieser Zeile und einer anderen.
Für den in der Teilaufgabe (3) gesuchten Code $\mathcal{C}_{\rm sys}$ mit Generatormatrix $\boldsymbol{\rm G}_{\rm sys}$ wird weiter gefordert, dass er systematisch ist.
Hinweise:
- Die Aufgabe gehört zum Kapitel "Allgemeine Beschreibung linearer Blockcodes".
- Bezug genommen wird insbesondere auf die Seite "Systematische Codes".
- Bezug genommen wird zudem auf die so genannte "Singleton–Schranke":&
- Diese besagt, dass die minimale Hamming–Distanz eines $(n, k)$–Blockcodes nach oben beschränkt ist: $d_{\rm min} \le n - k +1.$
Fragebogen
Musterlösung
- Bitanzahl der Codeworte: $\underline{n = 6}$,
- Bitanzahl der Informationsworte: $\underline{k = 3}$,
- Anzahl der Prüfbitgleichungen: $\underline{m = n - k = 3}$,
- Coderate: $R = k/n = 3/6 \Rightarrow \underline{R = 0.5}$,
- Anzahl der Codeworte (Codeumfang): $|\mathcal{C}| = 2^k \Rightarrow \underline{|C| = 8}$,
- minimale Hamming–Distanz (siehe Tabelle): $\underline{d}_{\rm min} \underline{= 3}$.
(2) Richtig ist $\underline{\rm JA}$:
- Nach der Singleton–Schranke gilt $d_{\rm min} ≤ n - k + 1$. Mit $n = 6$ und $k = 3$ erhält man hierfür $d_{\rm min} ≤ 4$.
- Es kann also durchaus ein $(6, 3)$–Blockcode mit größerer Minimaldistanz konstruiert werden. Wie ein solcher Code aussieht, wurde freundlicherweise nicht gefragt.
Die Minimaldistanz aller Hamming–Codes ist $d_{\rm min} = 3$, und nur der Sonderfall mit $n = 3$ und $k = 1$ erreicht den Grenzwert. Dagegen erreichen das Maximum entsprechend der Singleton–Schranke:
- alle Wiederholungscodes $($Repetition Codes, $\rm RC)$ wegen $k = 1$ und $d_{\rm min} = n$; hierzu gehört auch der $\rm (3, 1)$–Hamming–Code, der ja bekannterweise identisch ist mit dem $\text{RC (3, 1)}$,
- alle Single Parity–check Codes $\rm (SPC)$: $k = n - 1, d_{\rm min} = 2$.
(3) Richtig sind die Lösungsvorschläge 2 und 3:
- Vertauscht man Zeilen der Generatormatrix $\boldsymbol {\rm G}$, so kommt man zu einem identischen Code $\mathcal{C}'$. Das heißt: $\mathcal{C}$ und $\mathcal{C}'$ beinhalten die genau gleichen Codeworte.
- Beispielsweise erhält man nach zyklischem Zeilentausch $2 \rightarrow 1,\ 3 \rightarrow 2$ und $1 \rightarrow 3$ die neue Matrix
- $${ \boldsymbol{\rm G}}' = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &1 &1 &1 &0\\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$
- Die erste und die letzte Zeile der neuen Matrix entsprechen schon den Vorgaben eines systematischen Codes, nämlich, dass deren Generatormatrix ${ \boldsymbol{\rm G}_{\rm sys}}$ mit einer Diagonalmatrix beginnen muss.
- Ersetzt man die Zeile 2 durch die Modulo–2–Summe von Zeile 2 und 3, so erhält man:
- $${ \boldsymbol{\rm G}}_{\rm sys} = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &0 &1 &0 &1\\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.05cm}.$$
- Dieser systematische Code beinhaltet genau die gleichen Codeworte wie die Codes $\mathcal{C}$ und $\mathcal{C}'$.
(4) Richtig sind die Lösungsvorschläge 1 und 2:
- Wendet man die Gleichung $\underline{x}_{\rm sys} = \underline{u} \cdot \boldsymbol{\rm G}_{\rm sys}$ auf obige Beispiele an, so erkennt man, dass die beiden ersten Aussagen richtig sind, nicht aber die letzte.
- Ohne Rechnung kommt man zum gleichen Ergebnis, wenn man berücksichtigt, dass
- das systematische Codewort $\underline{x}_{\rm sys}$ mit $\underline{u}$ beginnen muss,
- der Code $\mathcal{C}_{\rm sys}$ die gleichen Codeworte beinhaltet wie der vorgegebene Code $\mathcal{C}$.
- Für $\underline{u} = (0, 1, 0)$ lautet somit das Codewort $(0, 1, 0, ?, ?, ?)$.
- Ein Vergleich mit der Codetabelle von $\mathcal{C}$ auf der Angabenseite führt zu $\underline{x}_{\rm sys} = (0, 1, 0, 1, 0, 1)$.
(5) Richtig ist nur die Aussage 1. Die Angaben für $p_{2}$ und $p_{3}$ sind dagegen genau vertauscht.
- Bei systematischer Codierung besteht folgender Zusammenhang zwischen Generator– und Prüfmatrix:
- $${ \boldsymbol{\rm G}} =\left({ \boldsymbol{\rm I}}_k \: ; \:{ \boldsymbol{\rm P}} \right) \hspace{0.3cm}\Leftrightarrow \hspace{0.3cm} { \boldsymbol{\rm H}} =\left({ \boldsymbol{\rm P}}^{\rm T}\: ; \:{ \boldsymbol{\rm I}}_m \right) \hspace{0.05cm}.$$

- Angewendet auf das aktuelle Beispiel erhält man so:
- $${ \boldsymbol{\rm G}}_{\rm sys} = \begin{pmatrix} 1 &0 &0 &1 &1 &0\\ 0 &1 &0 &1 &0 &1\\ 0 &0 &1 &0 &1 &1 \end{pmatrix} \hspace{0.3cm} \Rightarrow\hspace{0.3cm} { \boldsymbol{\rm H}}_{\rm sys} = \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}.$$
- Daraus ergeben sich Prüfgleichungen (siehe Grafik):
- $$u_1 \oplus u_2 \oplus p_1 \hspace{-0.15cm} \ = \ \hspace{-0.15cm}0 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} p_1 = u_1 \oplus u_2 \hspace{0.05cm},$$
- $$ u_1 \oplus u_3 \oplus p_2 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} 0 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} p_2 = u_1 \oplus u_3 \hspace{0.05cm},$$
- $$ u_2 \oplus u_3 \oplus p_3 \hspace{-0.15cm} \ = \ \hspace{-0.15cm} 0 \hspace{0.3cm} \Rightarrow\hspace{0.3cm} p_3 = u_2 \oplus u_3 \hspace{0.05cm}.$$