Exercise 1.09: Extended Hamming Code
Es sollen zwei Codes miteinander verglichen werden, deren Codetabellen rechts angegeben sind.
- Die ersten vier Bit eines jeden Codewortes x_ sind gleich dem jeweiligen Informationswort u_ (schwarze Schrift).
- Danach folgen m=n−k Prüfbit (rote Schrift).
Der systematische (7, 4)–Hamming–Code wurde bereits in Aufgabe 1.6 sowie Aufgabe 1.7 behandelt. Prüfmatrix und Generatormatrix dieses Codes sind wie folgt gegeben:
- H1=(110110001110101011001),
- G1=(1000101010011000100110001111).
Im weiteren Verlauf der Aufgabe wird dieser (gelb hinterlegte) Code C1 genannt.
Die rechte Spalte in obiger Tabelle gibt einen Blockcode mit den Parametern n=8 und k=4 an, der in der Literatur meist als „Erweiterter Hamming–Code” bezeichnet wird. Wir nennen diesen (grün hinterlegten) Code im Folgenden C2 und bezeichnen dessen Prüfmatrix mit H2 und die dazugehörige Generatormatrix mit G2 .
Die Fragen zu dieser Aufgabe beziehen sich auf
- die Coderate,
- die minimale Distanz zwischen zwei Codeworten,
- die Prüfmatrix und die Generatormatrix des erweiterten (8, 4)–Hamming–Codes.
Hinweise:
- Die Aufgabe gehört zum Kapitel Allgemeine Beschreibung linearer Blockcodes.
- Beachten Sie bei der Lösung, dass C1 und C2 jeweils systematische Codes sind.
- Die folgende Aufgabe 1.9Z behandelt die Erweiterung von Codes in etwas allgemeinerer Form.
Fragebogen
Musterlösung
- C1: n=7,k=4 ⇒ R=4/7=0.571_,
- C2: n=8,k=4 ⇒ R=4/8=0.5_.
(2) Die minimale Distanz des (7, 4, 3)–Hamming–Codes C1 beträgt dmin=3_, was allein schon aus der Namensgebung ablesbar ist.
- Aus der Tabelle auf der Angabenseite ist ersichtlich, dass für den erweiterten Hamming–Code dmin=4_ gilt.
- C2 bezeichnet man deshalb in der Literatur auch als einen (8, 4, 4)–Blockcode.
(3) Die Prüfmatrix H besteht im Allgemeinen aus n Spalten und m=n–k Zeilen, wobei m die Anzahl der Prüfgleichungen angibt.
- Beim (7, 4, 3)–Hamming–Code ist H eine 3 × 7–Matrix.
- Für den erweiterten Hamming–Code ⇒ Code C2 gilt demgegenüber n=8_ (Spaltenzahl) und m=4_ (Zeilenzahl).
(4) Aus der Codetabelle auf der Angabenseite erkennt man, dass allein Antwort 3 richtig ist.
- Das Prüfbit p4 ist so zu bestimmen, dass die Modulo–2–Summe über alle Bits des Codewortes den Wert 0 ergibt.
(5) Anzumerken ist zunächst, dass die Angabe der Prüfmatrix nie eindeutig ist, schon allein deshalb, weil die Reihenfolge der Prüfgleichungen vertauschbar ist.
- Unter Berücksichtigung des Hinweises, dass nur eine der vorgegebenen Zeilen falsch ist, ist H2 allerdings eindeutig bestimmt:
- H2=(11011000011101001011001011111111).
- Richtig sind also die Aussagen 1, 2 und 4. Die Zeilen dieser Prüfmatrix stehen in dieser Reihenfolge für die vier Prüfgleichungen:
- x1⊕x2⊕x4⊕x5=0,
- x2⊕x3⊕x4⊕x6=0,
- x1⊕x3⊕x4⊕x7=0,
- x1⊕x2⊕x3⊕x4⊕x5⊕x6⊕x7⊕x8=0.
(6) Richtig ist die Antwort 2:
- Zu diesem Ergebnis kommt man, wenn man die letzte Zeile durch die Modulo–2–Summe über alle vier Zeilen ersetzt, was erlaubt ist.
- Der Vorschlag 1 stellt keine Prüfgleichung dar.
- Der Vorschlag 3 steht für die Prüfgleichung x3⊕x5=0, was auch nicht den Gegebenheiten entspricht.
Entsprechend dem richtigen Lösungsvorschlag 2 wird dagegen die Prüfgleichung
- x1⊕x2⊕x3⊕x4⊕x5⊕x6⊕x7⊕x8=0
durch folgende neue Prüfgleichung ersetzt:
- x1⊕x2⊕x3⊕x8=0.
Die modifizierte Prüfmatrix lautet nun:
- H2=(11011000011101001011001011100001).
(7) Nach dieser Matrixmanipulation liegt H2 in der für systematische Codes typischen Form vor:
- H2=(PT;Im)⇒m=4:H2=(PT;I4).
Damit lautet die Generatormatrix:
- G2=(I4;P)=(10001011010011010010011100011110).
Richtig sind also die Aussagen 2 und 3:
- G2 beginnt wie G1 (siehe Angabenblatt) mit einer Diagonalmatrix I4 , hat aber im Gegensatz zu G1 nun 8 Spalten.
- Im vorliegenden Fall n=8,k=4 ⇒ m=4 sind sowohl G2 als auch H2 jeweils 4×8–Matrizen.