Exercise 4.6: Product Code Generation

From LNTwww
Revision as of 14:51, 23 March 2021 by Javier (talk | contribs) (Text replacement - "Category:Aufgaben zu Kanalcodierung" to "Category:Channel Coding: Exercises")

Verwendete Komponentencodes

Es soll ein  Produktcode (42, 12)  generiert werden, der auf folgenden Komponentencodes aufbaut:

  • dem Hammingcode  HC (7, 4, 3)   ⇒   C1,
  • dem verkürzten Hammingcode HC (6, 3, 3)   ⇒   C2.


Die entsprechenden Codetabellen sind rechts angegeben, wobei jeweils drei Zeilen unvollständig sind. Diese sollen von Ihnen ergänzt werden.

Das zu einem Informationsblock  u_  gehörige Codewort ergibt sich allgemein entsprechend der Gleichung  x_=u_G. Wie auch in der  Aufgabe 4.6Z  wird hier von folgenden Generatormatrizen ausgegangen:

G1=(1000101010011000100110001111),G2=(100110010101001011).

In der gesamten Aufgabe gelte für den Informationsblock:

U=(011000001110).

Gesucht sind entsprechend der Nomenklatur auf der Seite  Grundstruktur eines Produktcodes:

  • die Parity–Matrix  P(1)  bezüglich des horizontalen Codes  C1,
  • die Parity–Matrix  P(2)  bezüglich des vertikalen Codes  C2,
  • die Checks–on–Checks–Matrix  P(12).





Hinweise:



Fragebogen

1

Welche Ergebnisse liefert die Zeilencodierung mit dem  (7, 4, 3)–Code  C1?

1. Zeile:   u_=(0,1,1,0)  x_=(0,1,1,0,1,0,1).
2. Zeile:   u_=(0,0,0,0)  x_=(1,1,1,1,1,1,1).
3. Zeile:   u_=(1,1,1,0)  x_=(1,1,1,0,0,0,0).

2

Welche Ergebnisse liefert die Spaltencodierung mit dem  (6, 3, 3)–Code  C2?

1. Zeile:   u_=(0,0,1)  x_=(0,0,1,0,1,1).
2. Zeile:   u_=(1,0,1)  x_=(1,0,1,1,0,1).
3. Zeile:   u_=(1,0,1)  x_=(1,1,0,0,1,1).
4. Zeile:   u_=(0,0,0)  x_=(0,0,0,0,0,0).

3

Welche Aussagen gelten für die Checks–on–Checks–Matrix?

Die erste Zeile lautet  (1,0,1)  und die erste Spalte  (1,1,0).
Die zweite Zeile lautet  (1,0,1)  und die zweite Spalte  (0,0,0).
Die dritte Zeile lautet  (0,0,0)  und die dritte Spalte  (0,0,0).


Musterlösung

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

Allgemein gilt x_=u_G. Daraus folgt für

  • den ersten Zeilenvektor:
(0110)(1000101010011000100110001111)=(0110101),
  • den zweiten Zeilenvektor:
(0000)(1000101010011000100110001111)=(0000000),
  • den dritten Zeilenvektor
(1110)(1000101010011000100110001111)=(1110000).


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

(001)(100110010101001011)=(001011),
(101)(100110010101001011)=(101101).

Zu dieser Teilaufgabe ist weiter anzumerken:

  • Die angegebene erste Spalte ist schon allein deshalb richtig, weil sie mit einer Zeile (der dritten) der Generatormatrix G2 übereinstimmt.
  • Die dritte Spalte des 2D–Codewortes müsste mit der zweiten Spalte identisch sein, da vom gleichen Codewort (1,0,1) ausgegangen wird.
  • Der angegebene Vektor (1,1,0,0,1,1) kann aber schon allein deshalb nicht richtig sein, da C2 ebenso wie C1 ein systematischer Code ist.
  • Auch der verkürzte (6, 3, 3)–Hammingcode C2 ist linear, so dass die Zuordnung u_=(0,0,0)  x_=(0,0,0,0,0,0) auch ohne Rechnung angebbar ist.


Vollständige Codetabellen

(3)  Rechts angegeben sind die vollständigen Codetabellen

  • des Hammingcodes (7, 4, 3), und
  • des verkürzten Hammingcodes (6, 3, 3).


Man erkennt daraus (ohne dass das für diese Aufgabe von Interesse ist), dass die hier betrachteten Codes jeweils die Hamming–Distanz dmin=3 aufweisen.

Gesuchter Produktcode



Die linke Grafik zeigt das Ergebnis der gesamten Codierung. Unten rechts erkennt man die Checks–on–Checks–Matrix der Dimension 3×3.
Bezüglich der Teilaufgabe (3) sind die Lösungsvorschläge 1 und 2 richtig:

  • Es ist Zufall, dass hier in der Checks–on–Checks–Matrix zwei Zeilen und zwei Spalten identisch sind.
  • Es ist egal, ob man die Zeilen 4 bis 6 der Gesamtmatrix über den Code C1 gewinnt oder die Spalten 5 bis 7 über den Code C2.