XI Codierungstheorie
Inhaltsverzeichnis
47 Lineare Codes 1
47.1 Einf¨uhrung . . . 1
47.2 Lineare (bin¨are) Codes . . . 2
47.3 Bin¨are Hamming Codes als Beispiele f¨ur lineare Codes . . . 6
48 Endliche K¨orper 8 48.1 Ringe und Ideale . . . 8
48.2 Restklassenringe . . . 10
49 Zyklische Codes 17 49.1 Ein Codierer f¨ur zyklische Codes . . . 20
49.2 Der Minimalabstand zyklischer Codes . . . 21
49.3 Unvollst¨andiges Decodieren von zyklischen Codes . . . 23
49.4 Reed-Solomon Codes . . . 25
49.5 Codes bei CD-Spielern . . . 27
47 Lineare Codes
47.1 Einf¨ uhrung
Definition 47.1 (i) Ein Code C der L¨ange N ¨uber dem (endlichen) Alphabet A ist eine Teilmenge von AN.
(ii) Die Informationsrate von C ist
r(C) := 1
N log|A|(|C|) = log(|C|) log(|AN|). (iii) Sind x, y ∈AN, so heißt
d(x, y) :=|{i∈ {1, . . . , N} |xi 6=yi}|
der Hamming-Abstand von x und y.
d(C) := min{d(x, y)|x6=y∈C}
heißt der Minimalabstand von C.
Bemerkung: (i) F¨ur den Hamming-Abstand gilt die Dreiecksungleichung:
d(x, y) +d(y, z)≥d(x, z) f¨ur alle x, y, z∈AN (ii) r(C) = log|A|N(|C|) =: r erf¨ullt also|C|= (|AN|)r.
Beispiel: SeiA={a, b, . . . , z},N = 3 undC :={(aaa),(bbb), . . . ,(zzz)}. Dann ist r(C) = 13log26(26) = 13 und d(C) = 3. Der Decodierer kann 1 ¨Ubertragungsfehler korrigieren und 2 Fehler erkennen.
Definition 47.2 Sei C ⊆ AN ein Code. Ein minimal distance decoder MDD ist eine Funktion f :AN →C mit
d(f(a), a) = min{d(c, a)|c∈C} f¨ur alle a∈AN. Satz 47.3 Sei C ⊆AN ein Code, d:=d(C), f ein MDD f¨ur C.
(i) F¨ur e < d2 kann der MDD e Ubertragungsfehler korrigieren.¨
(ii) Ist die Anzahl e der ¨Ubertragungsfehler e < d. so erkennt MDD, daß die Ubertragung fehlerhaft ist (decodiert aber nicht notwendig zum richtigen Code-¨ wort).
Ist also a ∈ AN das empfangene Wort beim Senden von c ∈ C und sind beim Ubertragen¨ d(a, c) = e Fehler aufgetreten, so gilt: Ist e < d2, so ist f(a) = c. Ist e < d, so ist a=c oder a 6∈C.
Ziel der Codierungstheorie Finde CodesC mit großem Minimalabstandd(C) und großer Informationsrate r(C).
Definition 47.4 Zwei Codes C, C0 heißen¨aquivalent, falls es eine Umordnungσ von {1, . . . , N} gibt, mit C0 ={(cσ(1), cσ(2), . . . , cσ(N))|(c1, . . . , cN)∈C}.
47.2 Lineare (bin¨ are) Codes
A = {0,1} mit 1 + 1 = 0. Dann ist A ein K¨orper und wird auch mit A = F2
bezeichnet. A ist ein Beispiel eines endlichen K¨orpers. Wir werden sp¨ater sehen, daß es zu jeder Primzahlpotenz q = ps genau einen endlichen K¨orper mit q Elementen gibt. Dieser wird mit Fq bezeichnet.
Definition 47.5 SeiAein endlicher K¨orper undAN ={(a1, . . . , aN)|a1, . . . , aN ∈ A} der Standardvektorraum der Dimension N ¨uber A. Eine Teilmenge C ⊆ AN heißt linearer Code, falls C ein Untervektorraum von AN ist (C ≤ AN). Ist A=F2, so nennen wir C einenlinearen bin¨aren Code. IstC ≤AN und(b1, . . . , bk) eine A-Basis von C, (die bi sind Zeilen) so heißt die Matrix B ∈ Ak×N, deren i-te Zeile gerade bi ist, eine Erzeugermatrix von C.
Bemerkung 47.6 Ist C ≤AN ein linearer Code der Dimension k, so ist |C|=
|A|k und r(C) = Nk die Informationsrate von C. C heißt dann auch ein [N, k]- Code oder auch [N, k, d]-Code, falls d=d(C).
Bemerkung IstA ein K¨orper, x, y, z∈AN, so giltd(x, y) =d(x+z, y+z).
Satz 47.7 F¨ur den Minimalabstand eines linearen CodesC gilt:d(C) = min{d(c,0)| c∈ C}, wo 0 ∈ C der Nullvektor ist. F¨ur c ∈ C heißt d(c,0) =: w(c) auch das Gewicht von c.
Beweis.d(c, c0) =|{i|ci 6=c0i}|=|{i |ci−c0i 6= 0}|=d(c−c0,0) =w(c−c0). Ist C ein linearer Code, so gilt c−c0 ∈C fallsc, c0 ∈C. ¤ Beispiel Der erweiterte Hamming Code e8
Erzeugermatrix:
1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0
Code:
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 e8 ist ein [8,4,4]-Code. r(e8) = 48,d(e8) = 4.
Im Vergleich dazu hat der Wiederholungscode mit Erzeugermatrix
1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1
auch Informationsrate 12 aber kleineren Minimalabstand 2.
Bemerkung: Jeder lineare Code C ≤ AN ist ¨aquivalent zu einem Code mit Er- zeugermatrix der Form (Ik|PN−k).
Definition 47.8 Sei A ein K¨orper.
(a) F¨ur x, y ∈AN sei (x, y) :=PN
i=1xiyj ∈A das Skalarprodukt zwischen x und y.
(b) Ist C ≤AN ein linearer Code, so definieren wir
C⊥ :={x∈AN |(x, c) = 0 f¨ur alle c∈C}
den dualen Code zuC.
(c) C heißt selbstdual, falls C =C⊥.
Bemerkung 47.9 (i) Das Skalarprodukt ist symmetrisch, d.h. f¨ur allex, y ∈AN ist (x, y) = (y, x).
(ii) F¨ur a1, a2 ∈A und x, y1, y2 ∈ AN ist (x, a1y1+a2y2) = a1(x, y1) +a2(x, y2) d.h. das Skalarprodukt ist linear.
(iii) F¨ur x ∈ AN gilt: x ∈ C⊥ ⇔ (x, bi) = 0 f¨ur alle 1 ≤ i ≤ k f¨ur eine Basis (b1, . . . , bk) von C.
(iv) C⊥≤AN ist ein linearer Teilraum.
(v) F¨ur C ≤AN gilt (C⊥)⊥ =C.
Beweis. (i) Klar aus der Definition. (ii) Nachrechnen, folgt aus dem Distributiv- gesetz.
(iii) ⇒ ist klar, da bi ∈ C. ⇐ Sei (x, bi) = 0 f¨ur alle i. Zu c ∈ C gibt es a1, . . . , ak ∈A, mit c=Pk
i=1aibi. Dann ist (x, c) = Pk
i=1ai(x, bi) = 0.
(iv) Zu zeigen ist, daß f¨ur a1, a2 ∈ A und x1, x2 ∈ C⊥ die Linearkombination a1x1+a2x2 ∈C⊥liegt. Seic∈C. Dann ist (a1x1+a2x2, c) = a1(x1, c)+a2(x2, c) = 0.
(v) Klar ist C ⊆ (C⊥)⊥. Die Gleichheit folgt, da beide Teilr¨aume gem¨aß dem
n¨achsten Satz die gleiche Dimension haben. ¤
Beispiel: F¨ur C=e8 gilt C⊥ =C.
Satz 47.10 Sei C ≤AN ein linearer Code der Dimension dim(C) = k.
(i) dim(C⊥) = N −k.
(ii) Ist (Ik|PN−k) eine Erzeugermatrix von C, so ist (−PNtr−k|IN−k) eine Erzeu- germatrix vonC⊥.
Beispiel: A=F2,N = 6, k = 2, Erzeugermatrix von C:
µ 1 0 0 1 1 0 0 1 0 0 1 1
¶ .
Dann ist dim(C⊥) = 6−2 = 4 und eine Erzeugermatrix von C⊥ ist:
0 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1
Bemerkung IstB eine Erzeugermatrix von C⊥, so gilt f¨ur allex∈AN: x∈C ⇔x·Btr = 0
Eine MatrixH ∈AN×N−kmit der Eigenschaft, daßx∈C ⇔x·H= 0 f¨ur alle x∈ AN heißt Pr¨ufmatrix oderKontrollmatrix f¨ur den CodeC.
MDD f¨ur lineare Codes Sei C ≤ AN ein linearer Code und H ∈ AN×(N−k) eine Pr¨ufmatrix f¨ur C. Wird das Codewort c ∈ C gesendet und f¨ugt der Kanal den Fehlervektorehinzu, so wird der Vektorc+eempfangen. Gilt (c+e)H = 0 (z.B.
bei e = 0), so ist c+e ∈ C und jeder MDD f wird c+e zu f(c+e) = c+e decodieren. I.a. ist aber (c+e)H =cH+eH = 0+eH =v ∈AN−k. Bestimmt man nun f¨ur jedes v ∈ AN−k einen Vektor a :=av ∈ AN m¨oglichst kleinem Gewichts (der vermutliche Fehlervektor), mitaH =v so kann man jedes empfangene Wort x∈AN mit xA=v zu einem Codewort c=x−a decodieren mitd(c, x) =w(a).
Bemerkung 47.11 Sei C ≤ AN ein linearer Code und H ∈ AN×(N−k) eine Pr¨ufmatrix f¨urC.
(i) F¨ur x∈AN heißtxH ∈AN−k das Syndrom von x.
(ii) Ista∈AN mitaH =s, so ist die Menge aller Vektorenx∈AN mit demselben Syndrom gleich
H−1(s) := {x∈AN |xH =s}={a+c|c∈C}.
(iii) F¨urs ∈S heißtas ∈H−1(s)einminimaler Vertreter, fallsw(as) = min{w(x)| x∈H−1(s)}.
(iv) Es gilt AN =∪.s∈S H−1(s).
(v) W¨ahlt man f¨ur jedess ∈S einen minimalen Vertreter as, so ist die Funktion f :AN →C definiert durch f(a) :=a−as, falls aH =s ist, ein MDD f¨ur C.
Beispiel: C≤F62, Erzeugermatrix Gund Pr¨ufmatrix H:
G:=
1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1
, H :=
1 1 1 0 0 1 1 1 1 0 0 1
Die Menge der Syndrome istF22und eine Menge minimaler VertreterV ist gegeben als:
V ={a00= (0,0,0,0,0,0), a10 = (0,1,0,0,0,0), a01 = (0,0,1,0,0,0), a11= (1,0,0,0,0,0)}.
47.3 Bin¨ are Hamming Codes als Beispiele f¨ ur lineare Co- des
Definition 47.12 Sei N = 2r−1 f¨ur ein r∈ N. Sei H ∈FN2 ×r eine Matrix, in deren Zeilen gerade alle Vektorenxi 6= 0 von Fr2 stehen:
H =
x1
x2
...
xN
Der CodeC mit Pr¨ufmatrix H heißt Hamming Code der L¨ange N. Beispiel: r= 2⇒N = 3 und
H =
0 1 1 0 1 1
Der Hamming-Code hat Dimension 1 und ErzeugermatrixG= (1,1,1).
r= 3⇒N = 7 und
H =
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Der Hamming Code hat Dimension 4 = 7-3 und Erzeugermatrix
G=
1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1
Satz 47.13 Ist N = 2r−1, so gibt es bis auf ¨Aquivalenz genau einen Hamming CodeC =HN =HN(2) der L¨angeN. Dieser ist von Dimension dim(C) =N−r und hat Minimalabstand d(C) = 3.
Beweis. Eindeutigkeit: Umordnen der Zeilen der Pr¨ufmatrix H von C liefert zu C ¨aquivalenten Code. dim(C) =N −Rang(H) =N −r. Zum Minimalabstand:
Sei wie oben die i-te Zeile von H mit xi bezeichnet. Ein Wort c = (c1, . . . , cN) liegt genau dann inC, fallsc1x1+. . .+cNxN = 0. Ist nunc6= 0, so istw(c)≥3,
da je 2 Vektorenxi linear unabh¨angig sind. ¤
Bemerkung 47.14 Ist C =HN(2) der Hamming Code der L¨ange N = 2r−1, so ist S = Fr2 die Menge der Syndrome von C gerade die Menge der Zeilen der Pr¨ufmatrix H zusammen mit dem Nullvektor. Ist xi ∈ S − {0} die i-te Zeile von H, so ist der eindeutig bestimmte minimale Vertreter zu xi gerade der i-te Einheitsvektor ei = (0, . . . ,0,1,0, . . . ,0) (1 an der i-ten Stelle).
Definition 47.15 Ein Code C ⊆AN heißt perfekt, falls es eine Zahl e gibt, so daß zu jedem a∈AN genau ein c∈C existiert mit d(a, c)≤e.
Beispiel: (i)C =AN ist ein perfekter Code mite = 0.
(ii) IstA=F2undN ungerade, so ist der WiederholungscodeC ={(0, . . . ,0),(1, . . . ,1)}
ein perfekter Code mit e= N−12 .
(iii) Der Hamming CodeH7(2) ist ein perfekter Code mit e= 1.
Satz 47.16 Hamming Codes sind perfekte Codes mit e= 1.
Beweis. Sei C der Hamming Code der L¨ange N = 2r−1 mit Pr¨ufmatrix H und a ∈ FN2 . Dann gilt entweder aH = 0 oder aH = xi = eiH ist ein Vektor 6= 0 inFr2 und damit gleich einer Zeile (der i-ten) von H. D.h. entwedera ∈C, oder a−ei ∈C. Dad(a−ei, a) =w(ei) = 1 ist, gibt es also zu jedema∈FN2 ein c∈C mit d(a, c)≤1. Die Eindeutigkeit eines solchen cfolgt, da d(C) = 3 ist. ¤
Es gilt: Satz
IstC ein perfekter bin¨arer linearer Code mite= 1, so istC ein Hamming Code.
Ist C ein perfekter bin¨arer linearer Code mit e >1, so istC ein Wiederholungs- code,C ={(0. . .0),(1. . .1)}oderC ist der bin¨are Golay CodeG23 der L¨ange 23 und Dimension 12. Es gilt d(G23) = 7 und G23 ist ein perfekter Code mit e = 3.
Eine Erzeugermatrix f¨urG23 ist (I12, P) mit
P =
1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
Definition 47.17 Sei A ein K¨orper und C ⊆AN ein Code. Dann ist der erwei- terte Code C˜ ⊆AN+1 definiert als
C˜ :={(c1, . . . , cN, cN+1)|(c1, . . . , cN)∈C, cN+1 =−
N
X
i=1
ci}.
Satz 47.18 SeiC ≤AN ein linearer Code der Dimensionk. Dann giltdim( ˜C) = k. Ist G eine Erzeugermatrix und H eine Pr¨ufmatrix f¨ur C, so sind
G˜ := (G|g), H˜ :=
1 H ...
1 0 . . . 0 1
Erzeugermatrix bzw. Pr¨ufmatrix von C, wo˜ gk :=−PN i=1Gki. Beispiel: (i) Der erweiterte Hamming Code H^7(2) =e8. (ii) C ≤ F52, Erzeugermatrix G =
µ 1 0 0 1 1 0 1 1 1 1
¶
. Der erweiterte Code ist C˜ ⊆ F62 mit Erzeugermatrix ˜G =
µ 1 0 0 1 1 1 0 1 1 1 1 0
¶
. Eine Pr¨ufmatrix f¨ur C
istH=
0 1 1 1 1 1 1 0 0 0 1 0 0 0 1
. Eine Pr¨ufmatrix f¨ur ˜C ist entweder
0 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
oder
H˜ =
0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
.
Bemerkung 47.19 Sei C ≤FN2 ein linearer bin¨arer Code und C˜ der erweiterte Code. Dann sind die Gewichte w(˜c) ∈ 2Z gerade f¨ur alle ˜c ∈ C. Ist also˜ d(C) ungerade, so ist d( ˜C) =d(C) + 1.
48 Endliche K¨ orper
48.1 Ringe und Ideale
Definition 48.1 Ein Ring (kommutativer Ring mit Einselement) (R,+,·) = R ist eine Menge R mit 2 Verkn¨upfungen +,·, die die folgenden Gesetze erf¨ullen:
Ak x+y=y+x (Kommutativgesetz)
Aa (x+y) +z =x+ (y+z) (Assoziativgesetz) An ∃0∈R, so daß
(i) x+ 0 = x f¨ur alle x ∈ R und (ii) f¨ur alle x ∈ R gibt es ein y ∈ R mit
x+y= 0
Mk x·y=y·x (Kommutativgesetz)
Ma (x·y)·z =x·(y·z) (Assoziativgesetz) Mn ∃1∈R, so daß x·1 =x f¨ur alle x∈R.
AM x·(y+z) =x·y+x·z.
Beispiele: (i) Jeder K¨orper (also z.B.R,Q, C, F2) ist ein Ring, wobei in K¨orpern zus¨atzlich jedes Element 6= 0 ein multiplikatives Inverses hat.
(ii) Z ist ein Ring. Es gibt in Zaber z.B. kein Element a mit 2a= 1.
(iii) Die Menge der Polynome K[x] ={
n
X
i=0
aixi |n∈N, ai ∈K}
¨uber einem K¨orperK (oder allgemeiner ¨uber einem Ring) ist ein Ring. Auch hier k¨onnen wir nicht durch alle Elemente 6= 0 teilen.
Definition 48.2 Sei R ein Ring. Eine TeilmengeI ⊆R heißt ein Ideal, falls gilt (i) F¨ur alle a, b∈I liegt auch die Summe a+b∈I.
(ii) F¨ur alle a∈I und r∈R gilt ra∈I.
In Zeichen IER.
Beispiele: (i) Ist R ein Ring, so ist {0} ⊆ R ein Ideal, das Nullideal. Ebenso ist R selbst ein Ideal in R.
(ii) Die Menge der geraden Zahlen bildet ein Ideal inZ, die Menge der ungeraden Zahlen jedoch nicht.
(iii) Ist n∈Z, so bildet die Menge aller durchn teilbaren Zahlen in Z ein Ideal.
Bemerkung 48.3 (i) Ist I ein Ideal in einem Ring R, so gilt I =R⇔1∈I.
(ii) Ein K¨orper K hat genau 2 Ideale, {0} und K.
(iii) Ist R ein Ring und a ∈ R, so ist die Menge {ar | r ∈ R} ein Ideal von R.
Dieses wird mit(a) bezeichnet und heißt das von a erzeugte Hauptideal.
Beweis. (i) I = R ⇒ 1 ∈ I ist klar. Zur anderen Richtung. Sei 1 ∈ I ER. Ist r∈R, so gilt r=r·1∈I und damit R⊆I, also R =I.
(ii) SeiIEK mitI 6={0}. Dann gibt esk∈I mit k6= 0. DaK ein K¨orper ist, ist k in K invertierbar, d.h. es gibt k−1 ∈K mit k−1k = 1. Damit ist 1 = k−1k ∈I und daherI =K.
(iii) Klar, (i) und (ii) aus Definition 48.2 nachrechnen. ¤
48.2 Restklassenringe
Definition 48.4 Sei R ein Ring und I ein Ideal in R. F¨ur r∈R heißt r :=r+I :={r+i|i∈I}
die Restklasse von r nach I. Die Menge der Restklassen nach I wird mit R/I :={r+I |r ∈R}
bezeichnet.
Beispiel: R = Z, I = (2) = {2n |n ∈Z}. 4 +I = I Menge der geraden Zahlen, 7 +I = 1 +I Menge der ungeraden Zahlen undZ/(2) hat genau 2 Elemente 0,1.
Bemerkung 48.5 Es gilt a ∈ b ⇔ a−b ∈ I. Daf¨ur schreiben wir auch a ≡ b (mod I), bzw. a≡b (mod p), falls I = (p) ein Hauptideal ist.
Satz 48.6 IstIERein Ideal in einem RingR, so wirdR/I zu einem Ring durch r1+r2 :=r1+r2 und r1·r2 :=r1·r2, der Restklassenring von R nach I.
Beweis. Die Ringgesetze folgen aus denen vonR. Das Nullelement von R/I ist 0 und das Einselement ist 1. Das einzige, was zu zeigen ist, ist daß die definierten Verkn¨upfungen nicht von der Wahl von ri ∈ ri + I abh¨angen. Sei also r10 = r1+i1 ∈ r1 und r20 =r2+i2 ∈r2. Dann ist r1 =r01 und r2 =r20. Zu zeigen, daß r1+r2 =r01+r20 und r1·r2 =r01·r02.
r10 +r02 =r1+i1+r2+i2 =r1+r2+ (i1 +i2) = r1+r2
r10 ·r20 = (r1 +i1)·(r2+i2) =r1r2+ (r1i2+r2i1+i1i2) = r1r2
¤ Beispiel n∈Z, Z/nZ={0,1,2, . . . , n−1}.
n= 2: Z/2Z=F2.
n= 3: Z/3Z={0,1,2 = −1} mit 1 + 2 = 3 = 0, 2·2 = 4 = 1.
n= 4: Z/4Z={0,1,2,3} mit 2 + 3 = 5 = 1, 2·2 = 4 = 0.
Definition 48.7 Seien a, b ∈ Z, a, b 6= 0. Dann sagen wir a teilt b, falls es ein n∈Z gibt, mit a·n=b. Der gr¨oßte gemeinsame Teiler ggT(a, b) von a und b ist max{d∈N|d teilt a und d teiltb}.
Satz 48.8 Der gr¨oßte gemeinsame Teiler d von zwei ganzen Zahlen a, b 6= 0 kann mit dem folgenden Algorithmus berechnet werden, mit dem weiter zwei ganze Zahlen x1, x2 bestimmt werden mit d=x1a+x2b.
Idee: Seia1 :=a, a2 :=b. an+2 = Rest der Division von an durch an+1: a1 = q1a2 + a3 mit |a3|<|a2| fallsa2 6= 0 a2 = q2a3 + a4 mit |a4|<|a3| fallsa3 6= 0 a3 = q3a4 + a5 mit |a5|<|a4| fallsa4 6= 0 a4 = q4a5 + a6 mit |a6|<|a5| fallsa5 6= 0 a5 = q5a6 + a7 mit |a7|<|a6| fallsa6 6= 0
... ... ... ... ...
Da|ai|immer kleiner werden, giltan = 0 f¨ur einn. Ist z.B.a7 = 0 (unda6 6= 0), so gilta5 =q5a6, d.h. a6 teilt a5,a4 =q4a5+a6 = (q4q5+ 1)a6, d.h. a6 teilt a4, usw., d.h. a6 teilt a2 und a6 teilt a1. Wir suchen nunx1, x2 ∈Z mit a6 =x1a1+x2a2. Dann ist|a6|= ggT(a1, a2) wirklich der gr¨oßte gemeinsame Teiler von a1 und a2, da jede Zahl, die a1 und a2 teilt, auch a6 = x1a1 +x2a2 teilt. Dazu l¨osen wir r¨uckw¨arts auf:
a6 =a4−q4a5 =a4−q4(a3−q3a4) = (1+q4q3)a4−q4a3 = (1+q4q3)(a2−q2a3)−q4a3 =
= (1 +q4q3)a2−(q2+q4q3q2+q4)a3 = (1 +q4q3)a2−(q2+q4q3q2+q4)(a1−q1a2) =
=−(q2+q4q3q2+q4)a1+ (1 +q4q3+q1q2+q1q4+q4q3q2q1)a2 Algorithmus 48.9 Euklidischer Algorithmus
Eingabe: a, b∈Z, a, b6= 0.
Ausgabe: d= ggT(a, b) und x, y ∈Z, mit d=xa+yb.
0) Setze x0 := 1, x1 := 0, y0 := 0, y1 := 1, e := 1.
1) Bestimme q, r∈Z mit|r|<|b| und a =qb+r.
2) Setze h :=qx1 +x0, x0 :=x1, x1 :=h sowie h :=qy1 +y0, y0 :=y1, y1 :=h und e:=−e.
3) Ist r6= 0, so setze a :=b, b :=r und gehe zu 1).
4) (r = 0). Setze d := b und gib d = ggT(a, b) und x := e·x0 und y := −e·y0
aus.
Beispiel: a= 82, b= 24:
82 = 3·24 + 10 24 = 2·10 + 4 10 = 2·4 + 2
4 = 2·2 + 0. Also ist 2 = ggT(82,24) und
2 = 10−2·4 = 10−2·(24−2·10) = 5·10−2·24 = 5·(82−3·24)−2·24 = 5·82−17·24.
Beispiel:a= 37, b= 41. Gesucht 37−1 ∈Z/41Z. Dazu: 41 ist eine Primzahl, also ist ggT(37,41) = 1. Suchen mit dem Euklidischen Algorithmus Zahlen x, y ∈ Z mit 37x+ 41y = 1. Dann gilt 37x= 1−41y= 1∈Z/41Z. Also ist x= 37−1. 41 = 37 + 4 und 37 = 9· 4 + 1. Also ist 1 = ggT(37,41) = 37 − 9 · 4 = 37−9·(41−37) = 10·37−9·41, d.h. 37−1 = 10.
Satz 48.10 Ist p∈ Z eine Primzahl (d.h. p >1 und p ist nur durch 1 und sich selbst teilbar), so ist der Restklassenring Z/pZ=:Fp ein K¨orper, der (eindeutig bestimmte) K¨orper mit p Elementen.
Beweis. Wir wissen schon, daßZ/pZein Ring ist. D.h. wir m¨ussen nur noch zeigen, daß wir zu jedem Elementa6= 0∈Z/pZeinb∈Z/pZfinden, mitab= 1, d.h. wir m¨ussen die Gleichungab= 1 +px f¨ur jedes a6∈ (p) l¨osen. Da a6= 0 ∈Z/pZ ist, gilt p teilt nicht a. Also ist ggT(a, p) = 1. Nach dem Euklidischen Algorithmus gibt es Zahlen b, x mit b·a+x·p= 1. Also ist ba= 1 inFp. ¤ Bemerkung:
Der Euklidische Algorithmus zeigt, daß alle Ideale in Z Hauptideale sind, d.h.
{nZ|n∈N∪ {0}} ist die Menge aller Ideale inZ.
Denn: Sei IEZ ein Ideal. Ist I 6= (0), so gibt es 0 6= a ∈ I. Also ist (a) ⊆ I.
Ist I 6= (a), so gibt es b ∈ I −(a). Dann ist d := ggT(a, b) = xa+yb ∈ I und (a) ⊂ (d) ⊆ I. Da b ∈ (d) ist, ist das Hauptideal (d) echt gr¨osser als (a). Nach endlich vielen Schritten ist dann I = (d) ein Hauptideal.
Definition 48.11 Sei R=K[x] der Polynomring ¨uber einem K¨orper K.
(i) Sind a, b∈R, so sagen wir a teilt b, falls es ein q ∈R gibt mit b=aq.
(ii) Ein Polynom p ∈ R heißt irreduzibel, falls d := Grad(p) ≥ 1 ist und alle Teiler von p entweder Grad 0 oder Grad d haben.
(iii) Sind a, b∈R, a, b6= 0, so heißt das normierte (f¨uhrender Koeffizient ist 1) Polynom p ∈ R maximalem Grades, welches beide Polynome a und b teilt der gr¨oßte gemeinsame Teiler von a und b, p:= ggT(a, b).
Beispiel: Bestimme ggT(x2+ 1, x2+x+ 1) inF2[x].
x2+x+ 1 = (x2+ 1) +x x2+ 1 =x·x+ 1
x=x·1 + 0.
Also ist 1 = ggT(x2+ 1, x2+x+ 1) = (x2+ 1)−x·x= (x2+ 1)−x(x2+x+ 1−(x2+ 1)) = (1 +x)(x2+ 1)−x(x2+x+ 1).
Satz 48.12 Sei K ein K¨orper und R := K[x] der Ring der Polynome ¨uber K. Analog zum Euklidischen Algorithmus 48.9 f¨ur ganze Zahlen kann man den gr¨oßten gemeinsamen Teiler d = ggT(a, b) = xa+yb ∈ R (x, y ∈ R), von zwei Polynomena, b∈R, a, b6= 0 berechnen. Dazu ersetzt man in 48.9 den Schritt 1) durch
1’) Bestimme q, r ∈R mitGrad(r)< Grad(b) und a =qb+r.
Analog zu Satz 48.10 gilt:
Satz 48.13 Sei K ein K¨orper und R :=K[x] der Ring der Polynome ¨uber K.
Ist p∈R irreduzibel, so ist R/(p) ein K¨orper.
Beispiel: (i) Sei K =R und p(x) = x2 + 1. Sei R :=R[x]/(x2+ 1). Dann ist R ein 2-dimensionaler Vektorraum ¨uber R mit Basis (1, x). Weiter ist p(x) ∈ R[x]
irreduzibel. x∈R[x]/(x2+ 1) erf¨ullt x2 =−1 und R[x]/(x2+ 1)∼=C.
(ii) Sei K = F2 und p(x) = x2 +x+ 1 ∈ F2[x]. Dann ist p(x) irreduzibel und R:=F2[x]/(p(x)) ein K¨orper.R ist ein 2-dimensionaler Vektorraum ¨uberF2 mit Basis (1, x). Elemente vonR: 0,1, x, x+ 1. Multiplikationstabelle:
· 0 1 x x+ 1
0 0 0 0 0
1 0 1 x x+ 1
x 0 x x+ 1 1
x+ 1 0 x+ 1 1 x
Beispiel
K = F2[x]/(x2 + x+ 1). Sei α := x ∈ K. Dann gilt α2 = α + 1 und jedes Element vonK l¨aßt sich eindeutig schreiben als a0+a1α mit a0, a1 ∈ F2. K ist als Vektorraum also isomorph zu F22. Das Element α ist ein primitives Element von F22 und es gilt
0 = = (00)
1 = 1 = (10)
α = α = (01)
α2 = 1 + α = (11)
Beispiel Der Hexacode: Sei α := x ∈ F2[x]/(x2+x+ 1) = F4. Der Hexacode C6
ist der lineare Code der Dimension 3 inF64 mit Erzeugermatrix:
1 0 0 1 α2 α 0 1 0 1 α α2
0 0 1 1 1 1
.
Eine Pr¨ufmatrix von C6 ist
H :=
1 α2 α 1 α α2
1 1 1
1 0 0
0 1 0
0 0 1
.
Es giltr(C6) = 12 und d(C6) = 4.
Indem manαdurch (01), 1 durch (10) usw. ersetzt erh¨alt man aus dem Code der L¨ange 6 und Dimension 3 ¨uber F4 einen Code der L¨ange 12 und Dimension 6, Minimalabstand 4 ¨uber F2 mit Erzeugermatrix:
1 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1
.
Hauptsatz 48.14 Sei K ein endlicher K¨orper. Dann gilt
(i) Es gibt ein n ∈N mitn·1 = 1 +. . .+ 1 = 0 (n Summanden).
(ii) char(K) := min{n ∈N|n·1 = 0} ist eine Primzahl und heißt die Charakte- ristik von K.
(iii) Ist p:= char(K), so gilt Fp ={0,1,2 = 1 + 1, . . . , p−1} ⊆K und K ist ein Fp-Vektorraum. Istf := dimFp(K), die Dimension von K als Fp-Vektorraum, so gilt |K|=pf.
(iv) Es gibt ein Element α ∈ K, so daß die Menge K∗ := K − {0} aus den Potenzen von α besteht.
K∗ ={α0 = 1, α, α2, . . . , αpf−1} Ein solches α∈K heißt primitives Element von K.
(v) Je zwei endliche K¨orperK,K0 mit|K|=|K0|sind isomorph, d.h. es gibt eine bijektive Abbildungϕ :K →K0 mitϕ(a+b) = ϕ(a)+ϕ(b)undϕ(a·b) =ϕ(a)·ϕ(b) f¨ur allea, b∈K. Wir bezeichnen den endlichen K¨orper mitpf Elementen alsFpf. (vi) F¨ur allea∈Fpf giltapf =a undFpf besteht gerade aus denpf verschiedenen Nullstellen von xpf −x. Daraus sieht man, daß
Fpd ⊆Fpf ⇔d teilt f.
(vii) Fpf ∼= Fp[x]/(h(x)), wo h(x) ∈ Fp[x] ein irreduzibles, normiertes Polynom vom Gradf ist.
Beweis. (i) 1,1 + 1,1 + 1 + 1, . . . sind alles Elemente von K. Da K endlich ist, k¨onnen diese nicht alle verschieden sein, d.h. es gibt einn < m mit n·1 =m·1.
Dann ist aberm−n ∈Nund (m−n)·1 = 0.
(ii) Sein ∈Nminimal mit n·1 = 0. Istn=abmit a, b∈N, a < nund b < n, so gilt a·16= 0 undb·16= 0. D.h. es gibt ein a−1 ∈K mit a−1(a·1) = 1. Also gilt
0 =a−10 = a−1n·1 = a−1(ab)·1 = a−1(a·1)(b·1) = (b·1)6= 0
was ein Widerspruch ist. Also gibt es keine solchen Elemente a, b∈ N und n ist eine Primzahl.
(iii) Sei p := char(K). Dann gilt M := {0,1,2·1, . . . ,(p−1)·1} ⊆ K und die Elemente von M addieren und multiplizieren sich genauso wie die von Z/pZ.
Also istFp ⊆K. Elemente vonK kann man addieren und mit Elementen von Fp
multiplizieren, also ist K ein Vektorraum ¨uber Fp.
(iv), (v), (vi) Sind nicht schwierig, brauchen jedoch etwas mehr Vorbereitung.
(vii) Isth(x)∈Fp[x] irreduzibel vom Gradf, so ist Fp[x]/(h(x)) ein K¨orper mit pf Elementen also isomorph zu Fpf. Es bleibt zu zeigen, daß es zu jedem f ein irreduzibles Polynom h(x) ∈ Fp[x] mit Grad(h) = f gibt. Auch dies ist nicht schwierig (geht durch Abz¨ahlen), wird aber hier weggelassen. ¤ Beispiel
K = F2[x]/(x4 +x+ 1). Sei α := x ∈ K. Dann gilt α4 +α+ 1 = 0 und jedes Element von K l¨aßt sich eindeutig schreiben als a0 +a1α +a2α2 +a3α3 mit a0, a1, a2, a3 ∈F2. K ist als Vektorraum also isomorph zu F42. Das Element α ist ein primitives Element von F24 und es gilt
0 = = (0000)
1 = 1 = (1000)
α = α = (0100)
α2 = α2 = (0010)
α3 = α3 = (0001)
α4 = 1 + α = (1100)
α5 = α + α2 = (0110)
α6 = α2 + α3 = (0011)
α7 = 1 + α + α3 = (1011)
α8 = 1 + α2 = (1010)
α9 = α + α3 = (0101)
α10 = 1 + α + α2 = (1110) α11 = α + α2 + α3 = (0111) α12 = 1 + α + α2 + α3 = (1111) α13 = 1 + α2 + α3 = (1011)
α14 = 1 + α3 = (1001)
Man beachte, daß z.B. auch die Potenzen von α3 den F2-Vektorraum K er- zeugen, da 1, α3, α6, α9 also (1000),(0001),(0011),(0101) linear unabh¨angig sind.
Jedoch ist β :=α3 kein primitives Element von K, da β5 = (α3)5 =α15 = 1 und daher{βi}={1, α3, α6, α9, α12} nur 5 Elemente enh¨alt (und nicht 15 =|K∗|).
Rechnen in endlichen K¨orpern. Sei K = Fpf = Fp[x]/(h(x)) der K¨orper mit pf Elementen (f = Grad(h)). Dann ist K ein Fp-Vektorraum und man kann die Elemente in K alsf-Tupel
a0+a1x+. . .+af−1xf−1 ≡(a0, a1, . . . , af−1)∈Ffp
schreiben. In dieser Darstellung ist es einfach, 2 K¨orperelemente zu addieren, aber schwierig, sie zu multiplizieren. Deshalb benutzt man manchmal eine andere
Darstellung f¨ur die K¨orperelemente durch sogenannteZech-Logarithmen. Ist α ∈ K ein primitives Element, so ist
K ={0} ∪ {1 = α0, α, α2, . . . , αpf−2}.
Die Multiplikation ist einfach: αiαj = αi+j, wobei man den Exponenten i+j modulopf −1 lesen muß. Zur Berechnung der Summe αi+αj benutzt man eine Tabelle: Ist i≤j, so ist
αi+αj =αi(1 +αj−i)
Es gen¨ugt also, sich f¨ur jede Zahl k das l ∈ {0, . . . , pf − 2} zu merken mit 1 +αk =αl (ist 1 +αk = 0, so setzt man z.B. l=−1).
Im Beispiel K =F16, α das primitive Element von oben mit α4+α+ 1 = 0 findet man 1 +αk =αl mit k, l wie folgt:
k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 l −1 4 8 14 1 10 13 9 2 7 5 12 11 6 3
Satz 48.15 SeiK :=Fpf der K¨orper mitpf-Elementen undFp :={0,1,2, . . . , p−
1} ⊆ K. Dann ist K ein Fp-Vektorraum und die Abbildung F :K →K, α7→αp ist eine bijektiveFp-lineare Abbildung mit F(αβ) =F(α)F(β) f¨ur alle α, β ∈K. F heißt der Frobenius-Automorphismus von K ¨uber Fp.
Beweis. Seiena, b∈Fp ⊆K und α, β ∈K. Zu zeigen ist F(aα+bβ) =aF(α) + bF(β). Nun ist
(aα+bβ)p =
p
X
k=0
µp k
¶
(aα)k(bβ)p−k mit ¡p
k
¢ = k!(p−k)!p! ∈ Z. Ist 1 ≤ k ≤ p−1, so ist der Z¨ahler von k!(p−k)!p! durch p teilbar, der Nenner jedoch nicht. Also ist ¡p
k
¢ ∈ pZ f¨ur 1 ≤ k ≤ p−1, d.h.
¡p
k
¢·1 = 0 inK. Damit ist
(aα+bβ)p = (aα)p+ (bβ)p =apαp+bpβp
Es gen¨ugt also zu zeigen, daß f¨ur allea∈Fp =Z/pZdie p-te Potenz ap =a ist.
Dazu zeigen wir per Induktion ¨ubera, daß f¨ur alle a∈N die p-te Potenzap ≡a (mod p) ist:
F¨ura = 1 gilt 1p = 1.
a ⇒ a+ 1: Es ist (a+ 1)p = Pp k=0
¡p
k
¢ak ≡ 1 +ap (mod p) wie eben. Nach Induktionsvoraussetzung istap ≡a (mod p), also ist (a+ 1)p ≡1 +ap ≡1 +a (mod p). Also istF eineFp-lineare Abbildung. Der Kern vonF ist{α ∈Fpf |αp = 0}={0}. Damit istF injektiv und daher auch bijektiv, aus Dimensionsgr¨unden.
Klar istF(αβ) = (αβ)p =αpβp =F(α)F(β). ¤
Folgerung 48.16 Istα∈Fpf undh∈Fp[x]mith(α) = 0, so gilt auchh(F(α)) = 0.
Beispiel:
x16−x=x(x+ 1)(x2+x+ 1)(x4+x+ 1)(x4+x3+ 1)(x4+x3+x2+x+ 1) ∈F2[x].
Ist α ∈ F16 eine Nullstelle von x4 +x+ 1, so sind {α2, α4, α8, α16 = α} die 4 Nullstellen von x4 +x + 1. F¨ur β := α3 gilt β4 +β3 +β2 + β + 1 = 0 und {β2, β4, β8, β16 = β} sind die Nullstellen von x4 +x3 +x2 +x+ 1. Setzt man γ :=α5, so gilt γ2 +γ + 1 = 0 ({a0 +a1γ |a0, a1 ∈F2} ≤F16 ist der Teilk¨orper F4 von F16) und {γ2, γ4 =γ} sind die Nullstellen vonx2+x+ 1.
49 Zyklische Codes
Im gesamten Abschnitt bezeichnet q :=pf eine Potenz einer Primzahl p und Fq
den K¨orper mit q Elementen.
Definition 49.1 Ein linearer Code C≤FNq heißt zyklisch, falls (c1, . . . , cN)∈C ⇒(cN, c1, c2, . . . , cN−1)∈C
Satz 49.2 (i) Die Abbildungϕ :FNq →Fq[x]/(xN−1)definiert durch(a1, . . . , aN)7→
a1+a2x+. . .+aNxN−1 definiert einen Fq-Vektorraum Isomorphismus.
(ii)C ≤FNq ist ein zyklischer Code, genau dann wenn ϕ(C)EFq[x]/(xN−1) ein Ideal ist.
Beweis. (i) Nachrechnen: Zu zeigen ist, daß die Abbildung Fq-linear und bijektiv ist.
(ii) Es istx(a1+a2x+. . .+aNxN−1) =a1x+a2x2+. . .+aNxN
=a1x+a2x2 +. . .+aN ·1 =aN +a1x+a2x2+. . .+aN−1xN−1.
ϕ(C) ist immer einFq-Teilvektorraum vonFq[x]/(xN−1). Damit ϕ(C) ein Ideal ist, muß zus¨atzlich noch xϕ(c) ∈ ϕ(C) sein f¨ur alle c∈ C. Dies ist nach obiger Rechnung aber genau die Bedingung daf¨ur, daßC ein zyklischer Code ist. ¤ Im folgenden werden wir stets voraussetzen, daß N nicht durch pteilbar ist.
Dann gilt:
ggT(xN −1, d
dx(xN −1)) = ggT(xN −1, N xN−1) = ggT(xN −1, xN−1) = 1 dax·xN−1 −(xN −1) = 1 ist. D.h. das Polynom xN −1 hat keine mehrfachen Nullstellen und l¨aßt sich eindeutig schreiben als Produkt
xN −1 = f1(x)·. . .·ft(x)
mit f1, . . . , ft∈Fq[x] normiert, irreduzibel und paarweise verschieden.
Beispiel
N = 15,q = 2:
x15−1 = (x+ 1)(x2+x+ 1)(x4+x+ 1)(x4+x3+ 1)(x4+x3+x2+x+ 1)∈F2[x].
N = 6, q = 3:
x6−1 = (x−1)3(x+ 1)3 ∈F3[x].
N = 4, q = 3:
x4−1 = (x−1)(x+ 1)(x2+ 1)∈F3[x].
Diese Faktorisierungen kann man z.B. mit MAPLE berechnen mit dem Befehl Factor(x4−1) mod 3
Die Ideale in Fq[x]/(xN −1) sind dann genau die Hauptideale (fi1...is) wo fi1...is := fi1(x)·. . .·fis(x) f¨ur s ≤ t und 1 ≤ i1 < i2 < . . . < is ≤ t. Der Ring hat also genau 2t Ideale.
Seig :=fi1·. . .·fis undd:= Grad(g). Dann ist (g) ={ag|a ∈Fq[x]/(xN−1)}.
Jedes Elementag∈(g) l¨aßt sich schreiben alsbg mit Grad(b)≤N−d−1. Dazu seih∈Fq[x] mit gh=xN −1. Dann ist Grad(h) =N −d. Polynomdivision mit Rest lieferta=a1h+bmit einem Restbvom Grad≤N−d−1. InFq[x]/(xN−1) gilt dann ag= (a1h+b)g =bg, da hg = 0 ist. Also ist (g, xg, . . . , xN−d−1g). eine Basis von (g)EFq[x]/(xN −1) und dim(g) =N −d.
Beispiel N = 4, q = 3:
x4−1 = (x−1)(x+ 1)(x2+ 1)∈F3[x].
I123 = ((x−1)(x+ 1)(x2+ 1)) = (0),
I12 = (f12) = ((x−1)(x+ 1)) = (x2−1) hat Dimension 2 undF3-Basis (f12, xf12).
Denn es ist
I12 ={(a0+a1x+a2x2+a3x3)(x2−1)|a0, a1, a2, a3 ∈F3}={a0(x2−1)+a1x(x2− 1)+a2x2(x2−1)+a3x3(x2−1)|a0, a1, a2, a3 ∈F3}. Nun istx2(x2−1) =x4−x2 = 1−x2 und x3(x2−1) =−x(x2−1). Daher ist I12={(a0+a1x)(x2−1)|a0, a1 ∈ F3}.
DerI12 entsprechende CodeC12 hat die Erzeugermatrix µ −1 0 1 0
0 −1 0 1
¶
Shiftet man die 2. Zeile dieser Matrix noch einmal nach rechts, so erh¨alt man das negative der ersten Zeile.
Die Ergebnisse fassen wir in dem folgenden Satz zusammen:
Satz 49.3 SeiN nicht durchpteilbar, undxN−1 =f1(x)·. . .·ft(x)mit paarweise verschiedenen, normierten, irreduziblen Polynomen f1, . . . , ft ∈Fq[x].
(i) Setzt man fi1...is :=fi1(x)·. . .·fis(x)f¨ur s≤t und 1≤i1 < i2 < . . . < is ≤t so sind die Hauptideale (fi1...is) genau die Ideale von Fp[x]/(xN −1). Der Ring hat also genau 2t Ideale. Ist di := Grad(fi) der Grad des irreduziblen Faktors fi
(d1+. . .+dt=N), so gilt
dim(fi1(x)·. . .·fis(x)) =N −(di1 +. . .+dis).
(ii) Das Polynom g := fi1 ·. . .·fis heißt Erzeugerpolynom des zyklischen Codes Cg := (fi1...is). Ist g =PN−k
j=0 gjxj, so ist
Gg :=
g0 g1 . . . gN−k 0 0 . . . 0 0 g0 . . . gN−k−1 gN−k 0 . . . 0 ... ... ... . .. . .. ... ... ...
0 . . . 0 g0 g1 . . . gN−k
eine Erzeugermatrix von Cg und k= dim(Cg).
(iii) Ist g wie in (ii) ein Erzeugerpolynom des zyklischen Codes Cg, so heißt das Polynom h∈ Fq[x] mitgh =xN −1 ein Pr¨ufpolynom von Cg. Es gilt Grad(h) + Grad(g) =N. Weiter liegta∈Fq[x]/(xN−1)genau dann in Cg, falls ah= 0 ist.
(iv) Sei h wie in (iii) ein Pr¨ufpolynom von Cg. Ist h = Pk
j=0hjxj, so ist die Matrix
G0h :=
hk hk−1 . . . h0 0 0 . . . 0 0 hk . . . h1 h0 0 . . . 0 ... ... ... ... ... ... ... ...
0 . . . 0 hk hk−1 . . . h0
eine Erzeugermatrix von Cg⊥ und daher (G0h)tr eine Pr¨ufmatrix von Cg.
Beweis. (ii) Eine Fq-Basis vonCg istg, xg, . . . , xk−1g, diese Elemente sind genau die Zeilen der Erzeugermatrix.
(iii) Klar ist Grad(h) + Grad(g) = Grad(hg) = N. Außerdem gilt f¨ur a ∈ Fq[x]/(xN −1):
ah = 0⇔(xN −1) teiltah ⇔gh teilt ah⇔g teilt a⇔a∈(g) =Cg
(iv) xN −1 = gh = (PN−k
j=0 gjxj)(Pk
i=0hixi) = PN l=0(Pl
j=0gjhl−j)xl. Durch Ko- effizientenvergleich folgt f¨ur 0 < l < N, daß Pl
j=0gjhl−j = 0. Also stehen die Zeilen vonG0h senkrecht auf denen vonGg. Aus Dimensionsgr¨unden erzeugt also
G0h daher Cg⊥. ¤
Beispiel 49.4 x7−1 = (x+1)(x3+x+1)(x3+x2+1)∈F2[x]. Seig :=x3+x+1.
Dann hat der zyklische Code Cg = (g)EF2[x]/(x7 −1) L¨ange 7, Dimension 4 und Erzeugermatrix
Gg :=
1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1
Da h = (x+ 1)(x3+x2 + 1) =x4 +x2+x+ 1 findet man eine Erzeugermatrix von Cg⊥ als
G0h :=
1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1
.
Man kann zeigen, daß Cg =H7(2) ein Hamming Code ist.
49.1 Ein Codierer f¨ ur zyklische Codes
Sei C ≤ FNq ein Code der Dimension k mit Erzeugermatrix G := (Ik, PN−k).
Codierung besteht dann darin, einem Informationswort u := (u1, . . . , uk) ∈ Fkq
ein Codewort
(c1, . . . , cN) = (u1, . . . , uk, ck+1, . . . cN) =uG∈C
zuzuordnen. Dabei sind die erstenk Komponenten des Codeworts die Informati- onssymbole, die anderen (N −k)-KomponentenKontrollsymbole.
Beispiel:
C ≤ F42 mit Erzeugermatrix
µ 1 0 1 1 0 1 0 1
¶
. Mit C kann man 4 Informations- worte ¨ubertragen:
u00= (00) wird codiert zu (0000)∈C u10= (10) wird codiert zu (1011)∈C u01= (01) wird codiert zu (0101)∈C u11= (11) wird codiert zu (1110)∈C.
Bei zyklischen Codes kann man die Kontrollsymbole als Rest einer Polynom- division berechnen:
Satz 49.5 Sei g = PN−k
i=0 gixi ∈ Fq[x] ein Teiler von xN −1 und C := Cg E Fq[x]/(xN−1)der zyklische Code mit Erzeugerpolynom g. Seiu:=Pk−1
i=0 uixi ein Informationswort. Dann gibt es ein eindeutig bestimmtes Polynomr =PN−k−1
i=0 rixi ∈ Fq[x] mit Grad(r)< N −k= Grad(g), so daß
uxN−k=gh+r
f¨ur ein h∈Fq[x]. Dann ist gh= uxN−k−r =
k−1
X
i=0
uixN−k+i−
N−k−1
X
i=0
rixi ≡(−r0,−r1, . . . ,−rN−k−1, u0, u1, . . . , uk−1)∈Cg
Bei den zyklischen Codes kommen bei diesem Codierverfahren zun¨achst die Kontrollsymbole, dann die Informationssymbole. Daher ist es zweckm¨aßig die Reihenfolge aller Codeworte umzudrehen, also die Worte bzgl. der Basis
(xN−1, xN−2, . . . , x,1) zu schreiben:
Beispiel g := x4 +x + 1 ∈ F2[x] teilt x15 −1 ∈ F2[x]. Betrachten C = Cg E F2[x]/(x15−1). Dann ist C ∼=H15(2) der Hamming Code der L¨ange 15 = 24−1 und Dimension 15−4 = 11. Der Codierer ordnet jedem 11-Tupel (u10, u9, . . . , u0)∈ F112 ein Codewort (u10, u9, . . . , u0, r3, r2, r1, r0)∈F152 zu, wo
(
10
X
i=0
uixi)x4 =gh+
3
X
i=0
rixi
ist. Ist z.B. u = (11010011010), so kann man die Division mit Rest mechanisch wie folgt durchf¨uhren:
1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 : 10011 1 0 0 1 1
1 0 0 1 0 1 0 0 1 1
1 1 1 0 1 1 0 0 1 1
1 1 1 0 0 1 0 0 1 1
1 1 1 1 0 1 0 0 1 1
1 1 0 1 0 1 0 0 1 1
1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0
Also ist der Restxundc= (110100110100010)∈Cdas zuugeh¨orende Codewort.
49.2 Der Minimalabstand zyklischer Codes
Der Minimalabstand zyklischer Codes ist im allgemeinen schwer zu bestimmen, man hat jedoch eine untere Schranke:
Eine Nullstelleα von xN −1∈Fq[x] heißtprimitiveN-te Einheitswurzel, falls N = min{n ∈N|αn= 1}. Man beachte, daßαnicht notwendig inFq liegen muß sondern eventuell in einem gr¨oßeren K¨orper.
Satz 49.6 Sei g ein Teiler von xN −1 ∈Fq[x] und α eine primitive N-te Ein- heitswurzel. Sind dier aufeinanderfolgenden Potenzenαb,αb+1, αb+2,. . .,αb+r−1 Nullstellen von g, so gilt f¨ur den zyklischen CodeCg := (g)EFq[x]/(xN −1) daß d(Cg)≥r+ 1.
Beweis. Sei c := PN−1
i=0 cixi ∈ Cg ein Codewort vom Gewicht s ≤ r und seien ct1, . . . , cts alle von 0 verschiedenen Eintr¨age von c. Da c ∈ Cg ein Vielfaches von g ist und αb, . . . , αb+r−1 Nullstellen von g sind gilt c(αb) =c(αb+1) = . . .= c(αb+r−1) = 0. D.h. es gilt
ct1αbt1 + . . . + ctsαbts = 0 ct1α(b+1)t1 + . . . + ctsα(b+1)ts = 0
... ... ...
ct1α(b+r−1)t1 + . . . + ctsα(b+r−1)ts = 0 Setzt man
H :=
αbt1 . . . αbts α(b+1)t1 . . . α(b+1)ts
... ... ...
α(b+s−1)t1 . . . α(b+s−1)ts
so gilt also insbesondere H(ct1, . . . , cts)tr = 0, d.h. c ist im Kern von H. Die Determinante vonH ist aber
det(H) =αbt1αbt2·. . .·αbtsdet
1 . . . 1
αt1 . . . αts (αt1)2 . . . (αts)2
... ... ...
(αt1)s−1 . . . (αts)s−1
=αbt1αbt2·. . .·αbtsY
i<j
(αtj−αti)
nach HMII, 4. ¨Ubungsblatt, Aufgabe 2. Da αeine primitive N-te Einheitswurzel ist, istαti 6=αtj und det(H)6= 0. Also ist Ker(H) ={0} und c= 0. ¤ Beispiel:
N = 7:x7−1 = (x+1)(x3+x+1)(x3+x2+1)∈F2[x]. Seig :=x3+x+1. Dann ist jede Nullstelleαvongein primitives Element vonF2[x]/(x3+x+1) =F8also eine primitive 7-te Einheitswurzel. Da g ∈F2[x] gilt 0 =F(g(α)) =g(F(α)) =g(α2), f¨ur den Frobenius AutomorphismusF. Der Code Cg aus Beispiel 49.4 von oben hat also Minimalabstand≥2 + 1 = 3.
Beispiel:
N = 23,x23−1 = (x+ 1)g1g2 ∈F2[x] mit
g1 =x11+x9+x7+x6+x5+x+ 1 g2 =x11+x10+x6+x5+x4+x2+ 1
Seiα eine Nullstelle vong1. Dann istα6= 1 undα23= 1, d.h.α ist eine primitive 23-te Einheitswurzel. Indem man den Frobenius Automorphismus mehrfach auf α anwendet findet man die Nullstellen
α, α2, α4, α8, α16, α32 =α9, α18, α36 =α13, α3, α6, α12
von g1. Insbesondere hat g1 die 4 aufeinanderfolgenden Nullstellen α, α2, α3, α4, also hatCg ≤F2[x]/(x23−1) Minimalabstand ≥5. Tats¨achlich ist Cg =G23 der Golay-Code der L¨ange 23 undd(Cg) = 7.
Zyklische Codes, f¨ur die Satz 49.6 eine gute untere Absch¨atzung liefern sind die sogenannten BCH-Codes. Das Erzeugerpolynom eines BCH-Codes, ist das Polynom g kleinsten Grades, f¨ur das g(αb) = . . . = g(αb+r−1) = 0 f¨ur eine primitive N-te Einheitswurzelα:
Definition 49.7 Ein BCH-Code (Bose, Chandhuri, Hocquenghem) mit desi- gniertem Minimalabstand δ ¨uber Fq der L¨ange N ist ein zyklischer Code Cg E Fq[x]/(xN−1)f¨ur den es eine primitive N-te Einheitswurzelα und b∈Z gibt, so daß αb, αb+1, . . . , αb+δ−2 Nullstellen von g ∈Fq[x] sind und g keinen irreduziblen Faktor h hat mith(αb)6= 0, h(αb+1)6= 0, . . . und h(αb+δ−2)6= 0.
IstN =qm−1(also α ein primitives Element von Fqm), so heißt der BCH-Code primitiv.
Aus Satz 49.6 folgt direkt:
Bemerkung 49.8 Ist C ein BCH-Code mit designiertem Minimalabstand δ, so ist d(C)≥δ.
49.3 Unvollst¨ andiges Decodieren von zyklischen Codes
Sei C ein BCH-Code der L¨ange N ¨uber Fq mit designiertem Minimalabstand δ = 2t+ 1. Dann gibt es zu jedem a ∈ FNq h¨ochstens ein c∈ C mit d(a, c) ≤ t, da C t Fehler erkennen kann. Wir wollen ein Verfahren angeben, wie man zu einema∈FNq ein solches c∈C bestimmt, falls es so eincgibt. Dieses Verfahren nennt man “unvollst¨andige” Decodierung, da der Decodierer im Fall daß mehr alst Fehler aufgetreten sind, keine Antwort gibt.
Sei der Einfachheit halber C = Cg EFq[x]/(xN −1) ein zyklischer Code der L¨ange N, α ∈ Fqm eine primitive N-te Einheitswurzel (dazu muß N ein Teiler von qm−1 sein), so daß α,α2,α3, . . ., α2t Nullstellen vong sind.
Sei
c= (c0, . . . , cN−1)≡c(x) :=c0+c1x+. . .+cN−1xN−1 ein gesendetes Codewort und
r= (r0, . . . , rN−1)≡r(x) := r0+r1x+. . .+rN−1xN−1