Aufgaben:Aufgabe 1.08: Identische Codes: Unterschied zwischen den Versionen
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
}} | }} | ||
− | [[Datei:P_ID2393__KC_A_1_8_neu.png|right|frame|Zuordnung des | + | [[Datei:P_ID2393__KC_A_1_8_neu.png|right|frame|Zuordnung des $(6, 3)$–Blockcodes]] |
− | Wir betrachten einen Blockcode C, der durch folgende Generatormatrix beschrieben wird: | + | Wir betrachten einen Blockcode C, der durch folgende Generatormatrix beschrieben wird: |
:G=(001011100110011110). | :G=(001011100110011110). | ||
− | Die Zuordnung zwischen den Informationsworten u_ und den Codeworten x_ kann der Tabelle entnommen werden. Man erkennt, dass es sich dabei nicht um einen systematischen Code handelt. | + | Die Zuordnung zwischen den Informationsworten u_ und den Codeworten x_ kann der Tabelle entnommen werden. Man erkennt, dass es sich dabei nicht um einen systematischen Code handelt. |
− | Durch Manipulation der Generatormatrix G lassen sich daraus identische Codes konstruieren. Darunter versteht man Codes mit gleichen Codeworten, jedoch unterschiedlicher Zuordnung u_→x_. | + | Durch Manipulation der Generatormatrix G lassen sich daraus identische Codes konstruieren. Darunter versteht man Codes mit gleichen Codeworten, jedoch unterschiedlicher Zuordnung u_→x_. |
− | Folgende Operationen sind erlaubt, um einen identischen Code zu erhalten: | + | Folgende Operationen sind erlaubt, um einen identischen Code zu erhalten: |
*Vertauschen oder Permutieren der Zeilen, | *Vertauschen oder Permutieren der Zeilen, | ||
− | *Multiplizieren aller Zeilen mit einem konstanten Vektor ungleich 0, | + | |
+ | *Multiplizieren aller Zeilen mit einem konstanten Vektor ungleich "$\underline{0}$", | ||
+ | |||
*Ersetzen einer Zeile durch eine Linearkombination zwischen dieser Zeile und einer anderen. | *Ersetzen einer Zeile durch eine Linearkombination zwischen dieser Zeile und einer anderen. | ||
− | Für den in der Teilaufgabe (3) gesuchten Code Csys mit Generatormatrix Gsys wird weiter gefordert, dass er systematisch ist. | + | Für den in der Teilaufgabe '''(3)''' gesuchten Code Csys mit Generatormatrix Gsys wird weiter gefordert, dass er systematisch ist. |
− | |||
− | *Die Aufgabe gehört zum Kapitel [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes|Allgemeine Beschreibung linearer Blockcodes]]. | + | Hinweise: |
− | *Bezug genommen wird insbesondere auf die Seite [[Kanalcodierung/Allgemeine_Beschreibung_linearer_Blockcodes#Systematische_Codes|Systematische Codes]]. | + | |
− | *Bezug genommen wird zudem auf die so genannte | + | *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: dmin≤n−k+1. | ||
+ | |||
Zeile 38: | Zeile 45: | ||
<quiz display=simple> | <quiz display=simple> | ||
− | {Geben Sie die Kenngrößen des gegebenen Codes C an. | + | {Geben Sie die Kenngrößen des gegebenen Codes C an. |
|type="{}"} | |type="{}"} | ||
n= { 6 } | n= { 6 } | ||
Zeile 44: | Zeile 51: | ||
m= { 3 } | m= { 3 } | ||
R= { 0.5 3% } | R= { 0.5 3% } | ||
− | |C|= { 8 } | + | $|\hspace{0.05cm}\mathcal{C}\hspace{0.05cm}| \hspace{-0.05cm} = \ ${ 8 } |
dmin= { 3 } | dmin= { 3 } | ||
− | {Gibt es einen (6, 3)–Blockcode mit größerer Minimaldistanz? | + | {Gibt es einen $(6, 3)$–Blockcode mit größerer Minimaldistanz? |
|type="()"} | |type="()"} | ||
+ Ja. | + Ja. | ||
- Nein. | - Nein. | ||
− | {Wie lautet die Generatormatrix Gsys des identischen systematischen Codes? | + | {Wie lautet die Generatormatrix Gsys des identischen systematischen Codes? |
|type="[]"} | |type="[]"} | ||
- Die 1. Zeile lautet „1 0 1 1 0 1”. | - Die 1. Zeile lautet „1 0 1 1 0 1”. | ||
Zeile 65: | Zeile 72: | ||
− | {Welche Prüfbits hat der systematische Code x_sys=(u1,u2,u3,p1,p2,p3)? | + | {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="[]"} | ||
+p1=u1⊕u2, | +p1=u1⊕u2, | ||
Zeile 77: | Zeile 84: | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' Der vorgegebene Code C wird durch folgende Kenngrößen charakterisiert: | + | '''(1)''' Der vorgegebene Code C wird durch folgende Kenngrößen charakterisiert: |
− | *Bitanzahl der Codeworte: n=6_, | + | *Bitanzahl der Codeworte: n=6_, |
− | *Bitanzahl der Informationsworte: k=3_, | + | |
− | *Anzahl der Prüfbitgleichungen: $\underline{m = n | + | *Bitanzahl der Informationsworte: k=3_, |
− | *Coderate: R=k/n=3/6⇒R=0.5_, | + | |
− | *Anzahl der Codeworte (Codeumfang): |C|=2k⇒|C|=8_, | + | *Anzahl der Prüfbitgleichungen: $\underline{m = n - k = 3}$, |
− | + | ||
+ | *Coderate: R=k/n=3/6⇒R=0.5_, | ||
+ | |||
+ | *Anzahl der Codeworte (Codeumfang): |C|=2k⇒|C|=8_, | ||
+ | *minimale Hamming–Distanz (siehe Tabelle): d_min=3_. | ||
− | |||
− | |||
− | + | '''(2)''' Richtig ist 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, RC) wegen k=1 und dmin=n; hierzu gehört auch der (3,1)–Hamming–Code, der ja bekannterweise identisch ist mit dem RC (3, 1), | ||
− | '''(3)''' Richtig sind die <u>Lösungsvorschläge 2 und 3</u>: | + | *alle [[Kanalcodierung/Beispiele_binärer_Blockcodes#Single_Parity.E2.80.93check_Codes|Single Parity–check Codes]] (SPC): k=n−1,dmin=2. |
− | *Vertauscht man Zeilen | + | |
− | *Beispielsweise erhält man nach zyklischem Zeilentausch 2→1,3→2 und 1→3 die neue Matrix | + | |
+ | |||
+ | '''(3)''' Richtig sind die <u>Lösungsvorschläge 2 und 3</u>: | ||
+ | *Vertauscht man Zeilen der Generatormatrix G, so kommt man zu einem identischen Code C′. Das heißt: C und C′ beinhalten die genau gleichen Codeworte. | ||
+ | |||
+ | *Beispielsweise erhält man nach zyklischem Zeilentausch $2 \rightarrow 1,\ 3 \rightarrow 2$ und 1→3 die neue Matrix | ||
:G′=(100110011110001011). | :G′=(100110011110001011). | ||
− | *Die erste und die letzte Zeile der neuen Matrix entsprechen schon den Vorgaben eines systematischen Codes, nämlich, dass deren Generatormatrix Gsys mit einer Diagonalmatrix beginnen muss. | + | *Die erste und die letzte Zeile der neuen Matrix entsprechen schon den Vorgaben eines systematischen Codes, nämlich, dass deren Generatormatrix Gsys mit einer Diagonalmatrix beginnen muss. |
− | *Ersetzt man die Zeile 2 durch die Modulo–2–Summe von Zeile 2 und 3, so erhält man: | + | |
+ | *Ersetzt man die Zeile 2 durch die Modulo–2–Summe von Zeile 2 und 3, so erhält man: | ||
:Gsys=(100110010101001011). | :Gsys=(100110010101001011). | ||
− | *Dieser systematische Code beinhaltet genau die gleichen Codeworte wie die Codes C und C′. | + | *Dieser systematische Code beinhaltet genau die gleichen Codeworte wie die Codes C und 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 x_sys mit u_ beginnen muss, | ||
+ | :*der Code Csys die gleichen Codeworte beinhaltet wie der vorgegebene Code C. | ||
− | '''(5)''' Richtig ist nur die <u>Aussage 1</u>. Die Angaben für p2 und p3 sind dagegen genau vertauscht. | + | *Für u_=(0,1,0) lautet somit das Codewort (0,1,0,?,?,?). |
+ | |||
+ | *Ein Vergleich mit der Codetabelle von C auf der Angabenseite führt zu x_sys=(0,1,0,1,0,1). | ||
+ | |||
+ | |||
+ | |||
+ | '''(5)''' Richtig ist nur die <u>Aussage 1</u>. Die Angaben für p2 und p3 sind dagegen genau vertauscht. | ||
*Bei systematischer Codierung besteht folgender Zusammenhang zwischen Generator– und Prüfmatrix: | *Bei systematischer Codierung besteht folgender Zusammenhang zwischen Generator– und Prüfmatrix: | ||
Zeile 131: | Zeile 154: | ||
:Gsys=(100110010101001011)⇒Hsys=(110100101010011001). | :Gsys=(100110010101001011)⇒Hsys=(110100101010011001). | ||
− | + | *Daraus ergeben sich Prüfgleichungen (siehe Grafik): | |
− | Daraus ergeben sich Prüfgleichungen (siehe Grafik): | ||
:u1⊕u2⊕p1 = 0⇒p1=u1⊕u2, | :u1⊕u2⊕p1 = 0⇒p1=u1⊕u2, | ||
:u1⊕u3⊕p2 = 0⇒p2=u1⊕u3, | :u1⊕u3⊕p2 = 0⇒p2=u1⊕u3, |
Aktuelle Version vom 10. Juli 2022, 17:41 Uhr
Wir betrachten einen Blockcode C, der durch folgende Generatormatrix beschrieben wird:
- G=(001011100110011110).
Die Zuordnung zwischen den Informationsworten u_ und den Codeworten x_ kann der Tabelle entnommen werden. Man erkennt, dass es sich dabei nicht um einen systematischen Code handelt.
Durch Manipulation der Generatormatrix G lassen sich daraus identische Codes konstruieren. Darunter versteht man Codes mit gleichen Codeworten, jedoch unterschiedlicher Zuordnung u_→x_.
Folgende Operationen sind erlaubt, um einen identischen Code zu erhalten:
- Vertauschen oder Permutieren der Zeilen,
- Multiplizieren aller Zeilen mit einem konstanten Vektor ungleich "0_",
- Ersetzen einer Zeile durch eine Linearkombination zwischen dieser Zeile und einer anderen.
Für den in der Teilaufgabe (3) gesuchten Code Csys mit Generatormatrix Gsys 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: dmin≤n−k+1.
Fragebogen
Musterlösung
- Bitanzahl der Codeworte: n=6_,
- Bitanzahl der Informationsworte: k=3_,
- Anzahl der Prüfbitgleichungen: m=n−k=3_,
- Coderate: R=k/n=3/6⇒R=0.5_,
- Anzahl der Codeworte (Codeumfang): |C|=2k⇒|C|=8_,
- minimale Hamming–Distanz (siehe Tabelle): d_min=3_.
(2) Richtig ist JA_:
- Nach der Singleton–Schranke gilt dmin≤n−k+1. Mit n=6 und k=3 erhält man hierfür dmin≤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 dmin=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, RC) wegen k=1 und dmin=n; hierzu gehört auch der (3,1)–Hamming–Code, der ja bekannterweise identisch ist mit dem RC (3, 1),
- alle Single Parity–check Codes (SPC): k=n−1,dmin=2.
(3) Richtig sind die Lösungsvorschläge 2 und 3:
- Vertauscht man Zeilen der Generatormatrix G, so kommt man zu einem identischen Code C′. Das heißt: C und C′ beinhalten die genau gleichen Codeworte.
- Beispielsweise erhält man nach zyklischem Zeilentausch 2→1, 3→2 und 1→3 die neue Matrix
- G′=(100110011110001011).
- Die erste und die letzte Zeile der neuen Matrix entsprechen schon den Vorgaben eines systematischen Codes, nämlich, dass deren Generatormatrix Gsys mit einer Diagonalmatrix beginnen muss.
- Ersetzt man die Zeile 2 durch die Modulo–2–Summe von Zeile 2 und 3, so erhält man:
- Gsys=(100110010101001011).
- Dieser systematische Code beinhaltet genau die gleichen Codeworte wie die Codes C und C′.
(4) Richtig sind die Lösungsvorschläge 1 und 2:
- Wendet man die Gleichung x_sys=u_⋅Gsys 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 x_sys mit u_ beginnen muss,
- der Code Csys die gleichen Codeworte beinhaltet wie der vorgegebene Code C.
- Für u_=(0,1,0) lautet somit das Codewort (0,1,0,?,?,?).
- Ein Vergleich mit der Codetabelle von C auf der Angabenseite führt zu x_sys=(0,1,0,1,0,1).
(5) Richtig ist nur die Aussage 1. Die Angaben für p2 und p3 sind dagegen genau vertauscht.
- Bei systematischer Codierung besteht folgender Zusammenhang zwischen Generator– und Prüfmatrix:
- G=(Ik;P)⇔H=(PT;Im).
- Angewendet auf das aktuelle Beispiel erhält man so:
- Gsys=(100110010101001011)⇒Hsys=(110100101010011001).
- Daraus ergeben sich Prüfgleichungen (siehe Grafik):
- u1⊕u2⊕p1 = 0⇒p1=u1⊕u2,
- u1⊕u3⊕p2 = 0⇒p2=u1⊕u3,
- u2⊕u3⊕p3 = 0⇒p3=u2⊕u3.