Harm Pralle
Codierungstheorie
WS 2005/06
Institut Computational Mathematics Technische Universit¨at Braunschweig
II...
60 downloads
862 Views
369KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Harm Pralle
Codierungstheorie
WS 2005/06
Institut Computational Mathematics Technische Universit¨at Braunschweig
II
Literatur: • A. Beutelspacher und U. Rosenbaum. Projektive Geometrie. Vieweg, Wiesbaden (1992). • R. Hill. A First Course in Coding Theory. Clarendon Press, Cambridge (1985). • L. Storme. Projective geometry and coding theory. Com2 Mac LNS 9, (2001). • J. H. van Lint. Introduction to Coding Theory. Springer GTM 86 (1999). • W. Willems. Codierungstheorie. Walter de Gruyter (1999).
Inhaltsverzeichnis 1 Grundlagen 1.1 Hamming-Distanz und Gewicht . . . . 1.2 Das Codierungstheorieproblem . . . . . 1.3 Der Satz von Shannon . . . . . . . . . 1.4 Hamming-Schranke und perfekte Codes
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
1 2 3 4 5
2 Lineare Codes 2.1 Einleitung und Definition . . . . . 2.2 Dualer Code und Kontrollmatrix 2.3 Syndromdecodierung . . . . . . . 2.4 Beispiele . . . . . . . . . . . . . . 2.4.1 Hamming-Codes . . . . . 2.4.2 Hadamard-Codes . . . . . 2.5 Informationstheorie . . . . . . . . 2.6 Gewichtspolynome . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
7 7 9 11 13 13 15 16 17
3 Projektive Geometrie 3.1 Definitionen . . . . . . . . . . . . . . . . 3.2 Homogene Koordinaten . . . . . . . . . . 3.3 Endliche projektive R¨aume . . . . . . . . 3.4 Quadriken . . . . . . . . . . . . . . . . . 3.4.1 B¨ogen und rationale Normkurven 3.4.2 Quadriken . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
21 21 22 24 24 24 25
4 Die 4.1 4.2 4.3 4.4
. . . . . . . .
. . . . . . . .
. . . . . . . .
Suche nach guten Codes Optimierung der Rate bei gegebener Distanz Maximum Distance Separable Codes . . . . Erweiterungen von Codes und B¨ogen . . . . Erzeugermatrizen projektiv betrachtet . . .
5 Zyklische Codes 5.1 Zyklische Codes und Erzeugerpolynome 5.2 Kontrollpolynom und Kontrollmatrix . 5.3 Nullstellen zyklischer Codes . . . . . . 5.4 Das Idempotent eines zyklischen Codes III
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
29 29 31 33 35
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
39 39 41 43 44
IV
INHALTSVERZEICHNIS 5.5
Index
Beispiele . . . . . . . . . . . . . . . . . . . . 5.5.1 Zyklische Hamming-Codes . . . . . . 5.5.2 BCH-Codes . . . . . . . . . . . . . . 5.5.3 Reed-Solomon Codes . . . . . . . . . 5.5.4 Codeverschachtelung und Audio-CD 5.5.5 Der bin¨are Golay-Code . . . . . . . . 5.5.6 Der tern¨are Golay-Code . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
46 46 47 50 51 53 55 56
Kapitel 1 Grundlagen ¨ Ziel der Codierungstheorie ist die fehlerfreie Ubertragung von Daten. Der Sender codiert eine Nachricht m in ein Codewort c und sendet c. Der Empf¨anger erh¨alt das Signal y = c + e mit einem Fehlerwort e und decodiert y. Er sollte dabei mit hoher Wahrscheinlichkeit sagen k¨onnen, ob ein Fehler aufgetreten ist und falls ja, diesen auch korrigieren k¨onnen. Wir betrachten nur Codes, in denen jedes Wort dieselbe L¨ange hat. Sie heißen Blockcodes. Definition 1.1 Ein Code der L¨ange n u ¨ber dem Alphabet Fq := {λ1 , ..., λq } ist eine Menge von n-Tupeln aus Fq . Meist benutzen wir Fq = Zq oder Fq und dann sagt man, C ist ein Code ¨ uber q. Codes u ¨ber 2 und 3 heißen bin¨are und tern¨are Codes. Beispiel 1.1 1. Die Deutsche Sprache. 2. Ein Code C mit M W¨ortern der L¨ange n kann als (M ×n)-Matrix geschrieben werden, deren Zeilen die Codew¨orter sind. Zum Beispiel ist der bin¨are Repetitionscode 0 0 0 der L¨ange 3 dargestellt durch . 1 1 1 0 0 0 1 ugen redundante In3. Sei C = 1 0 ein bin¨arer Code der L¨ange 2. Wir f¨ 1 1 0 0 0 0 1 1 formation hinzu, um Fehler aufdecken zu k¨onnen: C1 = 1 0 1 ist 1-Fehler 1 1 0 erkennend, da der erhaltene Vektor kein Codewort ist, wenn ein Fehler auftritt. Zum 0 0 0 0 0 0 1 1 0 1 Korrigieren eines Fehlers brauchen wir mehr Information: C2 = 1 0 1 1 0 1 1 0 1 1 ist 1-Fehler korrigierend. Er deckt außerdem zwei Fehler auf. 1
2
KAPITEL 1. GRUNDLAGEN
Ist ein Code C eine Teilmenge eines Vektorraums V , so benutzen wir eine Abstandsfunktion in V zum Aufdecken und Korrigieren von Fehlern. Haben je zwei Codew¨orter den Abstand 2t + 1, so wird ein empfangener Vektor im Abstand ≤ t von einem Codewort als dies Codewort decodiert. Sonst wird um Wiederholung der u ¨bertragung gebeten. Dies nennt man Minimaldistanzdecodierung oder HammingDecodierung. Sie maximiert die Wahrscheinlichkeit, Fehler zu korrigieren, falls der Kanal folgende Eigenschaften hat: • Jedes Symbol hat dieselbe Wahrscheinlichkeit p, ge¨andert zu werden. • Wird ein Symbol ver¨andert, so ist die Wahrscheinlichkeit f¨ ur jeden der q − 1 Fehler gleich groß. Ein solcher Kanal heißt ein symmetrischer Kanal u ¨ber q. Die Wahrscheinlichkeit, n i n−i dass 0 ≤ i ≤ n Fehler auftreten, ist i p (1 − p) . Die Wortfehlerwahrscheinlichkeit Perr (C) ist die Wahrscheinlichkeit, dass ein empfangener Vektor nicht als das gesendete Codewort decodiert wird. F¨ ur einen symmetrischen Kanal h¨angt diese Wahrscheinlichkeit nicht vom gesendeten Wort ab und die Minimaldistanzdecodierung ist die Decodierung mit der geringsten Wortfehlerwahrscheinlichkeit. Beispiel 1.2 Sei C der bin¨are Repetitionscode der L¨ange 3. Das Codewort (0, 0, 0) werde u ¨ber einen bin¨aren symmetrischen Kanal mit Symbolfehlerwahrscheinlichkeit p geschickt. Die Vektoren (0, 0, 0), (0, 0, 1), (0, 1, 0) und (1, 0, 0) werden als (0, 0, 0) decodiert. Also ist die Wortfehlerwahrscheinlichkeit von C gleich Perr (C) = 1 − ((1 − p)3 + 3p(1 − p)2 ) = 3p2 − 2p3
1.1
Hamming-Distanz und Gewicht
Wir betrachten von nun an nur Codes, die Teilmengen des Vektorraums V = Fnq sind. Definition 1.2 Die Hamming-Distanz d(x, y) zwischen zwei Vektoren x = (x1 , ..., xn ), y = (y1 , ..., yn ) ∈ Fnq ist die Anzahl der i ∈ {1, ..., n} mit xi 6= yi . Lemma 1.3 Die Hamming-Distanz ist eine Metrik. Beweis. • d(x, y) = 0 ⇔ x = y • d(x, y) = d(y, x) f¨ ur alle x, y ∈ V • d(x, y) ≤ d(x, z) + d(z, y) f¨ ur alle x, y, z ∈ V : ¨ d(x, y) ist die Minimalzahl der Anderungen von Koordinaten, die man an x ¨ vornehmen muss, um y zu erhalten. Andert man x erst zu z und dann z zu y, ¨ so sind dies mindestens so viele Schritte wie bei der direkten Anderung von x zu y. 2
1.2. DAS CODIERUNGSTHEORIEPROBLEM
3
Man definiert die Minimaldistanz von C als d(C) = min{d(x, y) | x, y ∈ C, x 6= y}. Beispiel 1.3 Der Repetitionscode u ¨ber q der L¨ange n hat die Minimaldistanz n. Satz 1.4 Es sei C ein Code. Dann gilt: (i) Ist d(C) ≥ t + 1, dann deckt C bis zu t Fehler in einem Wort auf. (ii) Ist d(C) ≥ 2t + 1, dann korrigiert C bis zu t Fehler in einem Wort. Beweis. Es seien x der gesendete und y der empfangene Vektor mit h¨ochstens t Fehlern. (i) Wegen d(C) ≥ t + 1 kann y kein anderes Codewort als x sein, also werden ≤ t Fehler aufgedeckt. (ii) Wegen d(x, y) ≤ t gilt d(y, z) ≥ t + 1 f¨ ur jedes andere Codewort z ∈ C \ {x}. Denn sonst g¨alte d(x, z) ≤ d(x, y) + d(y, z) ≤ t + t = 2t im Widerspruch zu d(C) ≥ 2t + 1. 2 Definition 1.5 Ist C ein Code der L¨ange n mit M W¨ortern und Minimaldistanz d, dann wird C als (n, M, d)-Code bezeichnet. Definition 1.6 F¨ ur x = (x1 , ..., xn ) ∈ Fnq ist das Gwicht w(x) die Anzahl der Elemente 6= 0 in (x1 , ..., xn ). Lemma 1.7 Es gilt d(x, y) = w(x − y) f¨ ur alle x, y ∈ Fnq .
0 0 Beispiel 1.4 (Beispiel 1.1 fortgesetzt.) C1 = 1 1 und w(c) = 2 f¨ ur alle c ∈ C.
1.2
0 1 0 1
2 0 1 ⊂ F32 ⇒ d(C) = 2 1 0
Das Codierungstheorieproblem
¨ Ein guter (n, M, d)-Code hat eine kleine L¨ange n f¨ ur schnelle Ubertragung, eine große Minimaldistanz d f¨ ur gute Fehlererkennung/-korrektur und die Zahl M der W¨orter sollte groß sein. Das Codierungstheorieproblem besteht darin, zu gegebenen n und d den gr¨oßten Code zu finden. Man bezeichnet mit Aq (n, d) die gr¨oßte Zahl M , f¨ ur die ein (n, M, d)-Code u ¨ber q exisiert. Satz 1.8 Es gelten Aq (n, 1) = q n und Aq (n, n) = q.
4
KAPITEL 1. GRUNDLAGEN
Beweis. Ist C ein maximaler Code mit d = 1, so gilt C = Fnq , also |C| = q n . Ist C ein (n, M, n)-Code u ¨ ber q, so unterscheiden sich je zwei Codew¨orter in allen Koordinaten. Da an der ersten Stelle nur q verschiedene Werte m¨oglich sind, folgt Aq (n, n) ≤ q. Der Repetitionscode der L¨ange n u ¨ber q ist ein Code mit Minimaldistanz n der Gr¨oße q. Also gilt Aq (n, n) = q. 2 Satz 1.9 Sei d ungerade. Dann existiert ein bin¨arer (n, M, d)-Code genau dann, wenn ein bin¨arer (n + 1, M, d + 1)-Code existiert. Beweis. Es sei C ein bin¨arer (n, M, d)-Code. Wir konstruieren einen (n+1, M, d+ 1)-Code C 0 , indem wir C um eine Pr¨ ufziffer erweitern: (x1 , ..., xn ) 7→ (x1 , ..., xn ,
n X i=1
xi
mod 2) =
(x1 , ..., xn , 0) , falls w(x) gerade (x1 , ..., xn , 1) , falls w(x) ungerade
Dann ist w(x0 ) f¨ ur alle x0 ∈ C 0 gerade. Also ist d(C 0 ) gerade, und es gilt d ≤ d(C 0 ) ≤ d + 1. Weil d ungerade ist, folgt d(C 0 ) = d + 1 und C 0 ist ein (n + 1, M, d + 1)-Code. Umgekehrt sei D ein (n + 1, M, d + 1)-Code mit d ≥ 1. Seien x, y ∈ D Codew¨orter mit d(x, y) = d + 1 und w¨ahle eine Koordinate, in der sie sich unterscheiden. L¨oscht man diese Koordinate von allen Codew¨ortern, so erh¨alt man einen Code C der L¨ange n, Minimaldistanz d und Gr¨oße M . 2 Korollar 1.10 Ist d ungerade, so gilt A2 (n + 1, d + 1) = A2 (n, d).
1.3
2
Der Satz von Shannon
Definition 1.11 Es sei C ein Code der L¨ange n u ¨ber q. Dann ist die Informations−1 rate, oder Rate, von C gleich R(C) := n logq |C|. Die Kanalkapazit¨at eines symmetrischen Kanals mit Symbolfehlerwahrscheinlichkeit p ist κ(p) = 1 + p log2 (p) + (1 − p) log2 (1 − p). Satz 1.12 (Shannon, 1948) Es seien ε > 0 und 0 < R < κ(p). Dann gibt es ein n ∈ N und einen Code der L¨ange n mit Informationsrate wenigstens R, so dass Perr (C) < ε f¨ ur die Wortfehlerwahrscheinlichkeit Perr (C) gilt. Beweis. Ohne Beweis, da nicht konstruktiv.
2
Beispiel 1.5 Der Repetitionscode einer ungeraden L¨ange N ist ein guter Code, der aber sehr lang und damit teuer ist. Die Wahrscheinlichkeit, dass ein bit (N P Buchstabenwort des Codes) korrekt decodiert wird, ist 0≤k
1.4. HAMMING-SCHRANKE UND PERFEKTE CODES
5
Eine bessere M¨oglichkeit ist das Codieren der 2-Tupel wie folgt: (0 (0 (1 (1
0) 1) 0) 1)
→ → → →
(0 (0 (1 (1
0 1 0 1
0 1 0 1
0) 1) 1) 0)
Geh¨ort der empfangene Vektor nicht zu C, so nimmt man an, dass das letzte bit korrekt u ¨bertragen worden ist und decodiert als das n¨achstliegende Codewort. So wird jedes 4-Tupel eindeutig decodiert. Die Wahrscheinlichkeit, dass 2 Symbole korrekt u ¨bertragen werden, ist mit diesem 4 3 Code (1 − p) + 3p(1 − p) . F¨ ur p = 0, 001 ist dies 0, 9989970, w¨arend die Wahr¨ scheinlichkeit der korrekten Ubertragung ohne Codieren nur (1 − p)2 = 0, 9980 und die des Repetitionscodes der L¨ange 2 nur (1 − p)4 = 0, 9960 betr¨agt.
1.4
Hamming-Schranke und perfekte Codes
F¨ ur u ∈ Fnq und r ∈ N ist die Kugel vom Radius r um u (manchmal auch r-Umgebung oder r-Kugel genannt) die Menge Sr (u) = {v ∈ Fnq | d(u, v) ≤ r}. Lemma 1.13 Eine Kugel vom Radius r in Fnq mit 0 ≤ r ≤ n enth¨alt genau n n 2 (q − 1)r (q − 1) + . . . + 1 + n(q − 1) + r 2 Vektoren. ur i = 0, ..., r. Beweis. Sei u ∈ Fnq . Wir z¨ahlen die Vektoren im Abstand i von u f¨ n i Dies sind genau i (q − 1) Vektoren, und es folgt r X n (q − 1)i . |Sr (u)| = i i=0 2
Satz 1.14 (Kugelpackungs- oder Hamming-Schranke) F¨ ur einen (n, M, 2t + 1)-Code u ¨ber q gilt n n n n 2 t M + (q − 1) + (q − 1) + · · · + (q − 1) ≤ q n . 0 1 2 t Beweis. Es sei C ein (n, M, 2t + 1)-Code. Wegen d(C) = 2t + 1 sind die tUmgebungen um Codew¨orter disjunkt. Die Zahl der Vektoren in den t-Umgebungen um Codew¨orter ist die linke Seite der Ungleichung. Sie ist beschr¨ankt durch die Anzahl q n der Vektoren von Fnq . 2
6
KAPITEL 1. GRUNDLAGEN
Definition 1.15 Ein Code heißt perfekt, wenn in Satz 1.14 Gleichheit gilt. Ist C ein perfekter t Fehler korrigierender Code u ¨ber q, so partitionieren die tUmgebungen um die Codew¨orter den Vektorraum Fnq . Zum Beispiel ist der bin¨are Repetitionscode der L¨ange n ein perfekter (n, 2, n)-Code, wenn n ungerade ist. Die trivialen perfekten Codes sind die Repetitionscodes und die trivialen Codes Fnq und die aus einem Wort bestehenden Codes. Eine große Familie von perfekten Codes sind die Hamming-Codes, die linear sind.
Kapitel 2 Lineare Codes 2.1
Einleitung und Definition
Definition 2.1 Ein linearer Code C ist ein Unterraum von Fnq . Ein [n, k]-Code ist ein linearer Code der Dimension k ≤ n. Ein [n, k, d]-Code ist ein [n, k]-Code mit Minimaldistanz d. Eine (k × n)-Matrix u ¨ ber Fq deren Zeilen eine Basis eines [n, k]-Codes bilden, heißt eine Erzeugermatrix des Codes. Beispiel 2.1 Die trivialen Codes {0} und Fnq sind lineare [n, 0]- und [n, n, 1]-Codes. Der Repetitionscode der L¨ange n ist ein [n, 1, n]-Code mit Basis {(1, 1, ..., 1)}. 0 0 0 0 1 1 0 1 1 Der bin¨are Code C = . Es 1 0 1 hat die Erzeugermatrix G = 1 0 1 1 1 0 gilt C = {(k1 , k2 )G | k1 , k2 ∈ F2 }. Jeder [n, k, d]-Code u urlich gilt die Umkehrung nicht. ¨ber q ist ein (n, q k , d)-Code. Nat¨ Definition 2.2 F¨ ur einen Code C ist w(C) := min{w(c) | c ∈ C \ {0}} das Minimalgewicht von C. Satz 2.3 F¨ ur einen linearen Code C gilt d(C) = w(C). Beweis. Es seien x, y ∈ C Codew¨orter mit d(x, y) = d. Dann ist z = x − y ein Codewort vom Gewicht d, und es folgt w(C) ≤ w(z) = d(C). Andererseits gilt w(C) = w(u) = d(u, 0) ≥ d(C) f¨ ur ein Codewort u ∈ C. 2 Beispiel 2.2 Es sei C der tern¨are lineare Code mit Erzeugermatrix 0 0 0 1 1
G = 0 1 1 0 0 . 1 0 1 0 1
7
8
KAPITEL 2. LINEARE CODES
⇒ C = {(c3 , c2 , c2 + c3 , c1 , c1 + c3 ) | c1 , c2 , c3 ∈ F3 }. Wegen x2 = 1 f¨ ur x 6= 0 in F3 , gilt f¨ ur c = (c3 , c2 , c2 + c3 , c1 , c1 + c3 ) ∈ C: w(c) = (c23
mod 3)+(c22
mod 3)+((c2 +c3 )2
mod 3)+(c21
mod 3)+((c1 +c3 )2
mod 3) ≥ 2
Dabei gilt Gleichheit, wenn c1 = 1 und c2 = c3 = 0. Also ist C ein [5, 3, 2]-Code und 1 Fehler erkennend. Vorteile linearer Codes: • Zur Bestimmung der Minimaldistanz eines Codes ben¨otigt man M2 = 21 M (M − 1) Vergleiche. Nach Satz 2.3 reichen f¨ ur lineare Codes schon M − 1 Vergleiche. • Um einen nichtlinearen Code zu beschreiben, muss man alle Codew¨orter auflisten. Ein linearer Code ist schon durch eine Basis eindeutig beschrieben. • Das Codieren und Decodieren kann durch Methoden der linearen Algebra sehr einfach sein. Nachteile linearer Codes: • Es gibt nur wenige lineare Codes. F¨ ur gewisse Kriterien sind lineare Codes jedoch oftmals die besten. So existiert f¨ ur jede Parametermenge, zu der nichttriviale perfekte Codes existieren, auch perfekte lineare Codes. • q muss eine Primzahlpotenz sein. Oftmals kann man aber Codes u ¨ ber einer Nichtprimzahlpotenzzahl q von Codes u ¨ber einer Primzahlpotenz ableiten. Ein Beispiel hierf¨ ur ist das folgende. Beispiel 2.3 Es sei D ≤ F10 11 der Code D = {(x1 , ..., x10 ) ∈
F10 11
|
10 X
ixi = 0
mod 11}.
i=1
Der ISBN Code (International Standard Book Number) folgt aus D, indem man alle W¨orter von D l¨oscht, die eine 10 in den Koordinaten 1, ..., 9 haben und dann die W¨orter (x1 , ..., x9 , 10) mit x1 , ..., x9 < 10 von D durch (x1 , ..., x9 , X) ersetzt. Die erste Stelle steht f¨ ur die Sprache, die zweite und dritte stehen f¨ ur den Verlag und die n¨achsten sechs Stellen sind die Nummer, die der Verlag dem Buch zuordnet. Das letzte bit ist eine Pr¨ ufziffer. Zwei Codes u ¨ber q derselben L¨ange heißen ¨aquivalent, wenn der eine aus dem anderen durch folgende Umformungen hervorgeht: (PP) Permutation der Koordinaten. (PS) Permutation der Symbole in einer festen Koordinate. Sind die Codes linear, dann ist die zweite Umformung die folgende:
2.2. DUALER CODE UND KONTROLLMATRIX
9
(PSL) Multiplikation der Symbole in einer Koordinate mit einem nichttrivialen Skalar. Jeder lineare [n, k]-Code ist ¨aquivalent zu einem Code mit Erzeugermatrix (Ik | A) wobei A eine (k × (n − k))-Matrix ist. Eine Erzeugermatrix dieser Form heißt in Standardform. Ist G = (Ik | A) mit A = (aij ) eine Erzeugermatrix in Standardform, dann sind (x1 , . . . , xn ) = uG = (u1 , . . . , uk ,
k X
ui ai,1 , . . . ,
i=1
k X
ui ai,n−k )
i=1
die Codew¨orter. Die Koordinaten xi = ui f¨ ur i = 1, . . . , k heißen Informationsstellen und die Koordinaten xk+1 , . . . , xn die Pr¨ ufstellen. Die redundanten Pr¨ ufstellen sollen die Nachrichten gegen St¨orungen im Kanal sch¨ utzen. Beispiel 2.4 Ein zum tern¨aren [5, 3, 2]-Code C von Beispiel 2.2 mit Erzeugermatrix G ¨aquivalenter Code D hat eine Erzeugermatrix in Standardform M = 1 0 0 1 1
0 1 0 1 0 . Wir erweitern C durch eine Pr¨ ufstelle und erhalten die neue 0 0 1 0 1
Erzeugermatrix
1 0 0 1 1 0 N = 0 1 0 1 0 1 0 0 1 0 1 1
Wie in Beispiel 2.2 ergibt sich das Gewicht eines Codeworts c = (c1 , c2 , c3 , c1 + c2 , c1 + c3 , c2 + c3 ) als w(c) = (c21 mod 3) + (c22 mod 3) + (c23 mod 3) + ((c1 + c2 )2 mod 3) + ((c1 + c3 )2 mod 3) + ((c2 + c3 )2 mod 3) ≥ 3. Also ist der neue Code ein tern¨arer [6, 3, 3]-Code, 1 Fehler-korrigierend und 2 Fehler-erkennend.
2.2
Dualer Code und Kontrollmatrix
Durch das u ¨ bliche Skalarprodukt h(u1 , ..., un ), (v1 , ..., vn )i = u1 v1 + u2 v2 + . . . + un vn kann man einen linearen Code nicht nur mittels einer Basis in einer Erzeugermatrix definieren, sondern auch durch seinen Senkrechtraum. Definition 2.4 F¨ ur einen linearen [n, k]-Code C u ¨ber einem K¨orper F ist der duale ⊥ Code C der Unterraum C ⊥ = {v ∈ Fn | hv, ui = 0 f¨ ur alle u ∈ C}. Der folgende Satz ist aus der linearen Algebra wohlbekannt. Satz 2.5 Es sei C ein [n, k]-Code ¨ uber einem K¨orper F.
10
KAPITEL 2. LINEARE CODES
(i) Ist G eine Erzeugermatrix von C, so geh¨ort v ∈ Fn zu C ⊥ genau dann, wenn Gv T = 0. (ii) Es gilt (C ⊥ )⊥ = C. (iii) Der duale Code C ⊥ ist ein linearer [n, n − k]-Code u ¨ber F.
2
Definition 2.6 Eine Kontrollmatrix H eines [n, k]-Codes C ist eine Erzeugermatrix des dualen Codes C ⊥ . Wenn G eine Erzeugermatrix eines [n, k]-Codes C ist, dann ist eine Kontrollmatrix H von C eine (n − k) × n-Matrix mit GH T = 0 und n − k linear unabh¨angigen Zeilen. Ist H eine Kontrollmatrix von C, dann folgt C = {v ∈ Fn | Hv T = 0} nach Satz 2.5. Beispiel 2.5 Es sei C der bin¨are [4, 2]-Code mit Erzeugermatrix 0 1 1 1 . G= 1 0 1 0 Dann ist der duale Code nach Satz 2.5 gleich C ⊥ = {c = (c1 , ..., c4 ) ∈ F42 | GcT = 0} = {(c1 , ..., c4 ) | c2 + c3 + c4 = 0 = c1 + c3 } = {(c1 , c2 , c1 , c1 + c2 ) | c1 , c2 ∈ F2 .} 1 0 1 1 C ⊥ ist ein [4, 2]-Code mit Erzeugermatrix H = , die eine Kontroll0 1 0 1 matrix von C ist. Satz 2.7 Ist G = (Ik | A) eine Erzeugermatrix eines [n, k]-Codes C in Standardform, dann ist H = −AT | In−k eine Kontrollmatrix von C.
Beweis. Weil G eine k × n-Matrix ist, ist H eine (n − k) × n-Matrix, deren Zeilen linear unabh¨angig sind, da die letzten n − k Spalten die Matrix In−k bilden. Also spannen die Zeilen von H einen Unterraum der Dimension n − k = dim(G⊥ ) auf. Wegen T −A T T GH = (Ik | A) −A | In−k = (Ik | A) =0 In−k
ist jede Zeile von H senkrecht zu jeder Zeile von G. Also bilden die Zeilen von H nach Lemma 2.5 eine Basis von C ⊥ . 2 Definition 2.8 Eine Kontrollmatrix der Form (B | In−k ) heißt in Standardform. Der folgende Satz ist ein fundamentaler Satz in der Theorie der linearen Codes und spielt eine wichtige Rolle f¨ ur die Hamming-Codes.
2.3. SYNDROMDECODIERUNG
11
Satz 2.9 Es sei C ein [n, k]-Code u ¨ber F mit Kontrollmatrix H. Dann ist d die Minimaldistanz von C genau dann, wenn je d − 1 Spalten von H linear unabh¨angig sind und es d linear abh¨angige Spalten von H gibt. Beweis. Nach Satz 2.3 gilt d(C) = w(C). Ein Vektor v = (v1 , ..., vn ) ist ein Codewort genau dann, wenn Hv T = v1 h1 +· · ·+vn hn = 0 gilt, wobei h1 , ..., hn die Spalten von H bezeichnen. Also gibt es f¨ ur jedes Codewort vom Gewicht w eine Menge von w linear abh¨angigen Spalten von H. W¨aren andererseits hk1 , ..., hkd−1 linear abh¨angige Spalten von H, dann g¨abe es eine nichttriviale Linearkombination x1 hk1 + · · · xd−1 hkd−1 = 0 und der Vektor x = (x1 , ..., xn ) mit xj = 0 f¨ ur j ∈ / {k1 , ..., kd−1 } geh¨ort zu C – ein Widerspruch zu w(C) = d. 2 Beispiel 2.6 Es sei C der [4, 2]-Code mit Erzeugermatrix G = Nach Satz 2.7 ist 1 1 1 0 H= 0 1 0 1
1 0 1 0 0 1 1 1
.
eine Kontrollmatrix von C. Es gilt d(C) = 2, da die Spalten 1 und 3 von H linear abh¨angig sind.
2.3
Syndromdecodierung
Das Codieren eines Worts (u1 , ..., uk ) ∈ Fk mittels eines linearen Codes ist einfach die Abbildung des Worts in den Code mittels der Erzeugermatrix G des Codes. Beim Decodieren muss man zu einem empfangenen Vektor y ∈ Fn das Codewort finden, das unter dem Hamming-Abstand am n¨achsten zu y liegt. Dazu benutzen wir, dass der Vektorraum Fn von den Nebenklassen des Codes partitioniert wird. Definition 2.10 Es sei N eine Nebenklasse eines Vektorraums. Wir nennen den Vektor minimalen Gewichts in N den Nebenklassenf¨ uhrer. Wenn mehrere Vektoren minimalen Gewichts in N existieren, so w¨ahlen wir einen von diesen zum Nebenklassenf¨ uhrer. Definition 2.11 Es sei C ein [n, k]-Code mit Kontrollmatrix H. Dann heißt der Vektor S(y) = Hy T f¨ ur y ∈ Fnq das Syndrom von y. Lemma 2.12 Es seien C ein [n, k]-Code und u, v und y Vektoren. Dann gelten (i) S(y) = 0 ⇔ y ∈ C und (ii) u + C = v + C ⇔ S(u) = S(v).
12
KAPITEL 2. LINEARE CODES
Beweis. (i) Nach Satz 2.5 gilt y ∈ C genau dann, wenn S(y) = Hy T = 0.
(ii) u+C = v +C ⇔ u−v ∈ C ⇔ H(u−v)T = 0 ⇔ S(u) = HuT = Hv T = S(v) 2 Um die Nebenklasse des Codes zu bestimmen, in der der empfangene Vektor y liegt, k¨onnen wir also nach Lemma 2.12 das Syndrom S(y) mit den Syndromen der Nebenklassenf¨ uhrer vergleichen. Ist e der entsprechende Nebenklassenf¨ uhrer, so dass y ∈ e + C gilt, so ist x = y − e ∈ C das zu y am n¨achsten liegende Codewort. Mit der sogenannten Syndromtabelle, die die Syndrome der Nebenklassenf¨ uhrer und die n−k Nebenklassenf¨ uhrer enth¨alt, also die Gr¨oße 2q hat, ist das Decodieren einfaches Nachschlagen. Beispiel mit Erzeuger- und Kontrollmatrizen 2.7 Es sei C der bin¨are [4, 2]-Code 1 0 1 0 1 1 1 0 G = and H = . Nach Beispiel 2.6 gilt w(C) = 2, 0 1 1 1
0 1 0 1
weshalb Vektoren des Gewichts 1 nicht zu C geh¨oren. Wegen q n−k = 4 suchen wir drei nichttriviale Nebenklassenf¨ uhrer. Man sieht leicht, dass (0, 1, 0, 0), (0, 0, 1, 0) und (0, 0, 0, 1) zu verschiedenen Nebenklassen geh¨oren. Die Syndromtabelle ist (0, 0, 0, 0) (0, 0, 0, 1) (0, 0, 1, 0) (0, 1, 0, 0)
(0, 0) (0, 1) (1, 0) (1, 1)
Ist y = (1, 0, 1, 1) empfangen worden, so bestimmen wir sein Syndrom S(y) = Hy T = (0, 1), finden S(y) in Zeile zwei und bestimmen das Codewort, das vermutlich gesendet worden ist, zu (0, 0, 0, 1) + y = (1, 0, 1, 0). Beispiel 2.8 Decodieren kann noch einfacher sein. Die Kontrollmatrix 1 1 1 1 1 1 1 1 1 1 H= 1 2 3 4 5 6 7 8 9 10 definiert einen [10, 8]-Code u ¨ber 11. Sei y = (x1 , ..., xj−1 , xj + k, xj+1 , ..., x10 ) ein empfangener Vektor. Dann ist sein Syndrom der Vektor (A, B) mit A=
10 X i=1
xi + k ≡ k
mod 11 und B =
10 X i=1
ixi + jk ≡ jk
mod 11.
Also ist A die Fehlergr¨oße und B·A−1 die Fehlerkoordinate. Der Decodieralgorithmus ist (i) Bestimme das Syndrom (A, B). (ii) Ist (A, B) = 0, dann nehmen wir an, dass kein Fehler aufgetreten ist. (iii) Ist AB 6= 0, dann nehmen wir an, dass genau ein Fehler aufgetreten ist, den wir korrigieren, indem wir A an der B/Aten Stelle von y abziehen.
2.4. BEISPIELE
13
(iv) Ist nur eins von A und B Null, dann haben wir wenigstens zwei Fehler entdeckt. Sei zum Beispiel y = (0, 1, 4, 3, 0, 6, 8, 2, 0, 1). Dann sind wegen S(y) = (A, B) = (3, 0) wenigstens zwei Fehler aufgetreten. F¨ ur y 0 = (0, 1, 5, 3, 0, 6, 8, 2, 0, 1) ist (A, B) = (4, 3) und es ist ein Fehler der Gr¨oße 4 an Stelle 4/3 = 5 aufgetreten; wir decodieren also zu (0, 1, 5, 3, 7, 6, 8, 2, 0, 1).
2.4
Beispiele
2.4.1
Hamming-Codes
Hamming-Codes sind perfekte lineare Codes mit Minimaldistanz 3. F¨ ur eine gegebene Redundanz r ∈ N und Primzahlpotenz q konstruieren wir im ersten Unterkapitel eine geeignete Kontrollmatrix. Danach stellen wir das Decodieren der HammingCodes vor und betrachten im letzten Unterabschnitt bin¨are Hamming-Codes. Eine Anwendung der 1-Fehler-korrigierenden Hamming-Codes ist in Bussen von PCs, wo z.B. der Transport zwischen RAM-Speicher und Festplatte sicher sein soll. Definition und wichtige Eigenschaften F¨ ur eine gegebene Redundanz r ≥ 2 konstruieren wir einen [n, n − r, 3]-Code u ¨ ber Fq . Nach Satz 2.9 sind je zwei Spalten einer Kontrollmatrix eines Hamming-Codes linear unabh¨angig und es gibt drei linear abh¨angige Spalten. Die q r − 1 Vektoren von Frq \ {0} sind durch die 1-dimensionalen Unterr¨aume von Frq in (q r − 1)/(q − 1) Komponenten partitioniert. Definition 2.13 Es seien r ∈ N, n = (q r − 1)/(q − 1) und H ∈ Fn×r , so dass q je zwei Spalten von H linear unabh¨angig sind. Dann heißt der [n, n − r]-Code mit Kontrollmatrix H ein Hamming-Code und wird mit Ham(r, q) bezeichnet. Satz 2.14 Ham(r, q) ist ein perfekter 1 Fehler-korrigierender [(q r −1)/(q −1), (q r − 1)/(q − 1) − r]-Code.
Beweis. Ham(r, q) ist linear der L¨ange (q r −1)/(q−1) und Dimension (q r −1)/(q− 1) − r. Die Minimaldistanz ist 3 nach Satz 2.9. Die 1-Umgebung um x ∈ Ham(r, q) besteht aus allen Vektoren, die sich von x an h¨ochstens einer Stelle unterscheiden. Dies sind |S1 (x)| = 1 + n(q − 1) = q r
Vektoren (vgl. Lemma 1.13). Wegen |Ham(r, q)| = q n−r , u ¨berdecken die 1-Umgebungen n−r r n um Codew¨orter genau q · q = q Vektoren, d.h. ganz Fnq . Also ist Ham(r, q) perfekt. 2 Als Spalten einer Kontrollmatrix H von Ham(r, q) kann man alle Vektoren mit einer 1 als erstem von Null verschiedenen Eintrag nehmen. Diese Vektoren repr¨asentieren alle (q r − 1)/(q − 1) 1-dimensionalen Unterr¨aume von Frq . Andere Kontrollmatrizen k¨onnen leicht gefunden werden.
14
KAPITEL 2. LINEARE CODES
Beispiel 2.9 Ham(3, 3) ist durch die Kontrollmatrix 0 0 0 0 1 1 1 1 1 1 1 1 1
H= 0 1 1 1 0 0 0 1 1 1 2 2 2 1 0 1 2 0 1 2 0 1 2 0 1 2
definiert.
Das Codierungstheorieproblem ist durch die Hamming-Codes f¨ ur jede Primzahlpotenz q und d = 3 f¨ ur eine unendliche Folge von n gel¨ost: Korollar 2.15 Ist q eine Primzahlpotenz und n = (q r − 1)/(q − 1) f¨ ur ein r ∈ N, n−r dann gilt Aq (n, 3) = q . 2 Decodieren von Ham(r, q) Die Nebenklassenf¨ uhrer ungleich 0 des Hamming-Codes Ham(r, q) sind genau die Vektoren vom Gewicht 1 von Fnq (beachte n = (q r − 1)/(q − 1)). Das Syndrom eines Nebenklassenf¨ uhrers y = (0, ..., 0, k, 0, ..., 0) ist also S(y) = H(0, ..., 0, k, 0, ..., 0)T = kHj , wobei Hj die jte Spalte von H bezeichnet. Ist das Syndrom S(y) eines empfangenen Vektors y ungleich 0, so gilt S(y) = kHj f¨ ur gewisse k und j. Wenn wir annehmen, dass 1 Fehler aufgetreten ist, dann wird dieser durch Subtraktion von k von der jten Koordinate von y behoben. Es seien zum Beispiel q = 5 und 0 1 1 1 1 1 . H= 1 0 1 2 3 4
Ist der empfangene Vektor y = (2, 0, 3, 0, 3, 1), so gilt S(y) = (2, 3) = 2(1, 4), also k = 2 und j = 6, und wir decodieren y als (2, 0, 3, 0, 3, 4). Ist C ein bin¨arer Hamming-Code, dann ist das Syndrom S(0, ..., 0, 1, 0, ..., 0) des Nebenklassenf¨ uhrers mit der 1 an Stelle j genau die transponierte jte Spalte von H. Somit ist das Decodieren eines bin¨aren Hamming-Codes noch einfacher als eines Hamming-Codes u ¨ ber q > 2. Das Erweitern von Codes Definition 2.16 F¨ ur einen linearen Code C der L¨ange n heißt der Code C = {(c1 , c2 , ..., cn , cn+1 ) | (c1 , c2 , ..., cn ) ∈ C, der um eine Pr¨ ufstelle erweiterte Code von C.
n+1 X i=1
ci = 0}
2.4. BEISPIELE
15
Ist H eine Kontrollmatrix 0 .. . H H = 0 1 ... 1 1
eines linearen Codes C, dann ist
eine Kontrollmatrix des erweiterten Codes C. Hat ein bin¨arer linearer Code C die Minimaldistanz d, dann hat sein erweiterter Code C die Minimaldistanz d + 1. Das Erweitern eines bin¨aren linearen Code verlangsamt ¨ also die Ubertragung, erh¨oht aber die Minimaldistanz. Satz 2.17 Der erweiterte bin¨are Hamming-Code Ham(r, 2) ist ein bin¨arer [2r , 2r − 1 − r, 4]-Code. 2
2.4.2
Hadamard-Codes
Definition 2.18 Eine quadratische Matrix der Ordnung n heißt Hadamard-Matrix, falls sie nur Eintr¨age 1 und −1 hat, so dass HH T = nI gilt. Es sei Hn eine Hadamard-Matrix der Ordnung n. Ersetzt man −1 durch 0 in den Matrizen Hn und −Hn , dann sind die Zeilen dieser Matrizen 2n W¨orter von Fn2 . Da sich je zwei Zeilen einer Hadamard-Matrix in der H¨alfte der Stellen unterscheiden, formen diese W¨orter einen (n, 2n, n/2)-Code. Er heißt Hadamard-Code. 1 1 Beispiel 2.10 1. Es sei H2 = . Der Hadamard-Code ist der bin¨are −1 1 1 0 (2, 4, 1)-Code 0 1
1 1 = F22 . 0 0
2. Der Hadamard-Code
der (4, 8, 2)-Code
1 0 0 1 0 1 1 0
1 1 1 −1 1 −1 des Kroneckerprodukts H2 ⊗ H2 = −1 −1 1 1 −1 −1 1 1 1 1 0 1 0 1 1 0 0 1 . 0 0 0 0 1 0 1 0 0 1 1 0
1 1 ist 1 1
3. Ein Hadamard-Code der L¨ange 32 ist 1969 von der Sonde Mariner benutzt worden, um die ersten Bilder von Mars and Saturn zur Ende zu senden. Er ist 7-Fehlerkorrigierend.
16
KAPITEL 2. LINEARE CODES
Auch heute suchen Forscher noch Hadamard-Matrizen. Die Isomorphieklassen der Hadamard-Matrizen sind bis zur Ordnung n = 28 bekannt und die Anzahl der verschiedenen Klassen ist n # der Klassen
2 4 8 12 16 1 1 1 1 5
20 24 28 3 60 487
¨ F¨ ur einen aktuellen Uberblick, siehe die website von J. A. Sloane: www.research.att.com/∼njas/hadamard/ Hadamard (1865-1963) hat als Professor in Bordeaux gelehrt und ist durch den Beweis des Primzahlsatzes 1896 ber¨ uhmt geworden: lim
π(x)
x→∞
2.5
x ln(x)
= 1, π(x) = |{p ≤ x | p ist Primzahl}|
Informationstheorie
Wir betrachten einen bin¨aren linearen Code C und einen symmetrischen Kanal mit Symbolfehlerwahrscheinlichkeit p. Satz 2.19 Es seien C ein bin¨arer [n, k]-Code und αi die Anzahl der Nebenklassenf¨ uhrer vom Gewicht i f¨ ur i = 0, ..., n. Wenn jede Nebenklasse genau einen Vektor minimalen Gewichts hat, dann ist die Wahrscheinlichkeit, dass ein Vektor mit der Syndromdecodierung als der gesendete Vektor decodiert wird, gleich 1 − P err (C) = Pn i n−i α p (1 − p) . 2 i=0 i Beispiel 2.11 Es sei C der Code Ham(3, 2). Ist die Symbolfehlerwahrscheinlichkeit p = 0, 01, so folgt 1 − Perr (C) =
7 X i=0
αi pi (1 − p)7−i = 0.010 · 0.997 + 3 · 0.011 · 0.996 = 0.9603.
Ist d(C) = 2t + 1 oder 2t + 2, dann korrigiert C bis zu t Fehler und jeder Vektor n ur 0 ≤ i ≤ t. Die vom Gewicht ≤ t ist ein Nebenklassenf¨ uhrer. Es folgt αi = i f¨ αi f¨ ur i > t zu bestimmen, kann sehr schwierig sein. Wenn aber C ein perfekter [n, k, d]-Code ist, dann haben alle Nebenklassenf¨ uhrer Gewichte ≤ t und es folgt αi = ni f¨ ur 0 ≤ i ≤ t und αi = 0 f¨ ur i > t.
Der Decodierer entdeckt Fehler nur nicht, wenn der empfangene Vektor y wieder ein Codewort 6= x ist. Dann ist der Fehlervektor e = y − x ein Codewort. Also ist die Wahrscheinlichkeit, dass man ein falsches Codewort erh¨alt, unabh¨angig vom gesendeten Codewort x.
Satz 2.20 Es seien C ein bin¨arer [n, k]-Code und Ai die Anzahlen der Codew¨orter vom Gewicht i. Wird C zur Fehlererkennung benutzt, so ist die Wahrscheinlichkeit,
2.6. GEWICHTSPOLYNOME
17
dass ein empfangenes Codewort nicht das gesendete ist, gleich Pundetec (C) =
n X i=1
Ai pi (1 − p)n−i . 2
Nachdem wir die Hamming-Codes als perfekte Codes kennengelernt haben, werden wir bei den zyklischen Codes noch zwei perfekte Codes kennenlernen, die GolayCodes. Ein sehr einschr¨ankendes Resultat von Tiet¨av¨ainen ist folgendes. Satz 2.21 (Tiet¨ av¨ ainen, 1973) Es sei C ein nichttrivialer perfekter Code u ¨ber q. Ist q eine Primzahlpotenz, so hat C die gleichen Parameter wie ein Hamming- oder ein Golay-Code. F¨ ur d(C) ≥ 7 gilt sogar nach verschiedenen Arbeiten aus den 80iger Jahren: Satz 2.22 Ist C ein nichttrivialer perfekter Code u ¨ber q mit d(C) ≥ 7, so ist C der 12 bin¨are Golay (23, 2 , 7)-Code.
2.6
Gewichtspolynome
Definition 2.23 Es seien C ein linearer Code der L¨ange n und Ai die Anzahl der Codew¨orter vom Gewicht i, i = 0, ..., n. Dann heißen das Polynom A(z) =
n X
Ai z i =
i=0
X c∈C
z w(c) ∈ Z[z]
das Gewichtspolynom und die Folge (Ai )ni=0 die Gewichtsverteilung von C. Sind C ein linearer Code und c ∈ C, dann ist Ai die Anzahl der Codew¨orter im Abstand i von c. F¨ ur nichtlineare Codes ist Ai nicht notwendig unabh¨angig von c. Definition 2.24 Es seien (G, +) eine abelsche Gruppe und (T, ·) die Gruppe der komplexen Zahlen vom Betrag 1. Ein Charakter ist ein Homomorphismus χ : G → T . Wenn χ(g) = 1 f¨ ur alle g ∈ G gilt, dann heißt χ der triviale Charakter. Lemma 2.25 F¨ ur jeden Charakter χ einer abelschen Gruppe (G, +) gelten (i) χ(0) = 1 und (ii)
P
g∈G
χ(g) =
|G| wenn χ der triviale Charakter ist 0 sonst
Beweis. F¨ ur h ∈ G gilt X X X χ(h) χ(g) = χ(h + g) = χ(k). g∈G
g∈G
k∈G
Wenn χ nicht der triviale Charakter ist, dann gibt es ein h ∈ G mit χ(h) 6= 1.
2
18
KAPITEL 2. LINEARE CODES
Satz 2.26 (Dualit¨ atssatz von MacWilliams, 1963) Es seien C ein [n, k]-Code uber q mit Gewichtspolynom A(z) und B(z) das Gewichtspolynom von C ⊥ . Dann ¨ gilt 1−z −k n B(z) = q (1 + (q − 1)z) A 1 + (q − 1)z Beweis. Es seien χ ein nichttrivialer Charakter von (Fq , +) und V := Fnq . Wir setzen f¨ ur u ∈ V X gu (z) := χ(hu, vi)z w(v) v∈V
mit hu, vi = u1 v1 + . . . + un vn . Wir erweitern die Gewichtsfunktion formal von Fnq 0 falls x = 0 auf Fq durch w(x) = . Damit folgt 1 sonst X gu (z) = z w(v) χ(hu, vi) v∈V
=
=
X
v∈V n Y
z w(v1 ) χ(u1 v1 )z w(v2 ) χ(u2 v2 ) . . . z w(vn ) χ(un vn )
X
z w(v) χ(ui v).
i=1 v∈Fq
P w(v) χ(ui v) = 1 + (q − 1)z; ist ui 6= 0, dann folgt Ist ui = 0, dann gilt v∈Fq z P P w(v) χ(ui v) = 1 + z v∈Fq \{0} χ(v) = 1 − z. Es ergibt sich v∈Fq z gu (z) = (1 − z)w(u) (1 + (q − 1)z)n−w(u) .
Andererseits gilt X X XX X χ(hu, vi). gu (z) = χ(hu, vi)z w(v) = z w(v) u∈C
u∈C v∈V
v∈V
u∈C
Die Abbildung u 7→ χ(hu, vi) definiert einen Charakter vonC, der genau f¨ ur v ∈ C ⊥ P |C| f¨ ur v ∈ C ⊥ nach der triviale Charakter ist. Daher folgt u∈C χ(hu, vi) = 0 sonst P P Lemma 2.25 (ii). Es folgen u∈C gu (z) = u∈C ⊥ |C|z w(u) = |C|B(z) und B(z) = |C|
−1
X
gu (z) = q
−k
u∈C
= q −k (1 + (q − 1)z)n A
(1 + (q − 1)z)
1−z 1 + (q − 1)z
n
X u∈C
1−z 1 + (q − 1)z
w(u)
. 2
2.6. GEWICHTSPOLYNOME
19
Lemma 2.27 Das Gewichtspolynom von Ham(r, q)⊥ ist 1 + (q r − 1)z q wichtspolynom von Ham(r, q) ist q r−1 −1 −r n r q r−1 q (1 + (q − 1)z) + (q − 1)(1 − z) (1 + (q − 1)z) q−1 .
r−1
. Das Ge-
Beweis. Es sei H eine Kontrollmatrix von Ham(r, P q) mit Zeilen h1 , ..., hr . Ein ⊥ Codewort von Ham(r, q) \ {0} ist von der Form c = ri=1 ai hi mit a1 , ..., ar nicht alle Null. Also ist die Anzahl von Nullen in c gleich der Anzahl der Spalten von H, die zu der Hyperebene U von Frq mit Gleichung a1 x1 + ... + ar xr = 0 geh¨oren. Weil H aus jedem 1-dimensionalen Unterraum von U einen Vektor als Spalte enth¨alt, sind dies (q r−1 − 1)/(q − 1) Spalten. Mit w(c) = n − (q r−1 − 1)/(q − 1) = q r−1 ergibt sich das Gewichtspolynom von Ham(r, q)⊥ zu B(z) = 1 + (q r − 1)z q
r−1
.
Mit dem Dualit¨atssatz von MacWilliams folgt das Gewichtspolynom von Ham(r, q): 1−z 1 n (1 + (q − 1)z) · B A(z) = q 1 + (q − 1)z ! q r−1 1 (1 − z) = (1 + (q − 1)z)n · 1 + (q r − 1) q (1 + (q − 1)z)qr−1
q r −1 r−1 1 qr − 1 r−1 (1 + (q − 1)z)n + (1 + (q − 1)z)n (1 − z)q (1 + (q − 1)z) q−1 −q q q r −1 q q r−1 −1 1 r−1 r q (1 + (q − 1)z) q−1 + (q − 1)(1 − z) (1 + (q − 1)z) q−1 = q
=
2
20
KAPITEL 2. LINEARE CODES
Kapitel 3 Projektive Geometrie Zur Konstruktion eines linearen Codes der L¨ange n, Redundanz r und Minimaldistanz d konstruiert man eine Kontrollmatrix gem¨aß Satz 2.9. Die Spalten von H erzeugen 1-dimensionale Unterr¨aume von Frq , so dass je d − 1 linear unabh¨angig sind und es d linear abh¨angige Spalten gibt. F¨ ur d = 3 haben wir die Hamming-Codes Ham(r, q) gefunden, die perfekt sind. Geht das auch f¨ ur d ≥ 4? Hierf¨ ur sind also die 1-dimensionalen Unterr¨aume von Frq wesentlich. Der projektive Raum P G(r−1, q) besteht aus den 1-dimensionalen Unterr¨aumen von Frq als Punkten und den 2-dimensionalen Unterr¨aumen als Geraden. Die Suche nach Punktmengen in P G(r − 1, q) wie oben ist viel ¨alter als die Codierungstheorie. In diesem Bereich wird aktiv geforscht.
3.1
Definitionen
Definition 3.1 Es seien P und L nichtleere Mengen, wobei L eine Menge nichtleerer Teilmengen von P ist. Die Elemente von P heißen Punkte und die von L Geraden. Dann ist P = (P, L) ein projektiver Raum, wenn folgendes gilt: (P1) Durch je zwei Punkte geht genau eine Gerade. (P2) (Veblen-Young Axiom) Sind A, B, C und D vier Punkte, so dass sich die Geraden AB und CD schneiden, dann schneiden sich auch die Geraden AC und BD. (P3) Es gibt mindestens zwei Geraden und auf jeder Geraden sind mindestens drei Punkte. Definition 3.2 Es sei V ein F -Vektorraum. Wir definieren eine Geometrie P (V ) wie folgt: • Die Punkte von P (V ) sind die 1-dimensionalen Unterr¨aume von V . • Die Geraden von P (V ) sind die 2-dimensionalen Unterr¨aume von V . • Inzidenz ist Enthaltensein. 21
22
KAPITEL 3. PROJEKTIVE GEOMETRIE
Satz 3.3 F¨ ur dim(V ) ≥ 3 ist P (V ) ein projektiver Raum. Beweis. Hausaufgabe.
2
Die Unterraumstruktur des Vektorraums V findet sich im projektiven Raum P (V ) wieder. Die 2-dimensionalen Unterr¨aume von V sind die Geraden von P (V ), die 3dimensionalen Unterr¨aume von V die Ebenen von P (V ) und die i + 1-dimensionalen Unterr¨aume von V die i-R¨aume von P (V ) f¨ ur i = 0, ..., dim(V ) − 2. Auch der synthetische projektive Raum hat eine Unterraumstruktur. Definition 3.4 Eine Punktmenge U eines projektiven Raums P heißt Linearmenge, wenn f¨ ur zwei Punkte p, q ∈ U auch jeder Punkt der Geraden pq zu U geh¨ort. Das Erzeugnis oder der von U aufgespannte Unterraum hU i von U ist die kleinste Linearmenge, die U enth¨alt, d.h. hU i := ∩U ⊆L;L Linearmenge L. Definition 3.5 Es sei P ein projektiver Raum. Eine Punktmenge B von P heißt unabh¨angig, wenn f¨ ur jede Teilmenge B 0 ⊂ B und jeden Punkt p ∈ B \ B 0 gilt, dass 0 p nicht in hB i liegt. Eine Basis von P ist eine unabh¨angige Punktmenge, die P erzeugt. Ist d + 1 die Anzahl der Elemente einer Basis, so heißt d die projektive Dimension von P . Ohne Beweis geben wir hier folgenden Satz an: Satz 3.6 (1. Struktursatz der projektiven Geometrie) Ist P ein projektiver Raum der Dimension d ≥ 3, so ist P isomorph zum projektiven Raum P (V ) eines (d + 1)-dimensionalen Vektorraums V . 2 Lemma 3.7 Ist P ein projektiver Raum, so gibt es eine bijektive Abbildung zwischen den Punkten zweier Geraden. Beweis. Seien L und M zwei Geraden. Wenn sich L und M in einem Punkt p schneiden, so sei z ein Punkt der von L und M aufgespannten Ebene, der weder auf L noch auf M liegt. Wir definieren eine Abbildung ϕ : L → M durch ϕ(p) = p und ϕ(x) = px ∩ M f¨ ur alle x ∈ L \ {p}. Diese Abbildung ist wegen (P1) bijektiv. Sind L und M disjunkt, so sei N eine Gerade, die sowohl L als auch M schneidet. Dann ist die Komposition zweier Bijektionen zwischen L und N und zwischen N und M eine Bijektion zwischen L und M . 2 Definition 3.8 Ist q + 1 die Anzahl der Punkte eines endlichen projektiven Raums P auf jeder Geraden, so heißt q die Ordnung von P . Wenn P ∼ ur einen = P (V ) f¨ (d + 1)-dimensionalen Vektorraum V gilt, so schreibt man auch P = P G(d, q).
3.2
Homogene Koordinaten
Mit einer Basis B = {b0 , ..., bd } von V l¨aßt sich jeder Vektor v ∈ V eindeutig schreiben als v = v 0 b0 + v 1 b1 + . . . + v d bd .
3.2. HOMOGENE KOORDINATEN
23
Der entsprechende Punkt von P (V ) ist der 1-dimensionale Unterraum p = hvi. Jedes skalare Vielfache a(v0 , ..., vd ) von (v0 , ..., vd ) f¨ ur a ∈ F \ {0} beschreibt denselben Punkt p von P (V ). Daher heißt jedes solche d + 1-Tupel homogene Koordinaten des Punktes p. Ein Vorteil homogener Koordinaten ist, dass man sie normieren kann. Lemma 3.9 Es seien p1 , ..., pt Punkte von P (V ) mit homogenen Koordinaten pi = (ai0 , ai1 , . . . , aid ). Genau dann sind p1 , ..., pt unabh¨angig, wenn die Matrix a10 a11 . . . a1d a20 a21 . . . a2d .. .. .. . . . at0 at1 . . . atd
den Rang t hat.
Beweis. Wenn die Matrix den Rang t hat, dann spannen die homogenen Koordinaten der t Punkte einen t-dimensionalen Unterraum von V auf. Also erzeugen die Punkte p1 , ..., pt einen (t − 1)-dimensionalen Unterraum von P (V ), d.h. sie sind eine Basis dieses Unterraums und unabh¨angig. Gilt umgekehrt r < t f¨ ur den Rang r der Matrix, so spannen die homogenen Koordinaten der Punkte einen r-dimensionalen Unterraum von V auf. Die Punkte p1 , ..., pt liegen dann in einem (r − 1)-dimensionalen Unterraum von P (V ) und sind also nicht unab¨angig. 2 Eine Hyperebene eines d-dimensionalen projektiven Raums P (V ) ist ein (d − 1)dimensionaler Unterraum. Satz 3.10 Es seien V ein F -Vektorraum der Dimension d + 1 und H eine Hyperebene von P (V ). Dann sind die homogenen Koordinaten der Punkte von H die L¨osungen einer homogenen linearen Gleichung. Umgekehrt beschreibt jede homogene lineare Gleichung eine eindeutige Hyperebene von P (V ). Beweis. Es sei H 0 die Hyperebene von V mit P (H 0 ) = H. Dann sind die Vektoren von H 0 die L¨osungen einer homogenen linearen Gleichung. Umgekehrt bilden die L¨osungen einer homogenen linearen Gleichung in einem Vektorraum der Dimension d + 1 einen Unterraum H 0 der Dimension d. Also ist H 0 eine Hyperebene von V und P (H 0 ) eine Hyperebene von P (V ). 2 Korollar 3.11 Ist U ein t-dimensionaler Unterraum von P (V ) der Dimension d, dann ist U durch ein homogenes System von d−t Gleichungen eindeutig beschrieben. Beweis. Der Unterraum U von P (V ) entspricht einem (t + 1)-dimensionalen Unterraum von V . Dieser ist Schnitt von d − t Hyperebenen von V , die wiederum Hyperebenen von P (V ) entsprechen. Die Punkte im Schnitt dieser Hyperebenen von P (V ) werden gem¨aß Satz 3.10 eindeutig durch die d − t zugeh¨origen Gleichungen beschrieben und sind genau die Punkte von U . 2
24
KAPITEL 3. PROJEKTIVE GEOMETRIE
3.3
Endliche projektive R¨ aume
Es sei P (V ) immer ein endlicher projektiver Raum der Ordnung q. Satz 3.12 Es seien P (V ) ein projektiver Raum der Dimension d und Ordnung q und U ein Unterraum von P (V ) der Dimension 1 ≤ t ≤ d. (i) Die Anzahl der Punkte von U ist q t + q t−1 + . . . + q + 1 = hat P (V ) genau q d + . . . + q + 1 Punkte.
q t+1 −1 . q−1
Insbesondere
(ii) Die Anzahl der Geraden in U durch einen Punkt ist q t−1 + . . . + q + 1. (iii) Die Anzahl der Geraden in U ist
(q t +...+q+1)(q t−1 +...+q+1) . q+1
Beweis. (i) Nach Korollar 3.11 sind die Punkte von U durch ein System von d − t homogenen linearen Gleichungen vom Rang d−t mit d+1 Variablen beschrieben. Die L¨osungen dieses Gleichungssystems bilden einen Unterraum der Dimension t+1, der q t+1 − 1 Vektoren ungleich Null hat. Je q − 1 dieser Vektoren beschreiben denselben projektiven Punkt von P (V ). Also hat U genau (q t+1 − 1)/(q − 1) Punkte. (ii) Let Q be a point of U . Then there are q t + q t−1 + . . . + q points in U different from Q each of which lies on a line with Q. On each line through Q are q points different from Q, whence there are q t−1 + . . . + q + 1 lines through Q in U . (iii) If N is the number of lines in U , counting the incident point-line pairs in U in two ways, we find N (q + 1) = (q t + ... + q + 1)(q t−1 + .... + q + 1). 2 Beispiel 3.1 Die Fano-Ebene ist die projektive Ebene P G(2, 2) mit insgesamt 7 Punkten und 7 Geraden, wobei 3 Punkte auf jeder Geraden liegen und 3 Geraden durch jeden Punkt gehen.
3.4
Quadriken
3.4.1
Bo ¨gen und rationale Normkurven
Definition 3.13 Eine Punktmenge eines d-dimensionalen projektiven Raums P heißt ein Bogen (engl. arc), wenn je d + 1 seiner Punkte eine Basis von P sind. Ein Bogen mit n Punkten heißt n-Bogen. Beispiel 3.2 3 Punkte einer projektiven Ebene, die nicht auf einer Geraden liegen. 4 Punkte einer Fano-Ebene. Definition 3.14 Es sei V ein F -Vektorraum der Dimension d + 1. Dann heißt die Punktmenge von P (V ) mit homogenen Koordinaten C := {(1, t, t2 , . . . , td ) | t ∈ F } ∪ {(0, . . . , 0, 1)} eine rationale Normkurve von P (V ).
3.4. QUADRIKEN
25
Satz 3.15 Eine rationale Normkurve von P G(d, F ) mit 2 ≤ d ≤ |F | ist ein Bogen. Beweis. Es seien p1 , ..., pd+1 Punkte einer rationalen Normkurve C. Wir unterscheiden die F¨alle, ob der Punkt (0, ..., 0, 1) in {p1 , ..., pd+1 } enthalten ist oder nicht. Gelte zuerst pi = (1, ti , t2i , ..., tdi ) f¨ ur alle i = 1, ..., d + 1. Dann ist die Matrix mit den Zeilen p1 , ..., pd+1 eine Vandermonde-Matrix und die Punkte sind nach Satz 3.9 unabh¨angig. Sei nun (0, ..., 0, 1) unter den Punkten p1 , ..., pd+1 . Dann ist die Matrix, deren Zeilen die homogenen Koordinaten von p1 , ..., pd+1 sind, von der Form
1 t1 t21 1 t2 t22 . . . .. .. .. 1 t t2 d d 0 0 0
. . . td1 . . . td2 .. .
. . . tdd ... 1
und hat auch eine nichttriviale Determinante, so dass die Punkte auch in diesem Fall unabh¨angig sind. 2
3.4.2
Quadriken
Definition 3.16 Es sei V ein Vektorraum u ¨ber einem kommutativen K¨orper F. Eine Abbildung q : V → F heißt quadratische Form auf V , wenn (i) q(kv) = k 2 q(v) f¨ ur alle v ∈ V und k ∈ F gilt und (ii) die Abbildung B : V × V → F, B(v, w) = q(v + w) − q(v) − q(w) eine symmetrische Bilinearform ist. Die Form Q heißt nichtausgeartet, wenn f¨ ur v ∈ V mit Q(v) = 0 aus B(v, x) = 0 f¨ ur alle x ∈ V schon v = 0 folgt. Definition 3.17 Es sei Q eine quadratische Form eines Vektorraums V . Die zu Q geh¨orige Quadrik von P G(V ) ist die Menge aller Punkte hvi mit Q(v) = 0. Lemma 3.18 Es sei {v1 , ..., vn } eine Basis eines F-Vektorraums Pn PjV . Zu jeder quadratischen Form Q auf V gibt es aij ∈ F, so dass Q(v) = j=1 i=1 aij ki kj f¨ ur alle P v = ni=1 ki vi ∈ V gilt.
26
KAPITEL 3. PROJEKTIVE GEOMETRIE
Beweis. Wir setzen ur i = 1, ..., n und aij := B(vi , vj ) f¨ ur alle i 6= j. P aii := Q(vi ) f¨ Dann gilt f¨ ur v = ni=1 ki vi ∈ V Q(
n X
ki vi ) = Q(
i=1
= Q(
n−1 X
i=1 n−1 X
ki vi ) + Q(kn vn ) + ki vi ) +
j n X X
=
B(ki vi , kn vn )
i=1
i=1
.. .
n−1 X
n X
ki kn ain
i=1
ki kj aij
j=1 i=1
2 Also besteht eine Quadrik in P G(2, q) aus den Punkten mit homogenen Koordinaten (x0 , x1 , x2 ), die einer quadratischen Gleichung ax20 + bx21 + cx22 + dx1 x2 + ex0 x2 + f x0 x1 = 0
(3.1)
gen¨ ugen. Gilt char(F ) 6= 2, dann kann diese Gleichung auch durch folgende Matrixgleichung beschrieben werden: a
f /2 e/2 x0 b d/2 x1 e/2 d/2 c x2
(x0 , x1 , x2 ) f /2
(3.2)
Satz 3.19 F¨ ur ungerades q sei C eine Quadrik von P G(2, q), f¨ ur welche die Matrix in (3.2) nichtsingul¨ar ist. Dann enth¨alt C genau q + 1 Punkte und ist projektiv ¨aquivalent zu der rationalen Normkurve {(1, t, t2 ) | t ∈ Fq } ∪ {(0, 0, 1)} von Punkten, ugen. die der quadratischen Gleichung x21 − x0 x2 = 0 gen¨ Beweis. Man bestimmt eine Transformationsmatrix, die die Quadrik C mit Matrix aus 3.2 auf die Quadrik mit der Gleichung x21 −x0 x2 = 0 oder Matrix
abbildet.
0 0 −1/2 0 1 0 −1/2 0 0
2
Satz 3.20 F¨ ur gerades q sei C die durch die Gleichung (3.1) definierte Quadrik von P G(2, q). Wenn ad2 + be2 + cf 2 + def 6= 0 gilt, dann ist C projektiv ¨aquivalent zu der rationalen Normkurve {(1, t, t2 ) | t ∈ Fq } ∪ {(0, 0, 1)} und hat q + 1 Punkte. Beweis. Ohne Beweis.
2
Definition 3.21 Eine Quadrik von P G(2, q) heißt nichtsingul¨ar, wenn sie ¨aquivalent zu der rationalen Normkurve mit Gleichung x21 − x0 x2 = 0 ist. Bemerkung: Die singul¨aren Quadriken in P G(2, q) sind
3.4. QUADRIKEN
27
• die Vereinigung zweier Geraden (auch ein und derselben) und
• ein Punkt, wenn der K¨orper F nicht quadratisch abgeschlossen ist.
Satz 3.22 Es sei C eine nichtsingul¨are Quadrik von P G(2, q). Jede Gerade l schneidet C in 0, 1 oder 2 Punkten. Entsprechend heißt l eine externe Gerade, eine Tangente, oder eine Sekante. Jeder Punkt von C liegt auf genau einer Tangente. Beweis. Es seien q die zu C geh¨orige quadratische Form auf F3q und L eine Gerade von P G(2, q), die drei Punkte R = hri, S = hsi, T = hti von C hat. O.B.d.A. k¨onnen wir t = r + ks f¨ ur ein k ∈ Fq annehmen. Dann folgt B(r, s) = 0 wegen 0 = q(t) = q(r + ks) = B(r, ks) + q(r) + q(ks) = k · B(r, s) + 0 + k 2 · 0. Ist nun p := hr+hsi ein beliebiger anderer Punkt auf L f¨ ur h ∈ Fq , so folgt q(p) = q(r+hs) = B(r, hs) + q(r) + q(hs) = hB(r, s) = 0, d.h. p ∈ C. Wegen |C| = q +1 liegt auf q Geraden durch einen Punkt p von C genau ein weiterer Punkt von C. Die nach Satz 3.12 verbleibende Gerade durch p ist die eindeutige Tangente an C durch p. 2 Definition 3.23 Ein Oval einer projektiven Ebene ist ein Bogen, durch den in jedem Punkt genau eine Tangente geht. Das ber¨ uhmteste Ergebnis u uck: ¨ber Ovale projektiver Ebenen geht auf B. Segre zur¨ Satz 3.24 (Segre, 1954/55) Jedes Oval von P G(2, q), q ungerade, ist eine nichtsingul¨are Quadrik. Beweis. Ohne Beweis.
2
Ist O ein Oval von P G(2, q), so heißen Geraden von P G(2, q) Tangenten, Sekanten oder Passanten, wenn sie O in einem, zwei oder keinem Punkt schneiden. Satz 3.25 Es seien q ungerade und O ein Oval von P G(2, q). (i) Es gilt |O| = q + 1. (ii) Ein Punkt nicht auf O liegt auf keiner oder zwei Tangenten. Entsprechend heißt er interner Punkt von O oder externer Punkt von O. (iii) Es gibt q(q + 1)/2 externe und q(q − 1)/2 interne Punkte von O. Beweis. (i) Es sei P ein Punkt von O. Es folgt |O| ≤ q + 1 wegen |l ∩ O| ≤ 2 f¨ ur jede Gerade l und der Eindeutigkeit der Tangenten in den Ovalpunkten. (ii) Es seien l eine Tangente an O und p ∈ l nicht in O. Dann geht durch jeden der q Punkte auf l verschieden von p eine gerade Anzahl von Tangenten, da q + 1 gerade ist. Also geht durch jeden Punkt auf l \ {p} eine weitere Tangente. Wegen der Eindeutigkeit von Tangenten durch Punkte von O geht also durch jeden Punkt von l \ {p} genau eine weitere Tangente. (iii) Nach (i) gibt es genau q + 1 Tangenten. Die externen Punkte sind die Schnittpunkte von Tangenten, von denen es q(q + 1)/2 gibt. Die internen Punkte sind die verbleibenden q 2 + q + 1 − (q + 1) − q(q + 1)/2 = q(q − 1)/2 Punkte. 2
28
KAPITEL 3. PROJEKTIVE GEOMETRIE
Satz 3.26 Es seien q gerade und O ein Oval von P G(2, q). Dann gibt es einen eindeutigen Punkt N ∈ / O, der nur auf Tangenten an O liegt. Durch jeden der verbleibenden Punkte nicht in O geht genau eine Tangente an O. Beweis. Nach Satz 3.22 geht durch jeden Punkt nicht in C wenigstens eine Tangente, weil |C| ungerade ist. Es sei l eine Sekante. Da durch jeden Punkt von l mindestens eine Tangente geht, geht durch jeden Punkt von l genau eine Tangente. Folglich schneiden sich zwei Tangenten nie in einem Punkt einer Sekanten. Wenn N Schnittpunkt zweier Tangenten ist, ist also jede Gerade durch N eine Tangente. 2 Definition 3.27 Ist q gerade und O ein Oval von P G(2, q), dann heißt der Schnittpunkt der Tangenten an O der Nukleus von O. Der (q + 2)-Bogen O ∪ {N } heißt Hyperoval.
Kapitel 4 Die Suche nach guten Codes Codes, welche die Schranke Aq (n, d) des Codierungstheorieproblems annehmen, heißen optimal. In diesem Kapitel besch¨aftigen wir uns mit zwei weiteren Optimierungsproblemen.
4.1
Optimierung der Rate bei gegebener Distanz
Wir wollen f¨ ur gegebene Minimaldistanz d und Redundanz r Codes finden, die eine große Informationsrate haben (zur Erinnerung: Die Informationsrate ist R = logq (|C|)/n, was im linearen Fall gleich R = (n − r)/n ist). Nach Satz 2.9 bedeutet dies, eine (r × n)-Kontrollmatrix mit gr¨oßtm¨oglichem n zu konstruieren, in der je d − 1 Spalten linear unabh¨angig sind. Definition 4.1 Eine Menge S von n Punkten eines projektiven Raums P heißt (n, s)-Menge, wenn s die gr¨oßte Zahl ist, f¨ ur die jede Teilmenge von s Punkten von S unabh¨angig ist. Der gr¨oßte Wert n, f¨ ur den eine (n, s)-Menge in P G(r − 1, q) existiert, wird mit maxs (r, q) bezeichnet. Ein n-Bogen von P G(d, q) ist eine (n, d + 1)-Menge. Satz 4.2 Ein [n, n − r, d]-Code ¨ uber Fq existiert genau dann, wenn eine (n, d − 1)Menge in P G(r − 1, q) existiert. Beweis. Es seien C ein [n, n − r, d]-Code u ¨ber Fq und H eine Kontrollmatrix. Dann sind nach Satz 2.9 je d − 1 Spalten von H linear unabh¨angig, repr¨asentieren also eine (n, d − 1)-Menge in P G(r − 1, q). Umgekehrt sei K eine (n, d − 1)-Menge in P G(r − 1, q). Wenn H die (r × n)-Matrix mit den homogenen Koordinaten der Punkte von K als Spalten ist, dann ist H nach Satz 2.9 eine Kontrollmatrix eines [n, n − r]-Codes mit Minimaldistanz wenigstens d. 2 Korollar 4.3 F¨ ur gegebene q, r und d ist maxd−1 (r, q) der gr¨oßte Wert f¨ ur n, f¨ ur den es einen [n, n − r, d]-Code ¨ uber Fq gibt. 2 29
30
KAPITEL 4. DIE SUCHE NACH GUTEN CODES
Die Bestimmung von maxd−1 (r, q) ist ein aktives Forschungsgebiet in der Geometrie. F¨ ur d = 3 ist max2 (r, q) die gr¨oßte Anzahl von Punkten von P G(r − 1, q), so dass je zwei von ihnen unabh¨angig sind, d.h. ganz P G(r − 1, q), und es folgt max 2 (r, q) = q r−1 + . . . + q + 1. Der zugeh¨orige Code ist der Hamming-Code Ham(r, q). Korollar 4.4 F¨ ur n, r ∈ N \ {0} existiert ein [n, n − r]-Code mit Minimaldistanz 4 genau dann, wenn es eine Menge von n Punkten in P G(r − 1, q) gibt, von denen keine drei kollinear sind. 2 Schon f¨ ur d = 4 kennt man nicht alle Zahlen maxd−1 (r, q). Man sucht also maximale Punktmengen in P G(r − 1, q), in denen je drei Punkte unabh¨angig sind. In projektiven Ebenen sind dies B¨ogen. (i) max 3 (r, 2) = 2r−1 q + 1, f¨ ur ungerades q (ii) max 3 (3, q) = q + 2, f¨ ur gerades q
Satz 4.5
Beweis. (i) Es seien M eine (n, 3)-Menge von P G(r − 1, 2) und p ∈ M ein Punkt. Auf jeder der 2r−2 +. . .+2+1 = 2r−1 −1 Geraden durch p liegt h¨ochstens ein weiterer Punkt von M , d.h. |M | ≤ 2r−1 . Andererseits bilden die Punkte von P G(r − 1, 2), die außerhalb einer Hyperebene liegen, eine (n, 3)-Menge der Gr¨oße 2r − 1 − (2r−1 − 1) = 2r−1 , d.h. max3 (r, 2) = 2r−1 . (ii) Es sei M eine (n, 3)-Menge von P G(2, q). Dann folgt |M | ≤ q +1+1 = q +2, weil jede Gerade durch einen Punkt von M h¨ochstens zwei Punkte von M enth¨alt. Wenn |M | = q + 2 gilt, so enth¨alt jede Gerade durch einen Punkt von M einen weiteren Punkt von M . Also gibt es nur Passanten und Sekanten. Somit wird M durch die Geraden durch einen Punkt nicht in M in Komponenten der Gr¨oße 2 partitioniert und |M | und q sind gerade. Da jede nichtsingul¨are Quadrik von P G(2, q) ein (q + 1)-Bogen ist, gilt max 3 (3, q) ≥ q + 1 und die Behauptung folgt aus der Existenz von Ovalen und Hyperovalen. 2 Definition 4.6 Es sei P ein d-dimensionaler projektiver Raum. Ein Ovoid ist eine nichtleere Menge O von Punkten von P, so dass • keine drei Punkte kollinear sind und
• f¨ ur jeden Punkt P ∈ O die Tangenten an O in P eine Hyperebene von P u ¨berdecken. Lemma 4.7 Ein Ovoid von P G(3, q) hat genau q 2 + 1 Punkte. Beweis. Durch einen Punkt P eines Ovoids O von P G(3, q) gehen genau q 2 + q + 1 Geraden, von denen q + 1 Tangenten sind, die in einer Hyperebene H liegen. Auf jeder Geraden durch P nicht in H liegt ein weiterer Punkt von O und es ergibt sich die Behauptung. 2
4.2. MAXIMUM DISTANCE SEPARABLE CODES
31
Beispiel 4.1 Die zu der quadratischen Form Q(x0 , x1 , x2 , x3 ) := x0 x1 + f (x2 , x3 ) geh¨orige elliptische Quadrik von P G(3, q) ist ein Ovoid, wenn f : Fq × Fq → Fq eine irreduzible quadratische Form ist. Z.B. ist die zu Q(x0 , x1 , x2 , x3 ) := x0 x1 + x2 x3 + x22 + x23 geh¨orige Quadrik von P G(3, 2) ein Ovoid. Satz 4.8 (Bose 1947, Qvist 1952) F¨ ur q > 2 gilt max 3 (4, q) = q 2 + 1. Beweis. Ohne Beweis. Man zeigt, dass die (q 2 + 1, 3)-Mengen in P G(3, q) genau die Ovoide sind. 2
4.2
Maximum Distance Separable Codes
In diesem Abschnitt untersuchen wir Codes maximaler Gr¨oße bei gegebener L¨ange n und Minimaldistanz d. Satz 4.9 (Singleton-Schranke, 1964) Es gilt Aq (n, d) ≤ q n−d+1 . Beweis. Es sei C ein (n, M, d)-Code u ¨ber q. L¨oschen wir die letzten d − 1 Stellen der Codew¨orter (man sagt “C ist d−1-fach punktiert”), dann sind die resultierenden Vektoren der L¨ange n − d + 1 paarweise verschieden, d.h. M ≤ q n−d+1 . 2 Satz 4.10 F¨ ur einen [n, n − r, d]-Code gilt d ≤ r + 1. Beweis. Nach Satz 4.9 gilt M ≤ q n−d+1 f¨ ur jeden (n, M, d)-Code u ur einen ¨ ber q. F¨ n−r n−d+1 [n, n − r, d]-Code u ≤q , d.h. d ≤ r + 1. 2 ¨ber Fq gilt also q Definition 4.11 Ein [n, n−r, r+1]-Code heißt MDS-Code (engl. maximum distance separable code). Satz 4.12 Der duale Code eines MDS [n, n − r]-Codes ist ein MDS [n, r]-Code. Beweis. Es sei C ein [n, n−r, r +1]-Code u ¨ber einem K¨orper F . Zu zeigen ist, dass ⊥ der [n, r]-Code C die Minimaldistanz n − r + 1 hat. Es sei H eine Kontrollmatrix von C, also eine Erzeugermatrix von C ⊥ . Ist x ein Codewort von C ⊥ , dann gibt es ein u ∈ F r mit x = uT H. Wenn x h¨ochstens das Gewicht n − r hat, dann gibt es eine (r × r)-Untermatrix H 0 von H mit uT H 0 = 0. Da je r Spalten von H linear unabh¨angig sind, ist H 0 nichtsingul¨ar und es folgt u = 0 – ein Widerspruch. Also ist die Minimaldistanz von C ⊥ wenigstens n − r + 1. 2 Beispiel 4.2 • Der Repetitionscode der L¨ange n ist ein [n, 1, n]-Code, also ein MDS-Code mit r = n − 1. • F¨ ur r = 0 ist der Vektorraum Fnq der MDS [n, n, 1]-Code. • Der bin¨are Code der W¨orter geraden Gewichts mit r = 1.
32
KAPITEL 4. DIE SUCHE NACH GUTEN CODES • F¨ ur allgemeines q erzeugt die Matrix
G = In−1
1 | ... 1
(4.1)
einen MDS [n, n − 1, 2]-Code. Nach Korollar 4.3 ist f¨ ur eine Redundanz r die Zahl maxr (r, q) die gr¨oßte L¨ange n eines MDS [n, n − r]-Codes. Nach Satz 4.2 korrespondieren MDS Codes mit den B¨ogen projektiver R¨aume: Korollar 4.13 F¨ ur n, r ∈ N \ {0} existiert ein MDS [n, n − r]-Code genau dann, wenn ein n-Bogen in P G(r − 1, q) existiert. 2 F¨ ur q = 2 haben wir bereits alle MDS-Codes in Beispiel 4.2 aufgelistet: Satz 4.14 F¨ ur r ≥ q gilt maxr (r, q) = r + 1. Jeder MDS-Code der Redundanz r ≥ q ist ¨aquivalent zum Repetitionscode der L¨ange r + 1. Beweis. Der Repetitionscode der L¨ange r + 1 ist ein [r + 1, 1, r + 1]-Code, also gilt maxr (r, q) ≥ r + 1 nach Korollar 4.3. Wenn andererseits max r (r, q) = r + 1 gilt, so ist der entsprechende lineare Code ein [r + 1, 1, r + 1]-Code, d.h. a¨quivalent zum Repetitionscode. Wir nehmen maxr (r, q) ≥ r + 2 an. Dann existiert nach Satz 4.2 ein [r + 2, 2, r + 1]Code C u ¨ber Fq . C ist a¨quivalent zu einem Code mit Erzeugermatrix G=
1 0 1 1 ... 1 0 1 a 1 a2 . . . ar
.
Da die Codew¨orter von C wenigstens das Gewicht r + 1 haben, hat jede Linearkombination von Zeilen von G wenigstens das Gewicht r + 1. Daher sind die Elemente ai paarweise verschiedene Elemente von Fq \ {0}. Es folgt r ≤ q − 1 im Widerspruch zur Voraussetzung und somit maxr (r, q) = r + 1. 2 Satz 4.15 Es seien 2 ≤ r ≤ q und a ein primitives Element von Fq . Dann ist
1 a a2 .. .
1 a2 a4 .. .
... ... ...
1
aq−1 a2(q−1) H= .. . ar−2 a2(r−2) . . . a(q−1)(r−2)
ar−1 a2(r−1) . . . a(q−1)(r−1)
1 0 0 0 0 0 .. .. . . 0 0 0 1
eine Kontrollmatrix eines MDS [q + 1, q + 1 − r, r + 1]-Codes C u ¨ber Fq .
¨ 4.3. ERWEITERUNGEN VON CODES UND BOGEN
33
Beweis. Hausaufgabe. L¨ange und Dimension von C liest man direkt von der Kontrollmatrix H ab. Nach Satz 2.9 hat C die Minimaldistanz r + 1 genau dann, wenn je r Spalten von H linear unabh¨angig sind undes r + 1 linear abh¨angige Spalten gibt. Die lineare Unabh¨angigkeit von je r Spalten folgt, weil Vandermonde-Matrizen nichtsingul¨ar sind und die Determinante einer jeden r × r- Untermatrix von H die Determinante einer Vandermonde-Matrix ist (wenn solch eine r × r-Untermatrix S eine oder beide der letzten beiden Spalten enth¨alt, dann ist ihre Determinante die Determinant die einer (r − 1) × (r − 1)- oder (r − 2) × (r − 2)-Vandermonde-Matrix von H, die keine der letzten beiden Spalten enth¨alt). Da die Spalten die L¨ange r haben, sind je r + 1 Spalten von H linear abh¨angig. 2 Korollar 4.16 F¨ ur 2 ≤ r ≤ q gilt maxr (r, q) ≥ q + 1.
2
Satz 4.17 Es sei C ein [n, n − r]-Code mit Kontrollmatrix H = AT | Ir . Dann ist C ein MDS-Code genau dann, wenn jede quadratische Untermatrix von A nichtsingul¨ar ist. Beweis. Der Code C ist ein MDS-Code, wenn seine Minimaldistanz r + 1 betr¨agt. Nach Satz 2.9 hat C die Minimaldistanz r + 1 genau dann, wenn je r Spalten von H linear unabh¨angig sind und es r + 1 linear abh¨angige Spalten gibt. Letzteres ist erf¨ ullt, weil H nur r Zeilen hat. Wir nehmen zuerst an, dass jede quadratische Untermatrix von A nichtsingul¨ar ist und betrachten r Spalten von H, die eine r × r-Untermatrix B von H mit s Spalten von AT und r − s Spalten von Ir bilden. Weil jede quadratische Untermatrix von A nichtsingul¨ar ist, ist auch jede quadratische Untermatrix von AT nichtsingul¨ar. Entwickelt man die Determinante von B, so folgt det(B) = ± det(A0 ), wobei A0 eine s × s-Untermatrix von AT ist. Also folgt det(B) 6= 0 und je r Spalten von H sind linear unabh¨angig. Umgekehrt sei B eine s × s-Untermatrix von AT . Wir w¨ahlen eine (n − s) × (n − s)Untermatrix von Ir , die aus den Zeilen von Ir besteht, welche nicht in B auftauchen. Betrachte nun die r×r-Matrix B 0 , die aus den Spalten von AT , welche in B enthalten sind, und denen, welche wir von Ik genommen haben, besteht. Dann gilt det(B) = ± det(B 0 ) 6= 0, weil je r Spalten von H linear unabh¨angig sind (Satz 2.9). Also ist B nichtsingul¨ar. 2
4.3
Erweiterungen von Codes und Bo ¨gen
Dieser Abschnitt hat zum Ziel, Codes zu erweitern, um die Minimaldistanz zu erh¨ohen. Ist q gerade, so kann jeder (q + 1)-Bogen nach Satz 3.26 zu einem (q + 2)Bogen erweitert werden, indem man den Nukleus hinzuf¨ ugt. Nach Segre ist jedes Oval von P G(2, q) f¨ ur ungerades q ¨aquivalent zu einer rationalen Normkurve. Wir betrachten nur die Erweiterung von Teilmengen rationaler Normkurven. Bilden wir aus den Vektoren der homogenen Koordinaten der Punkte einer rationalen Normkurve R von P G(d, q) als Spalten eine ((q + 1) × d)-Kontrollmatrix, so resultiert nach Hausaufgabe 18 ein [q+1, q+1−d, d+1]-Code C, also ein MDS-Code.
34
KAPITEL 4. DIE SUCHE NACH GUTEN CODES
Ist es m¨oglich, diesen Code um eine Stelle zu einem [q + 2, q + 1 − d, d + 2]-Code zu erweitern, der also auch wieder ein MDS-Code ist? Wir werden sehen, dass dies f¨ ur ungerades q nicht geht. Definition 4.18 Es seien P ein Punkt von P G(d, q) und H eine Hyperebene, die P nicht enth¨alt. Dann ist die Projektion von P auf H die Abbildung, die jeden Punkt X von P G(d, q) \ {P } auf den Punkt H ∩ P X wirft. Lemma 4.19 Es seien K ein n-Bogen in P G(d, q), P ∈ K und H eine Hyperebene von P G(d, q) nicht durch P . Dann ist die Projektion von K von P auf H ein (n−1)Bogen. Beweis. Es sei M die Projektion von K von P auf H, d.h. f¨ ur jeden Punkt k ∈ K ist der Punkt P k ∩ H die Projektion von k vom Punkt P auf die Hyperebene H. Es folgt |M | = n − 1, denn w¨are |M | < n − 1, so l¨agen auf einer Geraden durch P zwei verschiedene Punkte von K, die also auf denselben Punkt von H projiziert w¨ urden. Ein Bogen enth¨alt aber keine drei kollinearen Punkte. Zu zeigen bleibt, dass je d Punkte von M unabh¨angig sind. Angenommen, es g¨abe d abh¨angige Punkte T1 , ..., Td in M . Dann l¨agen diese Punkte in einem h¨ochstens d − 2-dimensionalen Unterraum U von H. Die Punkte P1 , ..., Pd , die Urbilder von t1 , ..., Td unter der Projektion von K von P auf H sind, liegen im Unterraum hU, P i der Dimension d − 1 von P G(d, q). Also sind P, P1 , ..., Pd genau d + 1 Punkte von K, die nicht unabh¨angig sind im Widerspruch zur Definition von K. Also sind je d Punkte von M unabh¨angig. 2 Satz 4.20 F¨ ur ungerades q kann eine Teilmenge K einer rationalen Normkurve C von P G(d, q) mit |K| ≥ (q + 1)/2 + d nur durch Punkte von C zu einem gr¨oßeren Bogen erweitert werden. Beweis. Induktion nach d. F¨ ur d = 2 ist C eine Quadrik. Punkte von P G(2, q) \ C sind intern oder extern zu C. Ein interner Punkt liegt auf (q+1)/2 Sekanten zu C, ein externer Punkt auf (q − 1)/2 Sekanten und zwei Tangenten zu C. Somit geht durch jeden Punkt von P G(2, q) \ C wenigstens eine Sekante zu K, weil |K| ≥ (q + 1)/2 + 2 gilt. Also erweitert kein Punkt von P G(2, q) \ C den Bogen K zu einem Bogen. Die Induktionsvoraussetzung ist, dass eine Teilmenge K 0 einer rationalen Normkurve C 0 von P G(d, q) der Gr¨oße |K 0 | ≥ (q + 1)/2 + d nur durch Punkte von C 0 zu einem gr¨oßeren Bogen erweitert werden kann. Es seien K eine Teilmenge einer rationalen Normkurve C von P G(d + 1, q) mit |K| ≥ (q + 1)/2 + d + 1 und P ein Punkt von P G(d + 1, q), der K zu einem gr¨oßeren Bogen erweitert. Wir koordinatisieren P G(d + 1, q), so dass C = {(1, t, t2 , ..., td+1 ) | t ∈ Fq } ∪ {(0, ..., 0, 1)}. Weiterhin nehmen wir an, dass die Punkte (0, ..., 0, 1) und (1, 0, ..., 0) zu K geh¨oren. Wir k¨onnen dies tun, weil die Automorphismengruppe von C 3fach transitiv auf den Punkten von C ist. Wir projezieren von (0, ..., 0, 1) auf die Hyperebene H mit Gleichung xd+1 = 0. Die Punkte von C werden auf die Punkte C 0 := {(1, t, t2 , ..., td , 0) | t ∈ Fq } geworfen und K auf eine Teilmenge K 0 von C 0 . Weil
4.4. ERZEUGERMATRIZEN PROJEKTIV BETRACHTET
35
der Punkt P auf keiner Sekante zu K liegt, erweitert seine Projektion P 0 den Bogen K 0 zu einem gr¨oßeren Bogen. Wegen |K 0 | ≥ (q + 1)/2 + d geh¨ort P 0 nach der Induktionsvoraussetzung zu C 0 und hat die Koordinaten (1, t, ..., td , 0) oder (0, ..., 0, 1, 0). Also hat P die Koordinaten (1, t, ..., td , s) oder (0, ..., 0, 1, s) f¨ ur ein s ∈ Fq . Wenn wir von (1, 0, ..., 0) auf die Hyperebene mit Gleichung x1 = 0 projezieren, dann finden wir analog, dass P die Koordinaten (r, 1, t, ..., td ) f¨ ur ein r ∈ Fq hat. Zusammen folgt, dass P Koordinaten (1, t, ..., td+1 ) f¨ ur ein t ∈ Fq \{0} hat und somit zu C geh¨ort. 2 Korollar 4.21 Sind q ungerade und 2 ≤ d ≤ (q + 1)/2, so kann eine rationale Normkurve C von P G(d, q) nicht durch Punkte von P G(d, q) \ C zu einem gr¨oßeren Bogen erweitert werden.
4.4
Erzeugermatrizen projektiv betrachtet
Bisher haben wir nach langen Codes bei gegebener Redundanz und Minimaldistanz mittels der Korrespondenz zwischen (n, d)-Mengen in P G(r − 1, q) und den Spalten einer Kontrollmatrix gesucht. In diesem Abschnitt wollen wir Codes minimaler L¨ange bei gegebener Dimension k und Minimaldistanz d finden, was der Suche nach Codes mit kleiner Redundanz und großer Informationsrate entspricht. Wir konstruieren also Erzeugermatrizen aus gewissen Punktmengen von P G(k − 1, q). Satz 4.22 (Griesmer-Schranke, 1960) F¨ ur einen [n, k, d]-Code ¨ uber Fq gilt k−1 X d n≥ d i e, q i=0
wobei dae die kleinste nat¨ urliche Zahl ≥ a ∈ Q+ ist.
Beweis. Es sei G eine Erzeugermatrix eines [n, k, d]-Codes C u ¨ber Fq . O.B.d.A. k¨onnen wir 1 ... 1 0 ... 0 G= G1 G2 mit d Einsen in der ersten Zeile annehmen. Es seien z eine beliebige andere Zeile von G und nz die gr¨oßte Zahl von Stellen unter den ersten d Stellen von z, die den gleichen Wert haben. Dann gilt nz ≥ d dq e. Der Code, der von G2 erzeugt wird, ist also ein [n − d, k − 1, d0 ]-Code. Es gilt d0 ≥ d dq e, weil f¨ ur ein beliebiges Codewort c = (c1 | c2 ) von C mit c2 6= 0 ein a ∈ Fq existiert, so dass d ≤ w((c1 | c2 ) − a(1...10...0)) = w(c1 − a(1...1)) + w(c2 ) ≤ d − nc + w(c2 ) gilt, woraus w(c2 ) ≥ nc ≥ d dq e folgt. Mit Induktion nach k folgt nun k−2 k−2 k−1 X X X d0 d d n−d≥ d ie ≥ d i+1 e = d ie q q q i=0 i=0 i=1
36
KAPITEL 4. DIE SUCHE NACH GUTEN CODES
und daraus n ≥
Pk−1
d i=1 d q i e
+d=
Pk−1
d i=0 d q i e.
2
Die Dualen der Hamming-Codes sind [(q r − 1)/(q − 1), r, q r−1 ]-Codes nach Lemma 2.27. Sie bilden eine unendliche Serie von Codes, welche die Griesmer-Schranke Pk−1 q r−1 r i=0 d q i e = (q − 1)/(q − 1) erreichen.
Definition 4.23 Ein projektiver Code ist ein [n, k, d]-Code u ¨ ber q mit Erzeugermatrix, deren Spalten n verschiedene Punkte von P G(k − 1, q) definieren.
Satz 4.24 Ein [n, k, d]-Code mit 1 ≤ d < q k−1 , der die Griesmer-Schranke annimmt, ist ein projektiver Code. Beweis. Es sei C ein Code, der die Griesmer-Schranke annimmt. Wird C von einer Matrix G mit zwei linear abh¨angigen Spalten erzeugt, dann ist G ¨ahnlich zu
1 1 ∗ ··· 0 0 .. .. A . . 0 0
∗
.
Der durch A erzeugte Code C 0 ist ein [n−2,Pk −1, d0 ]-Code mit d0 ≥ d. GriesmerPk−2 PDie k−2 d0 k−1 d d 0 Schranken von C und C ergeben n − 2 ≥ i=0 d qi e ≥ i=0 d qi e ≥ i=0 d qi e − 1 = n − 1 – ein Widerspruch. 2 Satz 4.25 Es seien G eine Erzeugermatrix eines projektiven [n, k]-Codes C und S die Punktmenge von P G(k − 1, q) der Spalten von G. Dann gilt d(C) = d genau dann, wenn jede Hyperebene von P G(k − 1, q) h¨ochstens n − d Punkte von S und eine Hyperebene genau n − d Punkte von S enth¨alt. Beweis. Jede Hyperebene von P G(k − 1, q) ist durch eine Gleichung a1 x1 + ... + ak xk = 0 gegeben, die ein Codewort c = (a1 , ..., ak )G definiert, und umgekehrt. Es gilt w(c) ≥ d genau dann, wenn h¨ochstens n−d Stellen von c Null sind. Diese Stellen sind genau die Punkte von S in der entsprechenden Hyperebene. 2 Definition 4.26 (Hamada und Tamari, 1978) Es seien F eine Punktmenge von P G(t, q) mit t ≥ 2 und f := |F | ≥ 1. Wenn |F ∩ H| ≥ m f¨ ur jede Hyperebene H von P G(t, q) und |F ∩ H| = m f¨ ur eine Hyperebene H von P G(t, q) gelten, dann heißt F ein {f, m; t, q}-Minihyper. Die Minihyper stehen in 1-1-Beziehung mit den projektiven Codes, welche die GriesmerSchranke annehmen. Es sei θd die Anzahl von P G(d, q). Man kann d f¨ ur Phder λPunkte k−1 k−1 i 1≤d
Beispiel: F¨ ur q = 2, d = 3 und k = 7 gilt d = 3 = 26 − (25 + 24 + 23 + 22 + 1).
4.4. ERZEUGERMATRIZEN PROJEKTIV BETRACHTET
37
P Satz 4.27 Der [n, k, d]-Code C, 1 ≤ d < q k−1 , d = q k−1 − hi=1 q λi , mit Erzeugermatrix G = (g1 . . . gn ) nimmt die Griesmer-Schranke genau dann an, wenn das Komplement der Ph PhPunktmenge von P G(k − 1, q), die den Spalten von G entspricht, ein { i=1 θλi , i=1 θλi −1 ; k − 1, q}-Minihyper ist. Beweis. Nach Satz 4.25 ist das Komplement der Menge der Punkte von P G(k − 1, q) mit homogenen Koordinaten P P die Spalten der Erzeugermatrix ein Minihyper. Umgekehrt sei F ein { hi=1 θλi , hi=1 θλi −1 ; k − 1, q}-Minihyper. Sein Komplement S P hat n = θk−1 − hi=1 θλi Punkte von P G(k − 1, q). Jede Hyperebene hat mindestens Ph Punkte von F . Wegen θi = θi−1 + q i hat jede Hyperebene h¨ochstens i −1 i=1 θλP P θk−2 − hi=1 θλi −1 = θk−1 − q k−1 − hi=1 (θλi − q λi ) = n − d Punkte von S mit P d := q k−1 − hi=1 q λi . Nach Satz 4.25 definieren die Punkte von S einen [n, k, d]-Code, wenn man ihre homogenen Koordinaten als Spalten einer (k × n)-Erzeugermatrix nimmt, der die Griesmer-Schranke annimmt. 2 Die Klassifikation der [n, k, d]-Codes mit 1 ≤ d < q k − 1, welche die GriesmerSchranke annehmen, ist also ¨aquivalent zur Klassifikation der Minihyper. Satz 4.28 (Bose and Burton (1966), Hamada (Discr. Math. 116, 1993)) Ein {θµ , θµ−1 ; N, q}-Minihyper F ist ein µ-dimensionaler Unterraum von P G(N, q). Beweis. 1. Jeder N −µ-dimensionale Unterraum schneidet den Minihyper. F trifft jede Hyperebene in mindestens θµ−1 Punkten. Wir zeigen, dass jeder (N − r − 1)dimensionale Unterraum wenigstens θµ−r−1 Punkte von F hat, wenn F wenigstens θµ−r Punkte in jedem (N −r)-dimensionalen Unterraum hat. W¨are Ω ein (N −r −1)dimensionaler Unterraum von P G(N, q) mit θµ−r−1 − ζ Punkten in F mit ζ > 0, dann g¨alte f¨ ur die (N −r)-dimensionalen Unterr¨aume S1 , ..., Sθr von P G(N, q) durch Ω |F | = θµ =
θr X j=1
|F ∩Sj |−(θr −1)|F ∩Ω| ≥ θr ·θµ−r −(θr −1)θµ−r−1 +(θr −1)ζ ≥ θµ +(θr −1).
Per Induktion u ¨ber r = 1, ..., µ folgt die Behauptung. 2. F ist ein P G(µ, q). Zu zeigen ist, dass jede Gerade genau einen oder q + 1 Punkte in F hat. Wir nehmen an, dass es eine Sekante an F gibt, die einen Punkt P nicht in F hat. Nach Schritt 1 enth¨alt jeder (N − µ)-dimensionale Unterraum durch P einen Punkt von F . Es sei U ein zu F disjunkter (N − µ − 1)-dimensionaler Unterraum µ+1 N +1 ≥ qq−1 = θµ paarweise durch P (einen solchen Unterraum U gibt es, weil es qqN −µ−1 −1 disjunkte (n−µ−1)-dimensionale Unterr¨aume gibt). Dann enthalten die θµ (N −µ)dimensionalen Unterr¨aume durch U jeweils genau einen Punkt von F nicht in U , und es kann keine Sekante durch P geben – ein Widerspruch. Also ist F ein Unterraum mit θµ Punkten, d.h. ein P G(µ, q). 2 Nach Satz 4.28 bilden also die disjunkten Vereinigungen von Unterr¨aumen von P G(k −1, q) eine wichtige Klasse von Minihypern, d.h. die Vereinigung von ε0 PunkPk−2 Pk−2 ten, ε1 Geraden, ... und εk−2 (k−2)-dimensionalen Unterr¨aumen ist ein { i=0 εi θi , i=0 εi θi−1 ; k− 1, q}-Minihyper.
38
KAPITEL 4. DIE SUCHE NACH GUTEN CODES
S Es sei F (λ1 , ..., λh ; t, q) die Vereinigung Vi von h paarweise disjunkten, λi -dimensionalen Unterr¨aumen Vi , wobei 1 ≤ h ≤ t(q − 1) und 0 ≤ λ1 ≤ . . . ≤ λh < t gelten und h¨ochstens q − 1 der λi ’s denselben Wert annehmen. Satz 4.29 (Hamada, Helleseth and Maekawa (1993, 1997)) Es seien t, q, h und λi , i = 1, ..., h, nat¨ urliche Zahlen, so dass t ≥ 2, h ≥ 1, q > (h − 1)2 und 0 ≤ h1 ≤ ... ≤ λh < t gelten. P P (i) Wenn t < λh−1 + λh + 1 gilt, so gibt es keinen { hi=1 θλi , hi=1 θλi −1 ; t, q}Minihyper. P P (ii) Wenn t ≥ λh−1 + λh + 1 gilt, dann ist F ein { hi=1 θλi , hi=1 θλi −1 ; t, q}Minihyper genau dann, wenn F ∈ F (λ1 , ..., λh ; t, q). Beweis. Ohne Beweis. Leo Storme hat dies Ergebnis 2002 mit Ferret und P. Govaerts f¨ ur h > meinert.
2 √ q verallge-
Kapitel 5 Zyklische Codes Definition 5.1 Ein Code C heißt zyklisch, wenn er linear ist und wenn f¨ ur jedes (c1 , ..., cn ) ∈ C auch (cn , c1 , ..., cn−1 ) zu C geh¨ort. Beispiel 5.1 1. Der tern¨are Code mit Erzeugermatrix
1 0 2 0 1 2
ist zyklisch.
2. Der bin¨are Code {(0, 0, 0, 0), (1, 0, 0, 1), (0, 1, 1, 0), (1, 1, 1, 1)} ist nicht zyklisch, aber a¨quivalent zu einem zyklischen Code, wenn man die 3. und 4. Koordinate vertauscht. 3. Ham(2, 3) ist weder zyklisch noch a¨quivalent zu einem zyklischen Code (Hausaufgabe). Es seien q eine Primzahlpotenz, n ∈ N und Rq (n) = Fq [x]/(xn − 1) der Polynomring modulo xn − 1. Wegen xn ≡ 1 mod (xn − 1) ist das Modulorechnen besonders einfach: Man ersetzt xn durch 1, xn+1 durch x, xn+2 durch x2 und so weiter. Wir identifizieren einen Vektor (a0 , ..., an−1 ) ∈ Fnq mit dem Polynom a(x) := a0 + a1 x + a2 x2 + . . . + an−1 xn−1 ∈ Rq (n). Die Multiplikation von a(x) mit x f¨ uhrt zu dem Polynom x · a(x) = a0 x + a1 x2 + a2 x3 + . . . + an−1 xn ≡ an−1 + a0 x + a1 x2 + . . . + an−2 xn−1
mod xn − 1,
das wiederum dem Vektor (an−1 , a0 , a1 , ..., an−2 ) ∈ Fnq entspricht. Das zyklische Rotieren um eine Koordinate wird also durch die Multiplikation mit x beschrieben. Multiplizieren mit xm ist also eine m-fache Koordinatenrotation. Meistens betrachten wir Elemente zyklischer Codes als Polynome.
5.1
Zyklische Codes und Erzeugerpolynome
Satz 5.2 Ein Code C in Rq (n) ist zyklisch genau dann, wenn er ein Ideal von Rq (n) ist. 39
40
KAPITEL 5. ZYKLISCHE CODES
Beweis. Es sei C ⊆ Rq (n) ein zyklischer Code. Weil C linear ist, ist C additiv abgeschlossen. Es seien a(x) ∈ C und r(x) ∈ Rq (n) mit grad(r(x)) = r. F¨ ur 1 ≤ m ≤ m r ist das Produkt a(x) · x das durch Rotation von a(x) um m Stellen antstandene Polynom. Also ist a(x)r(x) eine Linearkombination von zyklischen Shifts von a(x) und geh¨ort zu C. Umgekehrt ist offensichtlich jedes Ideal von Rq (n) ein zyklischer Code. 2 Definition 5.3 Das (eindeutige) normierte Polynom niedrigsten Grades eines zyklischen Codes von Rq (n) heißt das Erzeugerpolynom von C. Beispiel 5.2 (Beispiel 5.1 fortgesetzt) 1. Das Ideal von Rq (n), das dem Code aus Beispiel 5.1 1 entspricht, hat das Erzeugerpolynom x + 2. 2. Der bin¨are Code {(0, 0, 0, 0), (0, 1, 0, 1), (1, 0, 1, 0), (1, 1, 1, 1)} ist das Ideal (x2 + 1) = {0, x2 + 1, x3 + x, x3 + x2 + x + 1} von F2 [x]/(x4 + 1). Ist f (x) ∈ Rq (n), so sagt man, der Code hf (x)i = {r(x)f (x) | r(x) ∈ Rq (n)} wird von f erzeugt. Weil Fq [x] ein Hauptidealring ist und zyklische Codes Ideale sind, k¨onnen wir auf diesem Weg schon alle zyklischen Codes angeben. Der Automorphismus von Rq (n), der durch die Permutation i 7→ i + 1 mod n der Koordinaten induziert wird, hat die Ordnung n und geh¨ort zur Automorphismengruppe jeden zyklischen Codes C ≤ Fnq . Wegen a(x)q = a(xq ) f¨ ur alle a(x) ∈ Fq [x] induziert auch die Permutation i 7→ qi mod n einen Automorphismus eines jeden zyklischen Codes. Weil zyklische Codes Ideale in Rq (n) sind, k¨onnen wir alle zyklischen Codes einer gegebene L¨ange n u ¨ber q leicht angeben: Jeder Faktor g(x) von xn − 1 erzeugt einen zyklischen hg(x)i Code von Rq (n). Wenn xn − 1 = f1 (x)f2 (x) · · · fr (x) die Faktorisierung von xn − 1 in irreduzible normierte Polynome u ¨ber Rq (n) bzw. Fq [x] r ist, dann gibt es 2 Polynome g(x), die zyklische Codes erzeugen, unter denen auch ¨aquivalente sein k¨onnen. Lemma 5.4 F¨ ur zwei normierte Polynome g(x) und f (x) sind die zyklischen Codes hg(x)i und hf (x)i ¨aquivalent genau dann, wenn die Menge der Koeffizienten von g(x) und f (x) die gleiche ist. Insbesondere sind die Codes im bin¨aren Fall ¨aquivalent, wenn die Anzahl der Einsen unter den Koeffizienten von g(x) und f (x) gleich ist. 2 Im folgenden bestimmen wir aus dem Erzeugerpolynom eines zyklischen Codes C ≤ Rq (n) eine Erzeugermatrix des entsprechenden Unterraums von Fnq . Satz 5.5 Es sei C ein zyklischer Code mit Erzeugerpolynom g(x) = g0 + g1 x + g2 x2 + ... + gr xr vom Grad r. Dann gilt dim(C) = n − r, und eine Erzeugermatrix von C ist g0 g1 g2 . . . gr 0 . . . 0 . . 0 g0 g1 g2 . . . gr . . .. G= . . . .. .. ... ... ... .. . 0 0 . . . 0 g 0 g1 g2 . . . gr
5.2. KONTROLLPOLYNOM UND KONTROLLMATRIX
41
Beweis. Die Zeilen von G sind Codew¨orter von C = hg(x)i und linear unabh¨angig, weil die ersten n − r Spalten eine obere Diagonalmatrix bilden. F¨ ur a(x) ∈ C gibt es ein PolynomPq(x) mit a(x) = q(x)g(x), grad(a(x)) < n und d := grad(q(x)) < n − r. Mit q(x) = di=0 qi xi folgt ! d d X X i qi xi g(x) . a(x) = q(x)g(x) = qi x g(x) = i=0
i=0
Also l¨asst sich a(x) als Linearkombination der Zeilen von G schreiben und G erzeugt C. Somit folgt auch dim(C) = n − r. 2 Beispiel 5.3 (Beispiel 5.1 fortgesetzt) 1. EineErzeugermatrix des tern¨aren Co2 1 0 . des hx + 2i von F3 [x]/(x3 + 2) ist G = 0 2 1 2. Eine Erzeugermatrix des bin¨aren Codes hx2 + 1i von F2 [x]/(x4 + 1) ist G = 1 0 1 0 . 0 1 0 1
3. Wir konstruieren alle tern¨aren zyklischen Codes der L¨ange 4 und schreiben Erzeugermatrizen f¨ ur sie auf. Die Faktoren des Polynoms x4 + 2 sind x4 + 2 = 2 (x + 2)(x + 1)(x + 1). Also gibt es sechs nichttriviale tern¨are zyklische Codes der L¨ange 4 mit folgenden Erzeugerpolynomen und -matrizen: Erzeugerpolynom Erzeugermatrix 2 1 0 0 0 2 1 0 x+2 0 0 2 1 1 1 0 0 0 1 1 0 x+1 0 0 1 1 1 0 1 0 x2 + 1 0 1 0 1 2 0 1 0 x2 + 2 = (x + 2)(x + 1) 0 2 0 1 3 2 2 2 1 2 1 x + 2x + x + 2 = (x + 2)(x + 1) 3 2 2 1 1 1 1 x + x + x + 1 = (x + 1)(x + 1) Ham(2, 3) hat Minimaldistanz 3 wie alle Hamming-Codes. Gem¨aß der obigen Liste aller tern¨aren zyklischen Codes der L¨ange 4 ist die Minimaldistanz der zwei 2-dimensionalen tern¨aren zyklischen Codes der L¨ange 4 aber 2. Also ist Ham(2, 3) zu keinem zyklischen Code ¨aquivalent.
5.2
Kontrollpolynom und Kontrollmatrix
Es seien xn − 1 = f1 (x)f2 (x) · · · fr (x) die Faktorisierung von xn − 1 in irreduzible Polynome u ¨ber Fq und C ein zyklischer [n, k]-Code u ¨ber Fq . Weiterhin sei g(x) =
42
KAPITEL 5. ZYKLISCHE CODES
f1 (x)f2 (x) · · · ft (x) ein Erzeugerpolynom vom Grad n−k von C (m¨oglicherweise nach Umnumerierung der fi (x)). Offenbar gilt f¨ ur das Polynom h(x) = ft+1 (x) · · · fr (x) ∈ n Rq (n) dann g(x)h(x) = x − 1. Weil g(x) den Grad n − k hat, hat h(x) also den Grad k. Definition 5.6 Wenn g(x) ein Erzeugerpolynom eines zyklischen [n, k]-Codes in Rq (n) ist, dann heißt das (eindeutige) normierte Polynom h(x) mit g(x)h(x) = xn −1 das Kontrollpolynom von C. Die Faktoren f1 (x), ..., fr (x) sind nicht notwendig verschieden. Wenn jedoch (n, q) = 1 gilt, so sind sie paarweise verschieden. Denn h¨atte xn − 1 eine doppelte Nullstelle α in einem Erweiterungsk¨orper E von Fq , dann w¨are xn − 1 = (x − α)2 h(x) mit h(x) ∈ E[x]. Es folgt wegen (xn − 1)0 = 2(x − α)h(x) + (x − α)2 h0 (x), dass α auch eine Nullstelle von (xn − 1)0 = nxn−1 ist, woraus n ≡ 0 in E folgt im Widerspruch zu (q, n) = 1. Beispiel 5.4 (Beispiel 5.1 fortgesetzt) 1. Der tern¨are zyklische Code hx + 2i ⊂ R3 (3) hat das Kontrollpolynom h(x) = (x + 2)2 = x2 + x + 1, weil x3 + 2 = (x + 2)3 u ¨ber F3 gilt. 2. Der bin¨are zyklische Code hx2 +1i ⊂ R2 (4) hat das Kontrollpolynom h(x) = x2 +1, weil x4 + 1 = (x2 + 1)2 u ¨ber F2 gilt. Satz 5.7 Es sei C ein zyklischer Code in Rq (n) mit Kontrollpolynom h(x). Ein Polynom c(x) ∈ Rq (n) geh¨ort zu C genau dann, wenn c(x)h(x) = 0 gilt. Beweis. Es sei g(x) das Erzeugerpolynom von C. Wenn c(x) ∈ Rq (n) ein Codewort ist, dann existiert ein Polynom d(x) ∈ Rq (n) mit c(x) = d(x)g(x). Es folgt c(x)h(x) = d(x)g(x)h(x) = d(x)(xn − 1) ≡ 0 mod (xn − 1). Umgekehrt nehmen wir c(x)h(x) ≡ 0 mod (xn − 1) an. Dann teilt xn − 1 das Polynom c(x)h(x), also existiert ein Polynom d(x) mit c(x)h(x) = d(x)(xn − 1) = d(x)g(x)h(x), und es folgt c(x) = d(x)g(x) ∈ C. 2 Der n¨achste Satz erkl¨art, wie Kontrollpolynom und der duale Code zusammenh¨angen. Satz 5.8 Es sei C ein zyklischer [n, k]-Code mit Kontrollpolynom h(x) = h0 +h1 x+ ... + hk xk . Dann hk hk−1 . . . h0 0 ... 0 . .. . .. hk hk−1 . . . h0 0 (i) ist H = . eine Kontrollmatrix von C .. .. .. .. .. . . . . 0 0 ... 0 hk hk−1 . . . h0 und (ii) C ⊥ ist ein zyklischer Code mit Erzeugerpolynom −1 hk + hk−1 x + hk−2 x2 + ... + h0 xk . h−1 k h(x) := hk
5.3. NULLSTELLEN ZYKLISCHER CODES
43
Beweis. (i) Nach Satz 5.7 geh¨ort ein Polynom c(x) = c0 + c1 x + · · · + cn−1 xn−1 ∈ Rq (n) zu C genau dann, wenn c(x)h(x) ≡ 0 mod (xn − 1) gilt, d.h. entweder c(x)h(x) = 0 oder c(x)h(x) = xn − 1. Insbesondere sind die Koeffizienten von xk , ..., xn−1 von c(x)h(x) Null, welches die Gleichungen c0 hk + c1 hk−1 + · · · + ck h0 = 0 c1 hk + c2 hk−1 + · · · + ck+1 h0 = 0 .. . cn−k−1 hk + cn−k hk−1 + · · · + cn−1 h0 = 0 sind. Die Matrix dieses Gleichungssystems ist H. Da h(x) normiert ist und die ersten n − k Spalten eine obere Dreiecksmatrix mit Einsen auf der Diagonale bilden, sind die Zeilen von H linear unabh¨angig. Also hat der von den Zeilen von H aufgespannte Unterraum die Dimension n − k und sein Senkrechtraum, von dem C ein Unterraum ist, die Dimension k. Da C die Dimension k hat, ist C dieser Senkrechtraum und H eine Kontrollmatrix von C. (ii) Wegen xk h(x−1 )xn−k g(x−1 ) = xn (x−n − 1) = 1 − xn ist h(x) = xk h(x−1 ) ein Faktor von xn − 1. Daher hat der zyklische Code hh(x)i nach Satz 5.5 die Erzeugermatrix H, die nach (i) eine Erzeugermatrix von C ⊥ ist. 2 Bemerkung. F¨ ur h(x) = h0 + h1 x + ... + hk xk nennt man h(x) = xk h(x−1 ) = hk + hk−1 x + hk−2 x2 + ... + h0 xk das reziproke Polynom von h(x). Beispiel 5.5 (Beispiel 5.1 fortgesetzt) 1. Der tern¨are zyklische Code hx + 2i ⊂ R3 (3) mit Kontrollpolynom h(x) = (x + 2)2 = x2 + x + 1 hat die Kontrollmatrix H = 1 1 1 und sein dualer Code C ⊥ das Erzeugerpolynom h(x) = x2 + x + 1.
2. Der bin¨are zyklische Code hx2 + 1i ⊂ R2 (4) mit Kontrollpolynom h(x) = x2 + 1 1 0 1 0 hat die Kontrollmatrix H = und sein dualer Code C ⊥ das Erzeu0 1 0 1 gerpolynom h(x) = x2 + 1.
5.3
Nullstellen zyklischer Codes
Definition 5.9 Eine Nullstelle β eines Polynoms xn − 1 ∈ Fq [x] in einem Erweiterungsk¨orper von Fq heißt nte Einheitswurzel. Eine primitive nte Einheitswurzel ist ein Element β eines Erweiterungsk¨orpers von Fq , so dass β n = 1 und β m 6= 1 f¨ ur alle 1 ≤ m < n gelten. Ein normiertes irreduzibles Polynom f (x) ∈ Fq [x] heißt primitiv, wenn seine Wurzeln im Zerf¨allungsk¨orper Fqr von f (x) primitive Elemente sind. Gilt n = q m − 1, dann ist jedes primitive Element von Fqm , d.h. jedes Element α m mit Fqm = {0, 1, α, α2, ..., αq −2 }, eine primitive nte Einheitswurzel.
Es seien xn − 1 = f1 (x) · · · fr (x) die Faktorisierung von xn − 1 in irreduzible normierte Polynome u ¨ber Fq und αi Nullstellen der fi (x) in einem Erweiterungsk¨orper von
44
KAPITEL 5. ZYKLISCHE CODES
Fq f¨ ur i = 1, ..., r. Dann ist fi (x) das Minimalpolynom von αi und der Code hfi (x)i besteht aus allen Polynomen c(x) mit c(αi ) = 0. Wenn C zyklisch mit Erzeugerpolynom g(x) = f1 (x) · · · ft (x) ist (m¨oglicherweise nach Umnumerierung), dann sind die Polynome von C genau die, welche alle Elemente α1 , ..., αt als Nullstellen haben. Wenn umgekehrt β1 , ..., βt Elemente eines Erweiterungsk¨orpers von Fq sind, dann bilden die Polynome c(x) ∈ Fq [x] mit c(βi ) = 0 f¨ ur alle i = 1, ..., t einen zyklischen Code, der vom kleinsten gemeinsamen Vielfachen der Minimalpolynome von β1 , ..., βt erzeugt wird. Es sei Fqm eine K¨orpererweiterung, die alle Nullstellen von f1 , ..., ft enth¨alt. F¨ ur i = 1, ..., t betrachten wir die Matrix Hi ∈ Fqm×n , deren Spalten die Vektordarstellung n−1 2 in Fm in Fqm ist. Dann ist Hi c = 0 f¨ ur c = (c1 , ..., cn ) ∈ q der Elemente 1, αi , αi , ..., αi n Fq ¨aquivalent zu c(αi ) = 0, wenn man c als Polynom in Fq [x] auffasst. Schreiben wir alle Matrizen Hi u ¨bereinander in eine neue Matrix H, so ist H eine Kontrollmatrix des Codes mit den Nullstellen α1 , ..., αt , wobei die Zeilen von H aber nicht notwendig linear unabh¨angig sind. Wir zeigen mit diesem Ansatz, dass bin¨are (und viele andere) Hamming-Codes ¨aquivalent zu zyklischen Codes sind. Beispiel 5.6 Mit q = 2 und n = 7 gilt (n, q) = 1 und die irreduziblen Faktoren von x7 + 1 haben paarweise verschiedene Wurzeln. Es gilt x7 + 1 = (x + 1)(x3 + x2 + 1)(x3 + x + 1). Nullstellen sind also 1, eine Wurzel α ∈ F9 von x3 + x2 + 1 und eine Wurzel β ∈ F8 von x3 + x + 1. Mit F8 ∼ = F2 [x]/(x3 + x2 + 1) bzw. mit α als primitivem Element 0 0 (0, 0, 0) 1 1 (1, 0, 0) α α (0, 1, 0) 2 α α2 (0, 0, 1) ergibt sich: 3 α 1 + α2 (1, 0, 1) α4 1 + α + α2 (1, 1, 1) α5 = β 1 + α (1, 1, 0) α6 α + α2 (0, 1, 1) in F8 in F32 Hi 1 1 1 1 1 1 1
1
α
β
5.4
(1, 0, 0) 0 0 0 0 0 0 0 (0, 1, 0)
(1, 1)
0 1 0 0 1 0 0
0 0 1 0 1 1 0
0 0 0 1 1 0 1
0 1 0 1 0 1 0
0 1 1 1 0 1 1
0 1 1 0 1 1 1
0 0 1 1 0 0 1
Das Idempotent eines zyklischen Codes
Definition 5.10 Ein Element e eines Rings R heißt Idempotent, falls e2 = e gilt.
5.4. DAS IDEMPOTENT EINES ZYKLISCHEN CODES
45
Ist e ein Idempotent eines Rings R, so gilt R = eR ⊕ (1 − e)R . Denn es gilt R = eR + (1 − e)R wegen r = er + (1 − e)r f¨ ur alle r ∈ R. Außerdem gelten e · eR = eR und e · (1 − e)R = {0}, so dass eR ∩ (1 − e)R = {0} folgt. Wird ein zyklischer Code von einem Idempotent e erzeugt, so ist der Elementtest f¨ ur ein empfangenes Wort y sehr einfach: Gilt ey = y, so geh¨ort y zum Code, andernfalls nicht. F¨ ur den Rest dieses Abschnitts setzen wir (q, n) = 1 voraus. Satz 5.11 Es sei C < Rq (n) ein zyklischer Code mit (q, n) = 1. Dann existiert ein eindeutiges Idempotent e ∈ Fq [x] vom Grad < n mit C = eRq (n). Beweis. Es seien g das Erzeuger- und h das Kontrollpolynom von C. Wegen (q, n) = 1 sind g und h teilerfremd. Also gibt es Polynome a, b ∈ Fq [x] mit ag+bh ≡ 1 ur c = gs ∈ C gilt dann mod (xn − 1). Es sei e := ag = 1 − bh ∈ C. F¨ ec = (1 − bh)gs = gs − bhgs ≡ gs mod (xn − 1) . Insbesondere folgen e2 = e und C = eRq (n). Ist e0 ein weiteres Idempotent von C, so gilt wegen e|C = id|C und e0 |C = id|C auch e = ee0 = e0 . 2 Es sei xn − 1 = f1 (x)f2 (x) · · · fr (x) die Faktorisierung in normierte irreduzible Polynome in Fq [x]. F¨ ur i = 1, .., r heißt das Idempotent des zyklischen Codes Ci mit Erzeugerpolynom (xn − 1)/fi (x) ein primitives Idempotent. Satz 5.12 Es seien ϑ1 , ..., ϑr die primitiven Idempotente von Rq (n) mit (q, n) = 1. Dann gelten: (i) ϑi (x)ϑj (x) ≡ 0 mod (xn − 1), wenn i 6= j. Pr n (ii) i=1 ϑi (x) ≡ 1 mod (x − 1).
(iii) Das Polynom e(x) := 1 − (ϑi1 (x) + ϑi2 (x) + . . . + ϑis (x)) ist das Idempotent des zyklischen Codes C mit Erzeugerpolynom fi1 (x)fi2 (x) . . . fis (x). Beweis. (i) Offensichtlich. (ii) Sind C1 und C2 zwei Codes von Rq (n) mit Idempotenten e1 (x) und e2 (x), so hat der Code C := C1 + C2 = {c1 + c2 | c1 ∈ C1 , c2 ∈ C2 } das Idempotent e1 (x)+e2 (x)−e1 (x)e2 (x). Denn es gilt (e1 (x)+e2 (x)−e1 (x)e2 (x))2 = e1 (x)2 +e2 (x)2 + 2e1 (x)e2 (x) + e1 (x)2 e2 (x)2 − 2(e1 (x) + e2 (x))e1 (x)e2 (x) = e1 (x) + e2 (x) − e1 (x)e2 (x). F¨ ur die primitiven Idempotenten folgt also mit Ci := hϑi (x)i nach (i), dass Ci + Cj f¨ ur i 6= j von ϑi (x) + ϑj (x)P erzeugt wird. Also ist das Idempotent des Codes C := C1 + . . . + Cr das Polynom ri=1 ϑi (x). Andererseits gilt C = Rq (n), d.h. C hat das Idempotent 1 und die Behauptung folgt nach Satz 5.11.
46
KAPITEL 5. ZYKLISCHE CODES
(iii) Wegen e(x)2 = e(x) ist das Polynom ein Idempotent. Nach (ii) gilt e(x) = 1 − (ϑi1 (x) + ϑi2 (x) + . . . + ϑis (x)) ≡
r X
j=1 j6∈{i1 ,...,is }
ϑj (x)
mod (xn − 1).
Also teilt fi1 (x) . . . fis (x) das Polynom e(x), so dass das Polynom zu dem von fi1 (x) . . . fis (x) erzeugten Code geh¨ort und die Behauptung wieder nach Satz 5.11 folgt. 2
5.5
Beispiele
5.5.1
Zyklische Hamming-Codes
Satz 5.13 Es seien (r, q − 1) = 1, n = (q r − 1)/(q − 1) und β eine primitive nte Einheitswurzel von Fqr . Dann ist der zyklische Code C = {c(x) | c(β) = 0} ¨aquivalent zu Ham(r, q). Beweis. Es gilt (n, q − 1) = (r, q − 1) = 1 wegen n = (q r − 1)/(q − 1) = (q − 1)(q r−2 + 2q r−3 + 3q r−4 + . . . + (r − 1)q + r − 1) + r .
Also gelten β i(q−1) 6= 1 und β i ∈ / Fq f¨ ur i = 1, ..., n − 1. Es sei H die Matrix, deren Spalten die Vektordarstellungen von 1, β, β 2 , ..., β n−1 in Frq sind. Dann sind die Spalten von H linear unabh¨angig u ¨ber Fq und H ist somit eine Kontrollmatrix des Hamming-Codes Ham(r, q). 2 Satz 5.14 Wenn p(x) ein primitives Polynom vom Grad r ¨ uber F2 ist, dann ist der zyklische Code hp(x)i ⊆ R2 (2r − 1) der Hamming-Code Ham(r, 2). Beweis. Weil p(x) primitiv ist, ist der Hamming-Code Ham(r, 2) nach Satz 5.13 durch die Kontrollmatrix H = (1 x x2 · · · x2
r −2
)
definiert, wobei xi−1 als Spaltenvektor in Fr2 aufgefasst sein soll, der aus den Koeffizienten des im Ring F2 [x]/p(x) reduzierten Polynoms xi−1 mod p(x) besteht, i = 1, ..., 2r − 1. Dann gilt r
Ham(r, 2) = {(f0 , ..., f2r −2 ) ∈ F22 −1 | f0 + f1 x + ... + f2r −2 x2 = {f (x) ∈ R2r −1 | p(x) | f (x)} = hp(x)i .
r −2
= 0 in F2r } 2
Beispiel 5.7 Das Polynom x3 + x + 1 ist primitiv u ¨ ber F2 und der zyklische Code hx3 + x + 1i von F2 [x]/(x7 + 1) ist der Hamming-Code Ham(3, 2):
Ham(3, 2) = {(f0 , ..., f6 ) ∈ F72 | f0 + f1 x + ... + f6 x6 = 0 in F23 = {0, 1, x, x2 , ..., x6 }} = {f (x) ∈ R7 | x3 + x + 1 | f (x)} = hx3 + x + 1i
5.5. BEISPIELE
47
Wegen n = (q r − 1)/(q − 1) = q r−1 + . . . + q + 1 gilt f¨ ur Hamming-Codes (q, n) = 1 und Ham(r, q) hat ein Idempotent. F¨ ur Ham(3, 2) ist dies e(x) = x7 (x3 + x + 1)((x + 1)(x3 + x2 + 1))0 ≡ x4 + x2 + 1 mod (x7 + 1). Bemerkung. Nach Satz 5.13 sind die Hamming-Codes Ham(r, q) ¨aquivalent zu zyklischen Codes, wenn (r, q − 1) = 1 gilt. Zyklische Hamming-Codes sind spezielle BCH-Codes, die im n¨achsten Abschnitt eingef¨ uhrt werden.
5.5.2
BCH-Codes
BCH-Codes sind von R. C. Bose und D. K. Ray-Chaudhuri (1960) und unabh¨angig davon von A. Hocquenghem (1959) entdeckt worden. Zun¨achst konstruieren wir BCH Codes und zeigen dann eine einfache Methode, sie zu decodieren. Definition und Minimaldistanz Definition 5.15 Es seien β eine primitive nte Einheitswurzel u ¨ ber Fq und d < n. Ist g(x) das kleinste gemeinsame Vielfache der Minimalpolynome von β, β 2 , ..., β d−1 , dann heißt der zyklische Code C = hg(x)i ein BCH-Code zum Abstand d. Ist n = q m − 1, dann ist β ein primitives Element des K¨orpers Fqm und C heißt primitiver BCH-Code. Beispiel 5.8 Es seien n = 2m − 1 und β ein primitives Element von F2m . Dann gilt (n, 2) = 1 und es gibt ein eindeutiges normiertes irreduzibles Polynom f (x) ∈ Rq (n) kleinsten Grades m, das β als Nullstelle hat. Der bin¨are Code hf (x)i = {c(x) ∈ Rq (n) | c(β) = 0} hat die (m × n)-Kontrollmatrix H = (1 β β 2 · · · β n−1 ). Beachte, dass mit c(β) = 0 auch c(β 2 ) = 0 gilt und C somit ein primitiver BCH-Code zum Abstand 3 ist. Der Code C ist der bin¨are [n, n − m]-Code Ham(m, 2). Satz 5.16 (BCH-Schranke) Die Minimaldistanz eines BCH Codes C zum Abstand d ist wenigstens d. Beweis. Es sei β eine primitive nte Einheitswurzel, so dass C der vom kleinsten gemeinsamen Vielfachen g(x) der Minimalpolynome von β, β 2 , ..., β d−1 erzeugte Code ist. Ferner sei Fqm die kleinste Erweiterung von Fq , die alle Nullstellen von g(x) enth¨alt. Betrachte die Matrix 1 β β2 ··· β n−1 1 β2 β4 ··· β 2(n−1) H = (5.1) . .. .. .. . . . 1 β d−1 β 2(d−1) · · · β (n−1)(d−1) Wir betrachten die Matrix hier als (m(d − 1) × n)-Matrix u ¨ber Fq . Ein Vektor c geh¨ort zu C genau dann, wenn Hc = 0 gilt. Die Zeilen von H sind nicht notwendig
48
KAPITEL 5. ZYKLISCHE CODES
linear unabh¨angig. Es sei β = (β1 , ..., βm ) die Vektordarstellung in Fm q von β ∈ Fq m . Beliebige d − 1 Spalten von H bilden eine ((d − 1) × (d − 1))-Untermatrix i β1i1 β1i2 ··· β1d−1 2i β 2i1 β12i2 ··· β1 d−1 1 0 H := .. .. .. . . . (d−1)i1
β1
(d−1)i2
β1
(d−1)id−1
· · · β1
von H, die eine Vandermonde-Matrix ist. Also sind je d − 1 Spalten von H linear unabh¨angig. Nach Satz 2.9 hat C eine Minimaldistanz ≥ d. Andererseits ist die L¨ange m(d − 1) der Spalten von H gr¨oßer d, wenn m > 1 ist. Also k¨onnen auch je d Spalten linear unabh¨angig sein. Somit garantiert Satz 2.9 nicht, dass die Minimaldistanz h¨ochstens d ist. 2
Satz 5.17 Ein primitiver bin¨arer BCH Code zum Abstand d hat Minimaldistanz h¨ochstens 2d − 1. Beweis. Ohne Beweis.
2
Decodieren eines BCH Codes Es sei C ein BCH Code u ¨ber Fq der L¨ange n zum Abstand d = 2t+1. Ferner sei β eine primitive nte Einheitswurzel von Fqm . F¨ ur den empfangenen Vektor y = (y0 , ..., yn−1 ) eines gesendeten Worts x = (x0 , ..., xn−1 ) seien X1 , ..., Xt die Stellen, an denen Fehler der Gr¨oßen mX1 , ..., mXt aufgetreten sind. Sind e < t Fehler entstanden, so nehmen wir mXe+1 = mXe+2 = ... = mXt = 0 an. Es sei M der Support des Fehlervektors y − x, d.h. M = {X1 , ..., Xe } = {Xi | mi 6= 0}. Das Fehlerlokalisierungspolynom (engl. error-locator polynomial) ist Y σ(z) := (1 − β i z) , i∈M
und das Fehlerauswertungspolynom (engl. error-evaluator polynomial) ist X Y ω(z) := mi β i z (1 − β j z). i∈M
j∈M \{i}
Die Nullstellen von σ(z) und ω(z) bestimmen den Fehlervektor. Ein Fehler ist an Stelle i aufgetreten genau dann, wenn σ(β −i ) = 0 gilt. Dann betr¨agt der Fehler P Q − k∈M mk β k j∈M \{k} (1 − β j−i ) −ω(β −i )β i Q = P mi = k j−i ) σ 0 (β −i ) k∈M β j∈M \{k} (1 − β Q wegen j∈M \{k} (1 − β j−i ) = 0 genau dann, wenn i 6= k gilt. Ziel ist also, die Polynome σ(z) und ω(z) zu bestimmen. Wir berechnen in Fd−1 q m das Syndrom von y mittels der Matrix H von (5.1) zu S(y)T = (S1 , ..., S2t )T = Hy
5.5. BEISPIELE
49
mit Sj =
n−1 X
ij
yi β =
i=0
t X
mi β Xi j
i=1
f¨ ur j = 1, ..., 2t. Also ist das Gleichungssystem β X1 β X2 . . . β Xt m1 β 2X1 β 2X2 . . . β 2Xt m2 .. .. .. .. = S . . . . 2tX1 2tX2 2tXt β β ... β mt
(5.2)
zu l¨osen. Mit
φ(z) =
t X i=1
folgt
t
X mi = mi (1 + β Xi z + β 2Xi z 2 + . . .) 1 − β Xi z i=1
(5.3)
φ(z) = (m1 + m1 + . . . + mt ) + (m1 β X1 + m2 β X2 + . . . + mt β Xt )z +(m1 β 2X1 + m2 β 2X2 + . . . + mt β 2Xt )z 2 + . . . = S0 + S1 z + S2 z 2 + . . . + S2t z 2t + . . . , wobei wir S0 := m1 + m2 + . . . + mt gesetzt haben. Bringt man die Summe (5.3) in einen Bruch mit gemeinsamem Nenner A1 + A2 z + A3 z 2 + . . . + At z t−1 φ(z) = , (5.4) 1 + B1 z + B2 z 2 + . . . + Bt z t so folgt (S0 + S1 z + S2 z 2 + . . .)(1 + B1 z + B2 z 2 + . . . Bt z t ) = A1 + A2 z + A3 z 2 + . . . + At z t−1 . Durch Koeffizientenvergleich findet man das Gleichungssystem A1 S0 0 0 ... 0 0 A2 S1 S0 0 ... 0 0 1 A3 S2 S S . . . 0 0 1 0 . B1 . .. .. .. .. . . . . . . . B2 . (5.5) 0 .. = At St−1 St−2 St−3 . . . S0 . St−1 St−2 . . . S1 S0 0 St St St−1 . . . S2 S1 Bt−1 0 St+1 . . Bt .. .. .. .. .. . . . 0 S2t S2t−1 S2t−2 . . . St+1 St Aus den letzten t Zeilen folgen B1 , ..., Bt , aus der mittleren Zeilen bestimmt man daraus S0 und damit kann man schließlich A1 , ..., At berechnen. Ist das System f¨ ur B1 , ..., Bt unterbestimmt, so sind weniger als t Fehler aufgetreten. Dann w¨ahlt man Bt = Bt−1 = ... = Bt−r+1 = At = At−1 = ... = At−r+1 = 0 bis das verbleibende System eine eindeutige L¨osung f¨ ur B1 , ..., Bt−r hat. Daraus ergeben sich dann S0 und A1 , ..., At−r . Durch Partialbruchzerlegung von (5.4) ergeben sich m1 , ..., mt−r und X1 , ..., Xt−r als Funktionen von A1 , ..., At−r und B1 , ..., Bt−r .
50
KAPITEL 5. ZYKLISCHE CODES
5.5.3
Reed-Solomon Codes
Bevor BCH Codes so allgemein eingef¨ uhrt worden waren, wie wir sie definiert haben, sind spezielle Codes untersucht worden. Eine der wichtigsten Familien sind die BCH Codes mit n = q − 1, die von Reed und Solomon erforscht worden sind. Definition 5.18 Ein Reed-Solomon Code ist ein primitiver BCH Code u ¨ber q der L¨ange nQ= q − 1. Das Erzeugerpolynom eines Reed-Solomon Codes hat die Form i g(x) = d−1 i=1 (x − α ), wobei α ein primitives Element von Fq ist.
Nach Satz 5.16 betr¨agt die Minimaldistanz von C wenigstens d. Nach der SingletonSchranke 4.9 haben Reed-Solomon Codes die Minimaldistanz d und sind somit [n, n− d + 1, d]-Codes u ur ¨ ber q, also MDS Codes. Also haben wir eine scharfe Schranke f¨ die Gr¨oße Aq (n, d) von Codes u ur eine ¨ber q der L¨ange n und Minimaldistanz d f¨ unendliche Serie von Werten d ≤ n ≤ q − 1 gefunden. Korollar 5.19 Sind q eine Primzahlpotenz und d ≤ n ≤ q − 1, dann gilt Aq (n, d) = q n−d+1 . 2 Ein Beispiel Es sei C der 3-Fehler korrigierende Code u ¨ber 11 mit Kontrollmatrix 1 1 1 ... 1 1 2 3 . . . 10 1 22 32 . . . 102 H= 3 3 3 . 1 2 3 . . . 10 1 24 34 . . . 104 1 25 35 . . . 105
Beachte, dass 2 ein primitives Element von F11 ist. Wenn y = (y1 , ..., y10 ) ein empfangener Vektor ist, dann ist das Gleichungssystem (5.2) f¨ ur das Syndrom durch die Fehlerstellen X1 , ..., Xt ∈ F11 und die Fehlergr¨oßen m1 , ..., mt ∈ F11 bestimmmt. Weil q hier eine Primzahl ist, ben¨otigen wir nicht die Potenzen eines primitiven Elements β von Fq : 1 1 ... 1 m1 X1 X2 . . . Xt 2 X2 m2 X2 . . . Xt2 1 .. = S. . .. .. .. . . . mt 2t−1 2t−1 2t−1 X1 X2 . . . Xt Gleichung (5.3) wird φ(z) =
t X i=1
t
X mi = mi (1 + Xi z + Xi2 z 2 + . . .) 1 − Xi z i=1
5.5. BEISPIELE
51
und auch in den Fehlerlokalisierungs- und Fehlerbewertungspolynom m¨ ussen wir nicht mehr Potenzen eines primitiven Elements β benutzen, sondern nur die Elemente {1, ..., 10} von F11 . Ebenso ¨andert sich Gleichung (5.5). Sei das Syndrom eines empfangenen Vektors S = (2, 8, 4, 5, 3, 2) und seien h¨ochstens 3 Fehler aufgetreten. Wir erhalten die Werte B1 , B2 , B3 , S0 und A1 , A2 , A3 der Fehlerlokalisierungs- und Fehlerbewertungspolynome aus dem Gleichungssystem (5.5) 1 5 4 8 2 3 5 4 8 B1 = 0. B2 2 3 5 4 B3
Es folgen (B1 , B2 , B3 ) = (5, 10, 8) und daraus S0 = −(S3 + S2 B1 + S1 B2 )/B3 = (4 + 40 + 20)/8 = 3. Damit berechnen wir A1 , A2 , A3 durch 1 A1 3 0 0 0 2 3 0 0 B1 = A2 . B2 A3 8 2 3 0 B3 Es folgt (A1 , A2 , A3 ) = (3, 6, 4). F¨ ur die Partialbruchzerlegung von φ(z) =
3 + 6z + 4z 2 1 + 5z + 10z 2 + 8z 3
faktorisieren wir das Fehlerlokalisierungspolynom σ(z) = 1 + 5z + 10z 2 + 8z 3 = (1 − 3z)(1 − 5z)(1 − 9z) und erhalten φ(z) =
m1 m2 m3 3 + 6z + 4z 2 = + + . (1 − 3z)(1 − 5z)(1 − 9z) 1 − 3z 1 − 5z 1 − 9z
Deckt man einen nach dem anderen die Faktoren 1 − 3z, 1 − 5z und 1 − 9z ab, d.h. multipliziert man mit 1 − az und setzt dann az = 1 oder z = a−1 , so folgen m1 = 7, m2 = 7 und m3 = 2. Der Fehlervektor ist also (0, 0, 7, 0, 7, 0, 0, 0, 2, 0).
5.5.4
Codeverschachtelung und Audio-CD
Definition 5.20 Es seien C ein [n, k, d]-Code und t ∈ N. Dann heißt der [tn, tk, d]Code C(t) = {(c11 , ..., ct1 , ..., c1n , ..., ctn ) | (ci1 , ..., cin ) ∈ C f¨ ur alle i = 1, ..., t} die Codeverschachtelung von C zur Tiefe t. Man kann sich die Codew¨orter von C(t) als Matrizen c11 . . . c1n .. .
...
ct1
. . . ctn
52
KAPITEL 5. ZYKLISCHE CODES
mit Zeilen aus C vorstellen, die spaltenweise gelesen werden. Kann C ein Fehlerb¨ undel der L¨ange b korrigieren, d.h. b aufeinanderfolgende Fehler, so kann C(t) Fehlerb¨ undel der L¨ange tb korrigieren. Ein Nachteil ist, dass erst t W¨orter codiert sein m¨ ussen, bevor das Codewort gesendet wird. Dies gleicht die l-fach verz¨ogerte Codeverschachtelung aus, bei der nicht t aufeinanderfolgende Codew¨orter von C in eine Matrix geschrieben werden, sondern ein Feld erstellt wird, in dem die Codew¨orter diagonal wie folgt eingetragen werden:
. . . ci,1 ci+1,1 . . . ci+l,1 . . . ci,2 ci+1,2 . . . ci+l,2 .. . . . . ci,n ci+1,n . . . ci+l,n
Dann kann nach einer Initialisierungsphase mit jedem neuen Codewort eine Spalte gesendet werden. Bemerkung Ein linearer Code der Minimaldistanz d kann d−1 Fehler korrigieren, wenn deren Positionen bekannt sind. Ist y = x + e mit x ∈ C und e ein Fehlervektor mit d − 1 Eintr¨agen ungleich Null an bestimmten Positionen i1 , ..., id−1 und ist w ein Codewort, das sich von y nur an den Positionen i1 , ..., id−1 unterscheidet, so ist x − w ein Codewort vom Gewicht d − 1, also gleich Null. Die spiralf¨ormige Spur auf einer Audio-CD ist ca. 5km lang und 0, 6µm breit. Ein bit ist ca. 0, 3µm lang und eine CD enth¨alt somit ca. 17 Milliarden bits. Vertiefungen heißen Pits und Nicht-Vertiefungen Lands. Der Wechsel zwischen Pits und Lands markiert eine 1, die u ¨brigen Stellen sind Nullen. Der Abstand zwischen zwei Spuren betr¨agt ca. 1µm und zwischen zwei Pit/Land-Wechseln liegen mindestens 2 und h¨ochstens 10 bits. Ein [255, 251, 5]-Reed Solomon Code u ur das CDDA ¨ ber F28 ist die Grundlage f¨ System (Compact Disc Digital Audio) von Philips. Ein [28, 24, 5]-Code C1 und ein [32, 28, 5]-Code C2 werden daraus durch Verk¨ urzen konstruiert. Analog/Digitalwandler wandeln analoge Audiosignale in W¨orter der L¨ange 24 u ¨ber F28 beziehungsweise in 24 Bites. Mit C1 codiert man das digitale Audiosignal und wendet darauf eine 4-fach verz¨ogerte Codeverschachtelung zur Tiefe 28 an. Die Spalten des verschachtelten Codes C1 (28) werden mittels C2 zu W¨ortern der L¨ange 32 codiert. Ein Fehler in einem Wort von C2 wird von C2 korrigiert. Treten mindestens zwei Fehler in einem Codewort von C2 auf, so wird es gel¨oscht. Dadurch wird in 28 Codew¨ortern von C1 je eine Position fehlerhaft. Wegen der 4-fach Verz¨ogerung k¨onnen 4 · 4 aufeinanderfolgende gel¨oschte W¨orter korrigiert werden, was einem Fehlerb¨ undel der L¨ange 32 · 16 = 512 entspricht. In bits ist dies ein Fehlerb¨ undel der L¨ange 4096 = 32·16·8 auf der CD. Mit technischen Zusatzbits auf der CD entspricht dies einer L¨ange von 9408 bits oder 2, 8 mm.
5.5. BEISPIELE
5.5.5
53
Der bin¨ are Golay-Code
Golay hat 1949 zwei perfekte Codes ver¨offentlicht. Er hatte Erzeugermatrizen gesucht, welche zu den m¨oglichen Parametermengen f¨ ur perfekte Codes geh¨orten, d.h. die Hamming-Schranke erreichten. Der bin¨are Golay-Code G23 ist ein Ideal des Rings F2 [x]/(x23 − 1). In den folgenden Lemmata erhalten wir Schranken f¨ ur die Gewichte von Codew¨ortern eines zyklischen Codes in F2 [x]/(xp − 1) f¨ ur Primzahlen p > 2. Lemma 5.21 Es seien p eine ungerade Primzahl und xp − 1 = (x − 1)g1 (x)g2 (x) in F2 [x], so dass C1 = hg1 (x)i und C2 = hg2 (x)i ¨aquivalente Codes ¨ uber F2 sind. Wenn a(x) ein Codewort von hg1 (x)i ungeraden Gewichts w ist, dann gelten (i) w 2 ≥ p und (ii) wenn außerdem g2 (x) = g1 (x) gilt, so folgt auch w 2 − w + 1 ≥ p. Beweis. (i) Zu a(x) ∈ C1 existiert ein Polynom b(x) ∈ C2 desselben Gewichts w, weil C2 ¨aquivalent zu C1 ist. Wegen xp − 1 = (x − 1)g1 (x)g2 (x) ist (x − 1)g2 (x) ein Kontrollpolynom von C1 . Es folgt a(x)b(x) = 0 oder 1 + x + x2 + · · · + xp−1 , weil b(x) = f (x)g2 (x) f¨ ur ein f (x) ∈ Rp gilt. Weil w ungerade ist, folgt a(1)b(1) = w 2 ≡ 1 mod 2. Somit ergibt sich a(x)b(x) = 1+x+x2 +· · ·+xp−1 . Weil andererseits a(x)b(x) h¨ochstens w 2 Koeffizienten ungleich Null hat, folgt w 2 ≥ p. (ii) Wenn g2 (x) = g1 (x) gilt, dann sind die Codew¨orter von C2 die reziproken Codew¨orter von C1 . Wenn a(x) ∈ C1 den Grad r hat, dann k¨onnen wir f¨ ur das r −1 Polynom b(x) aus dem Beweis zu (i) das Polynom a(x) = x a(x ahlen. Es Pw ) w¨ r 2 p−1 ei folgt a(x)a(x−1 )x = 1 + x + x + · · · + x . Wenn a(x) = x ist, hat i=1 Pw Pw ei −ej −1 wenigstens das Gewicht p. Das Produkt a(x)a(x−1 ) a(x)a(x ) = i=1 j=1 x hat w 2 Monome xk und darunter x0 genau w mal. Es folgt also w 2 − w ≥ p − 1. 2 Korollar 5.22 Unter den Voraussetzungen von Lemma 5.21 und wenn die Mini√ maldistanz d von hg1 (x)i ungerade ist, dann gilt d ≥ p. Wenn g2 (x) = g1 (x) gilt, dann folgt d2 − d + 1 ≥ p. 2 Lemma 5.23 Es seien p eine ungerade Primzahl und es gelte xp − 1 = (x − 1)g1 (x)g1 (x) u ¨ber F2 . Wenn a(x) ein Codewort geraden Gewichts w ist, dann gelten (i) w ≡ 0 mod 4 und (ii) w 6= 4 bis auf p = 7. Beweis. (i) Wie im Beweis zu Lemma 5.21 folgt f¨ ur ein Codewort a(x) ∈ C1 vom Grad r, dass a(x)a(x) = a(x)a(x−1 )xr = 0 oder 1 + x + x2 + · · · + xp−1 gelten. P w ei Weil a(x) gerades Gewicht hat, folgt a(x)a(x−1 ) = 0. Aus a(x) = folgt i=1 x P P w w ei −ej 0 −1 = 0. Der Term x taucht w mal auf, f¨ ur alle i = j. a(x)a(x ) = i=1 j=1 x Weil w gerade ist, addieren diese Terme modulo 2 zu Null. Die u ¨ brigen w 2 −w Terme
54
KAPITEL 5. ZYKLISCHE CODES
xei −ej f¨ ur i 6= j summieren paarweise zu Null, d.h. zu jedem xei −ej existieren k, l mit ei −ej x = xek −el . Mit xei −ej = xek −el gilt also auch xej −ei = xel −ek und diese 4 Terme summieren zu Null. Also gilt w 2 − w = w(w − 1) ≡ 0 mod 4, woraus w ≡ 0 mod 4 folgt, da w gerade ist. (ii) Es seien w = 4 und a(x) = 1 + xi + xj + xk mit 0 < i < j < k < p. Wie in Teil (i) gilt (1 + xi + xj + xk )(1 + x−i + x−j + x−k ) = xi + x−i + xj + x−j + xk + x−k + xi−j + xj−i + xi−k + xk−i + xj−k + xk−j = 0. Da wegen p ungerade xi 6≡ x− i mod (xp − 1) f¨ ur alle 0 < i < p gilt, m¨ ussen sich die Monome mit Potenzen in je zwei der Mengen {i, −i}, {j, −j}, {k, −k}, {i − j, j − i}, {i − k, k − i} und {j − k, k − j} ausl¨oschen, d.h. die Mengen fallen in drei Paare, deren Monome zu Null summieren. O.B.d.A. nehmen wir an, dass i modulo p kongruent zu einem von −j, j − i oder j − k ist. Gilt i ≡ j − k mod p, dann ist auch k ≡ j − i mod p ein Paar, das sich ausl¨oscht. Also muss das dritte Paar j ≡ ±(i − k) mod p sein. F¨ ur j ≡ i − k mod p folgt 2k ≡ 0 mod p – ein Widerspruch. F¨ ur j ≡ k − i mod p folgt 2i ≡ 0 mod p, ebenfalls ein Widerspruch. Gilt i ≡ −j mod p, so folgen k ≡ i − k mod p oder k ≡ j − k mod p. Da dies ¨aquivalente F¨alle sind, nehmen wir i ≡ 2k mod p an. Damit folgen i − j ≡ j − k mod p und k ≡ −3i ≡ −6k mod p. Damit folgt 7k ≡ 0 mod p, was ein Widerspruch, wenn nicht p = 7 gilt. Gilt schließlich i ≡ j − i mod p, dann bleiben nach den bereits betrachteten F¨allen nur noch die Paare j ≡ k − j mod p und k ≡ i − k mod p. Daraus folgt k ≡ 2j ≡ 4i ≡ 8k mod p, also 7k ≡ 0 mod p. Also kann es kein Codewort vom Gewicht 4 geben, wenn p 6= 7 ist. 2 ¨ Uber F2 gilt x23 − 1 = (x − 1)(x11 + x10 + x6 + x5 + x4 + x2 + 1)(x11 + x9 + x7 + x6 + x5 + x + 1) = (x − 1)g1 (x)g2 (x) Es seien C1 = hg1 (x)i und C2 = hg2 (x)i. Nach Satz 5.5 ist C1 ein [23, 12]-Code. Weil g1 (x) und g2 (x) reziprok sind, sind die Codes C1 und C2 dual zueinander nach Satz 5.8 und ¨aquivalent nach Korollar 5.4. Nach Lemma 5.21 ist das kleinste ungerade Gewicht in C1 wenigstens 7, weil die Existenz eines Codeworts vom Gewicht 5 mit d = 5 auch w 2 − w + 1 = 21 < 23 = p erforderte. Nach Lemma 5.23 hat kein nichttriviales Codewort ein gerades Gewicht < 8. Weil g1 (x) ein Codewort vom Gewicht sieben ist, ist 7 die Minimaldistanz von C1 . Also ist die Hamming-Schranke 23 23 12 1 + 23 + + = 223 2 2 3 und C1 ein perfekter [23, 12, 7]-Code. Er ist der bin¨are Golay-Code und wird mit G23 bezeichnet. Satz 5.24 Es sei G23 der bin¨are zyklische Code von R2 (23) erzeugt von g(x) = 1 + x2 + x4 + x5 + x6 + x10 + x11 . Dann ist G23 ein perfekter [23, 12, 7]-Code.
2
5.5. BEISPIELE
5.5.6
55
Der tern¨ are Golay-Code
¨ Uber F3 hat das Polynom x11 − 1 die Faktoren x11 − 1 = (x − 1)(x5 + x4 − x3 + x2 − 1)(x5 − x3 + x2 − x − 1) = (x − 1)g1 (x)g2 (x). Wegen g2 (x) = −x5 g1 (x−1 ) sind die Codes hg1 (x)i und hg2 (x)i ¨aquivalente [11, 6]Codes. Wir zeigen, dass die Minimaldistanz von hg1 (x)i gleich 5 ist. Lemma 5.25 Es sei C der tern¨are Code hg1 (x)i in F3 [x]/(x11 − 1) mit g1 (x) = x5 + x4 − x3 + x2 − 1, und es sei D der Teilcode von C erzeugt von (x − 1)g1 (x). Wenn a(x) = a0 + a1 x + ... + a10 x10 ein Codewort von C vom Gewicht w ist, dann gelten P (i) a(x) ∈ D genau dann, wenn 10 i=0 ai = 0, (ii) w ≡ 0 mod 3, wenn a(x) ∈ D,
(iii) w ≡ 2 mod 3, wenn a(x) ∈ / D, (iv) w ≥ 4, wenn a(x) ∈ / D, (v) w 6= 3 und (vi) d(C) = 5. Beweis. (i) F¨ ur a(x) ∈ C gilt a(x) ∈ D ⇔ x − 1 | a(x) ⇔ a(1) = 0 ⇔
10 X
ai = 0
i=0
P 2 (ii) Wegen x2 = 1 f¨ ur alle x ∈ F3 \{0} ist das Gewicht von a(x) gleich w = 10 i=0 (ai ⊥ mod 3). Nach Satz 5.8 ist der duale Code D von D von dem reziproken Polynom x5 g2 (x−1 ) = −g1 (x) von g2 (x) erzeugt. Daher gelten C = D ⊥ , D < C = D ⊥ und D ist selbstorthogonal, d.h. das innere Produkt zweier beliebiger orter D P10 Codew¨ 2 ist Null in F3 . Insbesondere gilt h(a0 , ..., a10 ), (a0 , ..., a10 )i = i=0 ai ≡ 0 mod 3, woraus w ≡ 0 mod 3 folgt.
(iii) Da (x − 1)g1 (x) ein Erzeugerpolynom von D ist, ist die Dimension von D eins 11 −1 geringer als die von C nach Satz 5.5. Das Polynom h(x) = 1+x+x2 +· · ·+x10 = xx−1 geh¨ort zu C aber nicht zu D. Also ist C die disjunkte Vereinigung D, h(x) + D Pvon 10 und −h(x) + D. F¨ ur a(x) ∈ C \ D gilt a(x) = ±h(x) + d(x) = i=0 (di ± 1)xi f¨ ur ein Codewort d(x) = d0 + d1 x + · · · + d10 x10 ∈ D. Das Gewicht von a(x) ist w=
10 X
(a2i
i=0
weil
P10
i=0
mod 3) =
10 X i=0
((di ±1)
2
di ≡ 0 mod 3 nach (i) und
mod 3) =
10 X i=0
P10
i=0
((d2i ±2di +1)
mod 3) ≡ 2
d2i ≡ 0 mod 3 nach (ii) gelten.
mod 3,
56
KAPITEL 5. ZYKLISCHE CODES
(iv) F¨ ur a(x) ∈ / D gilt a(1) 6= 0. Dann ist a(x)a(x−1 ) ein Vielfaches von g1 (x)g2 (x) = h(x) = 1 + x + x2 + · · · + x10 , d.h. a(x)a(x−1 ) ≡ ±h(x) mod (x11 − 1). Also hat a(x)a(x−1 ) das Gewicht 11. Andererseits sind h¨ochstens w 2 Koeffizienten von a(x)a(x−1 ) nicht Null, und es folgt w 2 ≥ 11 oder w ≥ 4. (v) Nehmen wir a(x) = 1 ± xi ± xj f¨ ur 1 ≤ i ≤ j ≤ 10 an, m¨oglicherweise nach Multiplikation mit −1. Nach (ii) und (iii) gilt a(x) ∈ D. Wegen (i) folgt also a(x) = 1+xi +xj . Da g1 und g2 reziproke Polynome sind und x−1 ein Faktor von a(x) ist, gilt a(x)a(x−1 ) = (1+xi +xj )(1+x−i +x−j ) = xi +x−i +xj +x−j +xi−j +xj−i = 0. Weil i und j verschieden sind und ungleich Null, folgt i ≡ −j ≡ i−j mod 11, woraus 2j ≡ 0 mod 11 folgt – ein Widerspruch.
(vi) Nach (i) und (ii) haben nichttriviale Codew¨orter von D wenigstens das Gewicht 6. Nach (iii) und (iv) haben Codew¨orter in C \ D wenigstens das Gewicht 5. Weil g1 (x) ∈ C das Gewicht 5 hat, gilt d(C) = 5. 2 Der tern¨are [11, 6, 5]-Code C mit Erzeugerpolynom g1 (x) = x5 + x4 − x3 + x2 − 1 ist der tern¨are Golay-Code und wird mit G11 bezeichnet. Er ist 2-Fehler-korrigierend und perfekt mit Hamming-Schranke 11 11 2 6 3 1+ 2+ 2 = 36 · 243 = 311 . 1 2 Eine andere Definition des tern¨aren Golay-Codes ist u ¨ ber das Punktieren eines tern¨aren [12, 6, 6]-Codes. Mit dieser Methode kann auch der bin¨are Golay-Code definiert werden. Satz 5.26 Der tern¨are Code 0 1 1 1 1 0 1 2 1 1 0 1 G= I 6 | 1 2 1 0 1 2 2 1 1 1 2 2 ist ein [12, 6, 6]-Code.
G12 mit Erzeugermatrix 1 1 2 1 2 2 1 2 0 1 1 0
Index (n, M, d)-Code, 3 (n, s)-Menge, 29 [n, k, d]-Code, 7 nte Einheitswurzel, 43 ¨aquivalent, 8
Hamming-Code, 13 Hamming-Decodierung, 2 Hamming-Distanz, 2 Hamming-Schranke, 5 homogene Koordinaten, 23 Hyperoval, 28
arc, 24 Audio-CD, 52
Idempotent, 44 Informationsrate, 4 Informationsstellen, 9 ISBN Code, 8
Basis, 22 BCH-Code zum Abstand t, 47 bin¨arer Golay-Code, 54 Blockcode, 1 Bogen, 24
Kontrollmatrix, 10 Kontrollpolynom, 42 Kugelpackungsschranke, 5
CDDA-System, 52 Charakter, 17 Codeverschachtelung, 51 Codierungstheorieproblem, 3
linearer Code, 7 MDS-Code, 31 Minihyper, 36 Minimaldistanz, 3 Minimaldistanzdecodierung, 2 Minimalgewicht, 7
dualer Code, 9 Dualit¨atssatz von MacWilliams, 17 error-evaluator polynomial, 48 error-locator polynomial, 48 erweitern, 9, 14 Erzeugermatrix, 7, 36 Erzeugerpolynom, 40
Nebenklassenf¨ uhrer, 11 nichtausgeartet, 25 nichtsingul¨ar, 26 Nukleus, 28
Fehlerauswertungspolynom, 48 Fehlerb¨ undel, 52 Fehlerlokalisierungspolynom, 48
optimaler Code, 29 Ordnung, 22 Ovoid, 30
Gewicht, 3 Gewichtspolynom, 17 Gewichtsverteilung, 17 Griesmer-Schranke, 35
perfekter Code, 6 Pr¨ ufstellen, 9 Pr¨ ufziffer, 4 primitive nte Einheitswurzel, 43 primitives Idempotent, 45 primitives Polynom, 43 Projektion, 34
Hadamard-Code, 15 Hadamard-Matrix, 15 57
58 projektive Dimension, 22 projektiver Code, 36 projektiver Raum, 21 quadratische Form, 25 Quadrik, 25 Quotientengeometrie, 34 rationale Normkurve, 24 Reed-Solomon Code, 50 Repetitionscode, 1, 32 reziprokes Polynom, 43 Satz von Segre, 27 Singleton-Schranke, 31 Standardform, 9, 10 symmetrischer Kanal, 2 Syndrom, 11 Syndromtabelle, 12 tern¨arer Golay-Code, 56 Umgebung, 5 unabh¨angige Menge, 22 Wortfehlerwahrscheinlichkeit, 2 zyklischer Code, 39
INDEX