Codierungstheorie

Lineare Codes

 aufwärts

Grundlagen

Definition:  Ein Blockcode C enthalten boolesche Mengen heißt linearer Code, wenn die Summe zweier Codewörter wieder ein Codewort ist, d.h. wenn gilt

für alle x, y Element C :   x Exklusiv-Oder y Element C

C bildet damit einen Vektorraum, und zwar einen Teilraum des Vektorraums boolesche Mengen.

Beispiel:  Der 3-Bit-Binärcode mit Paritätsbit C4,3 ist ein linearer Code:

0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

Die Menge T  =  {1 0 0 1,  0 1 0 1,  0 0 1 1} ist eine Basis von C4,3. Somit hat C4,3 die Dimension 3.

Satz:  Sei C enthalten boolesche Mengen ein linearer Code. Dann ist der Hamming-Abstand von C gleich dem minimalen Hamming-Gewicht aller von 0 verschiedenen Codewörter:

d(C)  =  min{ w(x) |  x Element Cxungleich0 }

Der obige lineare Code C4,3 hat den Hamming-Abstand 2, da alle von 0 verschiedenen Codewörter mindestens das Hamming-Gewicht 2 haben, d.h. mindestens 2 Einsen enthalten.

Definition:  Sei C enthalten boolesche Mengen ein linearer Code der Dimension k und sei {b1, ..., bk} eine Basis von C.

Die mit den Basisvektoren als Zeilen gebildete kkreuzn-Matrix

G  =  eckige Klammer auf
b1
drei Punkte übereinander  
bk
eckige Klammer zu

heißt Generator­matrix von C.

Die Generator­matrix G erzeugt den Code C, indem alle Produkte von Vektoren aus boolesche Mengek und G gebildet werden:

C  =  { a·G  |   a Element boolesche Mengek }

Anders ausgedrückt ist C der Zeilenraum der Matrix G.

Satz:  Durch elementare Zeilen­umformungen und Spalten­vertauschungen kann G in die systematische Form

G'  =  Z·G·S  =  [ Ik P ]

gebracht werden. Hierbei ist Ik die kkreuzk-Einheitsmatrix und P eine kkreuz(n-k)-Matrix. Die Zeilen­umformungen und Spalten­vertauschungen werden repräsentiert durch die Matrizen Z und S. Die Generator­matrix G' erzeugt einen zu C äquivalenten, systematischen Code.

Beispiel:  Die oben genannten Basisvektoren von C4,3 untereinander geschrieben ergeben die 3kreuz4-Generator­matrix G von C4,3; diese ist bereits in der systematischen Form [I3 P]:

G'  =  G  =  eckige Klammer auf
100 1
010 1
001 1
eckige Klammer zu

Satz:  Sei C enthalten boolesche Mengen ein linearer Code der Dimension k. Dann ist C ein (n, k)-Code.

 

Fehler­erkennung

Ein linearer Code C enthalten boolesche Mengen ist ein Teilraum von boolesche Mengen. Die Fehler­erkennung wird mit Hilfe des zugehörigen Orthogonal­raums C^ durchgeführt.

Ein Vektor x Element boolesche Mengen gehört zu C genau dann, wenn er zu allen Vektoren von C^ orthogonal ist. Dies ist bereits dann der Fall, wenn x zu allen Basisvektoren von C^ orthogonal ist. Aus den Basisvektoren von C^ lässt sich eine Generator­matrix H von C^ bilden. Ist nun x·HT = 0, so ist das Skalarprodukt von x mit allen Basisvektoren von C^ gleich 0 und damit x zu allen Basisvektoren von C^ orthogonal.

Definition:  Sei C enthalten boolesche Mengen ein linearer Code und C^ der Orthogonal­raum von C in boolesche Mengen. Eine Generator­matrix H von C^ heißt Kontrollmatrix von C.

Satz:  Sei C enthalten boolesche Mengen ein linearer Code mit Kontrollmatrix H. Dann gilt für alle x Element boolesche Mengen

x Element C    genau dann wenn   x·HT  =  0

Das Produkt x·HT wird als das Syndrom von x bezeichnet. Ist das Syndrom ungleich 0, so ist ein Fehler aufgetreten.

Konstruktion einer Kontrollmatrix

Eine Kontrollmatrix H lässt sich aus der Generator­matrix G des linearen Codes konstruieren.

Sei C enthalten boolesche Mengen ein linearer Code mit Generator­matrix G. Zunächst wird G in die systematische Form

G'  =  Z · G · S  =  [Ik P]

gebracht. Die Matrix G' ist Generator­matrix eines zu C äquivalenten Codes C'.

Nun ist

H'  =  [PT In-k]

Kontrollmatrix von C'. Durch Rückgängig­machen der durch die Permutations­matrix S repräsentierten Spalten­vertauschungen ergibt sich eine Kontrollmatrix für den unsprünglichen Code C:

H  =  H' · ST

 

Beispiel:  Die Generator­matrix G des Codes C4,3 ist G = [I3 P] mit PT = [1 1 1]. Damit ergibt sich die Kontrollmatrix H = [PT I1] =  [1 1 1 1]. Für x Element boolesche Mengen liefert x·HT damit die Parität von x. Ist diese gleich 0, so ist x Element C, ansonsten ist x nicht Element C.

Beim Hamming-Code lässt sich anhand des Syndroms sogar bestimmen, wo der Fehler aufgetreten ist, somit ist hier auch eine Fehler­korrektur möglich.

 

 

Weiter:   [Hamming-Code]   oder     up del.icio.us digg.com Furl Google Ma.gnolia Mister Wong StumbleUpon YahooMyWeb

 

homeH.W. Lang   FH Flensburg   lang@fh-flensburg.de   Impressum   ©   Created: 05.03.1997   Updated: 27.01.2008   Valid HTML 4.01 Transitional