Harm Pralle. Codierungstheorie WS 2005/06. Institut Computational Mathematics Technische Universität Braunschweig



Ähnliche Dokumente
Einführung in die Kodierungstheorie

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

Theoretische Grundlagen der Informatik WS 09/10

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

Lineare Codes. Dipl.-Inform. Wolfgang Globke. Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19

Übungen zum Ferienkurs Lineare Algebra WS 14/15

Lineare Gleichungssysteme

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Einführung in die Algebra

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

3.3 Eigenwerte und Eigenräume, Diagonalisierung

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

7 Rechnen mit Polynomen

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

Primzahlen und RSA-Verschlüsselung

1 Mathematische Grundlagen

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

Kapitel 15. Lösung linearer Gleichungssysteme

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

3 Der Hamming-Code. Hamming-Codes

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

Musterlösungen zur Linearen Algebra II Blatt 5

Definition 27 Affiner Raum über Vektorraum V

Mathematischer Vorbereitungskurs für Ökonomen

Eigenwerte und Eigenvektoren von Matrizen

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Der Zwei-Quadrate-Satz von Fermat

Lösungen zum 3. Aufgabenblatt

6 Fehlerkorrigierende Codes

2.1 Codes: einige Grundbegriffe

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Codierungstheorie Rudolf Scharlau, SoSe

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Lineare Gleichungssysteme

Minimale Darstellungen, Kommutator- und Fixräume, projektive Geometrie

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Codierungsverfahren SS Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Absolute Stetigkeit von Maßen

4. Übungsblatt Matrikelnr.:

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Zeichen bei Zahlen entschlüsseln

Einführung in die Vektor- und Matrizenrechnung. Matrizen

6.2 Perfekte Sicherheit

Grundbegriffe der Informatik

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

3.1. Die komplexen Zahlen

Programmiersprachen und Übersetzer

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

2 Die Darstellung linearer Abbildungen durch Matrizen

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Professionelle Seminare im Bereich MS-Office

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

4 Vorlesung: Matrix und Determinante

Das Briefträgerproblem

Mengensysteme, Wahrscheinlichkeitsmaße

Höhere Mathematik 3. Apl. Prof. Dr. Norbert Knarr. Wintersemester 2015/16. FB Mathematik

Bestimmung einer ersten

u + v = v + u. u + (v + w) = (u + v) + w. 0 V + v = v + 0 V = v v + u = u + v = 0 V. t (u + v) = t u + t v, (t + s) u = t u + s u.

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Kapitel 1: Codierungstheorie. 1.2 Quellcodierung 1.3 Fehlererkennende Codes 1.4 Fehlerkorrigierende Codes

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

Formelsammlung zur Kreisgleichung

Grundlagen Digitaler Systeme (GDS)

Expander Graphen und Ihre Anwendungen

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

(λ Ri I A+BR)v Ri = 0. Lässt sich umstellen zu

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

7 Die Determinante einer Matrix

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

3. Zusammenhang. 22 Andreas Gathmann

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Repetitionsaufgaben Wurzelgleichungen

Grundlagen der Technischen Informatik. 2. Übung

8. Quadratische Reste. Reziprozitätsgesetz

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Die Größe A(n, d) und optimale Codes

Vorlesung. Funktionen/Abbildungen 1

Wie kann man beweisen, dass (H, ) eine Gruppe ist?

Charakteristikenmethode im Beispiel

Codierung. Codierung. EAN Europäische Artikelnummer Ziffern 1 und 2 codieren das Hersteller-Land. Ziffer 2 bis 12 codieren Händler und Ware

Lineare Gleichungssysteme

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Algebraische Kurven. Vorlesung 26. Die Schnittmultiplizität

WS 2008/09. Diskrete Strukturen

Algorithmen II Vorlesung am

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Grundlagen der Theoretischen Informatik, SoSe 2008

Universität Bonn, Institut für Angewandte Mathematik. WS 2012/2013 Prüfung Angewandte Mathematik und Statistik - Agrarwiss. /ELW

Umgekehrte Kurvendiskussion

Übung zur Algebra WiSe 2008/2009, Blatt 1

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Theoretische Grundlagen der Informatik

Transkript:

Harm Pralle Codierungstheorie WS 2005/06 Institut Computational Mathematics Technische Universität 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. Com 2 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.1 Hamming-Distanz und Gewicht..................... 2 1.2 Das Codierungstheorieproblem...................... 3 1.3 Der Satz von Shannon.......................... 4 1.4 Hamming-Schranke und perfekte Codes................. 5 2 Lineare Codes 7 2.1 Einleitung und Definition......................... 7 2.2 Dualer Code und Kontrollmatrix.................... 9 2.3 Syndromdecodierung........................... 11 2.4 Beispiele.................................. 13 2.4.1 Hamming-Codes......................... 13 2.4.2 Hadamard-Codes......................... 15 2.5 Informationstheorie............................ 16 2.6 Gewichtspolynome............................ 17 3 Projektive Geometrie 21 3.1 Definitionen................................ 21 3.2 Homogene Koordinaten.......................... 22 3.3 Endliche projektive Räume........................ 24 3.4 Quadriken................................. 24 3.4.1 Bögen und rationale Normkurven................ 24 3.4.2 Quadriken............................. 25 4 Die Suche nach guten Codes 29 4.1 Optimierung der Rate bei gegebener Distanz.............. 29 4.2 Maximum Distance Separable Codes.................. 31 4.3 Erweiterungen von Codes und Bögen.................. 33 4.4 Erzeugermatrizen projektiv betrachtet................. 35 5 Zyklische Codes 39 5.1 Zyklische Codes und Erzeugerpolynome................. 39 5.2 Kontrollpolynom und Kontrollmatrix.................. 41 5.3 Nullstellen zyklischer Codes....................... 43 5.4 Das Idempotent eines zyklischen Codes................. 44 III

IV INHALTSVERZEICHNIS 5.5 Beispiele.................................. 46 5.5.1 Zyklische Hamming-Codes.................... 46 5.5.2 BCH-Codes............................ 47 5.5.3 Reed-Solomon Codes....................... 50 5.5.4 Codeverschachtelung und Audio-CD.............. 51 5.5.5 Der binäre Golay-Code...................... 53 5.5.6 Der ternäre Golay-Code..................... 55 Index 56

Kapitel 1 Grundlagen Ziel der Codierungstheorie ist die fehlerfreie Übertragung von Daten. Der Sender codiert eine Nachricht m in ein Codewort c und sendet c. Der Empfänger erhält das Signal y = c + e mit einem Fehlerwort e und decodiert y. Er sollte dabei mit hoher Wahrscheinlichkeit sagen können, ob ein Fehler aufgetreten ist und falls ja, diesen auch korrigieren können. Wir betrachten nur Codes, in denen jedes Wort dieselbe Länge hat. Sie heißen Blockcodes. Definition 1.1 Ein Code der Länge n über dem Alphabet F q := {λ 1,..., λ q } ist eine Menge von n-tupeln aus F q. Meist benutzen wir F q = Z q oder F q und dann sagt man, C ist ein Code über q. Codes über 2 und 3 heißen binäre und ternäre Codes. Beispiel 1.1 1. Die Deutsche Sprache. 2. Ein Code C mit M Wörtern der Länge n kann als (M n)-matrix geschrieben werden, deren Zeilen die Codewörter sind. Zum Beispiel ist der binäre Repetitionscode der Länge 3 dargestellt durch 0 0 3. Sei C = 0 1 1 0 1 1 ( 0 0 0 1 1 1 ). ein binärer Code der Länge 2. Wir fügen redundante Information hinzu, um Fehler aufdecken zu können: C 1 = 0 0 0 0 1 1 1 0 1 1 1 0 ist 1-Fehler erkennend, da der erhaltene Vektor kein Codewort ist, wenn ein Fehler auftritt. Zum 0 0 0 0 0 Korrigieren eines Fehlers brauchen wir mehr Information: C 2 = 0 1 1 0 1 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örter den Abstand 2t + 1, so wird ein empfangener Vektor im Abstand t von einem Codewort als dies Codewort decodiert. Sonst wird um Wiederholung der übertragung gebeten. Dies nennt man Minimaldistanzdecodierung oder Hamming- Decodierung. Sie maximiert die Wahrscheinlichkeit, Fehler zu korrigieren, falls der Kanal folgende Eigenschaften hat: Jedes Symbol hat dieselbe Wahrscheinlichkeit p, geändert zu werden. Wird ein Symbol verändert, so ist die Wahrscheinlichkeit für jeden der q 1 Fehler gleich groß. Ein solcher Kanal heißt ein symmetrischer Kanal über q. Die Wahrscheinlichkeit, dass 0 i n Fehler auftreten, ist ( n i) p i (1 p) n i. Die Wortfehlerwahrscheinlichkeit P err (C) ist die Wahrscheinlichkeit, dass ein empfangener Vektor nicht als das gesendete Codewort decodiert wird. Für einen symmetrischen Kanal hängt diese Wahrscheinlichkeit nicht vom gesendeten Wort ab und die Minimaldistanzdecodierung ist die Decodierung mit der geringsten Wortfehlerwahrscheinlichkeit. Beispiel 1.2 Sei C der binäre Repetitionscode der Länge 3. Das Codewort (0, 0, 0) werde über einen binären 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 P err (C) = 1 ((1 p) 3 + 3p(1 p) 2 ) = 3p 2 2p 3 1.1 Hamming-Distanz und Gewicht Wir betrachten von nun an nur Codes, die Teilmengen des Vektorraums V = F n q sind. Definition 1.2 Die Hamming-Distanz d(x, y) zwischen zwei Vektoren x = (x 1,..., x n ), y = (y 1,..., y n ) F n q ist die Anzahl der i {1,..., n} mit x i y i. Lemma 1.3 Die Hamming-Distanz ist eine Metrik. Beweis. d(x, y) = 0 x = y d(x, y) = d(y, x) für alle x, y V d(x, y) d(x, z) + d(z, y) für alle x, y, z V : d(x, y) ist die Minimalzahl der Änderungen von Koordinaten, die man an x vornehmen muss, um y zu erhalten. Ändert man x erst zu z und dann z zu y, so sind dies mindestens so viele Schritte wie bei der direkten Änderung von x zu y.

1.2. DAS CODIERUNGSTHEORIEPROBLEM 3 Man definiert die Minimaldistanz von C als d(c) = min{d(x, y) x, y C, x y}. Beispiel 1.3 Der Repetitionscode über q der Länge 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. Fehlern. Es seien x der gesendete und y der empfangene Vektor mit höchstens t (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ür jedes andere Codewort z C \ {x}. Denn sonst gälte d(x, z) d(x, y) + d(y, z) t + t = 2t im Widerspruch zu d(c) 2t + 1. Definition 1.5 Ist C ein Code der Länge n mit M Wörtern und Minimaldistanz d, dann wird C als (n, M, d)-code bezeichnet. ist das Gwicht w(x) die Anzahl der Ele- Definition 1.6 Für x = (x 1,..., x n ) F n q mente 0 in (x 1,..., x n ). Lemma 1.7 Es gilt d(x, y) = w(x y) für alle x, y F n q. Beispiel 1.4 (Beispiel 1.1 fortgesetzt.) C 1 = und w(c) = 2 für alle c C. 0 0 0 0 1 1 1 0 1 1 1 0 F3 2 d(c) = 2 1.2 Das Codierungstheorieproblem Ein guter (n, M, d)-code hat eine kleine Länge n für schnelle Übertragung, eine große Minimaldistanz d für gute Fehlererkennung/-korrektur und die Zahl M der Wörter sollte groß sein. Das Codierungstheorieproblem besteht darin, zu gegebenen n und d den größten Code zu finden. Man bezeichnet mit A q (n, d) die größte Zahl M, für die ein (n, M, d)-code über q exisiert. Satz 1.8 Es gelten A q (n, 1) = q n und A q (n, n) = q.

4 KAPITEL 1. GRUNDLAGEN Beweis. Ist C ein maximaler Code mit d = 1, so gilt C = F n q, also C = q n. Ist C ein (n, M, n)-code über q, so unterscheiden sich je zwei Codewörter in allen Koordinaten. Da an der ersten Stelle nur q verschiedene Werte möglich sind, folgt A q (n, n) q. Der Repetitionscode der Länge n über q ist ein Code mit Minimaldistanz n der Größe q. Also gilt A q (n, n) = q. Satz 1.9 Sei d ungerade. Dann existiert ein binärer (n, M, d)-code genau dann, wenn ein binärer (n + 1, M, d + 1)-Code existiert. Beweis. Es sei C ein binärer (n, M, d)-code. Wir konstruieren einen (n+1, M, d+ 1)-Code C, indem wir C um eine Prüfziffer erweitern: (x 1,..., x n ) (x 1,..., x n, n x i mod 2) = i=1 { (x1,..., x n, 0), falls w(x) gerade (x 1,..., x n, 1), falls w(x) ungerade Dann ist w(x ) für alle x C gerade. Also ist d(c ) gerade, und es gilt d d(c ) d + 1. Weil d ungerade ist, folgt d(c ) = d + 1 und C 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örter mit d(x, y) = d + 1 und wähle eine Koordinate, in der sie sich unterscheiden. Löscht man diese Koordinate von allen Codewörtern, so erhält man einen Code C der Länge n, Minimaldistanz d und Größe M. Korollar 1.10 Ist d ungerade, so gilt A 2 (n + 1, d + 1) = A 2 (n, d). 1.3 Der Satz von Shannon Definition 1.11 Es sei C ein Code der Länge n über q. Dann ist die Informationsrate, oder Rate, von C gleich R(C) := n 1 log q C. Die Kanalkapazität eines symmetrischen Kanals mit Symbolfehlerwahrscheinlichkeit p ist κ(p) = 1 + p log 2 (p) + (1 p) log 2 (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änge n mit Informationsrate wenigstens R, so dass P err (C) < ε für die Wortfehlerwahrscheinlichkeit P err (C) gilt. Beweis. Ohne Beweis, da nicht konstruktiv. Beispiel 1.5 Der Repetitionscode einer ungeraden Länge N ist ein guter Code, der aber sehr lang und damit teuer ist. Die Wahrscheinlichkeit, dass ein bit (N- Buchstabenwort des Codes) korrekt decodiert wird, ist 0 k<n/2 ( N k ) p k (1 p) N k. Codiert man bei der Übertragung von bits jedes bit durch zwei bits, so erkennt man einzelne Fehler, kann aber nicht korrigieren.

1.4. HAMMING-SCHRANKE UND PERFEKTE CODES 5 Eine bessere Möglichkeit ist das Codieren der 2-Tupel wie folgt: (0 0) (0 0 0 0) (0 1) (0 1 1 1) (1 0) (1 0 0 1) (1 1) (1 1 1 0) Gehört der empfangene Vektor nicht zu C, so nimmt man an, dass das letzte bit korrekt übertragen worden ist und decodiert als das nächstliegende Codewort. So wird jedes 4-Tupel eindeutig decodiert. Die Wahrscheinlichkeit, dass 2 Symbole korrekt übertragen werden, ist mit diesem Code (1 p) 4 + 3p(1 p) 3. Für p = 0, 001 ist dies 0, 9989970, wärend die Wahrscheinlichkeit der korrekten Übertragung ohne Codieren nur (1 p) 2 = 0, 9980 und die des Repetitionscodes der Länge 2 nur (1 p) 4 = 0, 9960 beträgt. 1.4 Hamming-Schranke und perfekte Codes Für u F n q und r N ist die Kugel vom Radius r um u (manchmal auch r-umgebung oder r-kugel genannt) die Menge S r (u) = {v F n q d(u, v) r}. Lemma 1.13 Eine Kugel vom Radius r in F n q ( ) ( n n 1 + n(q 1) + (q 1) 2 +... + 2 r Vektoren. mit 0 r n enthält genau ) (q 1) r Beweis. Sei u F n q. Wir zählen die Vektoren im Abstand i von u für i = 0,..., r. Dies sind genau ( n i) (q 1) i Vektoren, und es folgt S r (u) = r i=0 ( n i ) (q 1) i. Satz 1.14 (Kugelpackungs- oder Hamming-Schranke) Für einen (n, M, 2t + 1)-Code über q gilt (( ) ( ) ( ) ( ) n n n n M + (q 1) + (q 1) 2 + + )(q 1) t q n. 0 1 2 t Beweis. Es sei C ein (n, M, 2t + 1)-Code. Wegen d(c) = 2t + 1 sind die t- Umgebungen um Codewörter disjunkt. Die Zahl der Vektoren in den t-umgebungen um Codewörter ist die linke Seite der Ungleichung. Sie ist beschränkt durch die Anzahl q n der Vektoren von F n q.

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 über q, so partitionieren die t- Umgebungen um die Codewörter den Vektorraum F n q. Zum Beispiel ist der binäre Repetitionscode der Länge n ein perfekter (n, 2, n)-code, wenn n ungerade ist. Die trivialen perfekten Codes sind die Repetitionscodes und die trivialen Codes F n q 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 F n q. 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 über F q deren Zeilen eine Basis eines [n, k]-codes bilden, heißt eine Erzeugermatrix des Codes. Beispiel 2.1 Die trivialen Codes {0} und F n q sind lineare [n, 0]- und [n, n, 1]-Codes. Der Repetitionscode der Länge n ist ein [n, 1, n]-code mit Basis {(1, 1,..., 1)}. 0 0 0 ( ) Der binäre Code C = 0 1 1 0 1 1 1 0 1 hat die Erzeugermatrix G =. Es 1 0 1 1 1 0 gilt C = {(k 1, k 2 )G k 1, k 2 F 2 }. Jeder [n, k, d]-code über q ist ein (n, q k, d)-code. Natürlich gilt die Umkehrung nicht. Definition 2.2 Für einen Code C ist w(c) := min{w(c) c C \ {0}} das Minimalgewicht von C. Satz 2.3 Für einen linearen Code C gilt d(c) = w(c). Beweis. Es seien x, y C Codewörter 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ür ein Codewort u C. Beispiel 2.2 Es sei C der ternäre lineare Code mit Erzeugermatrix G = 0 0 0 1 1 0 1 1 0 0. 1 0 1 0 1 7

8 KAPITEL 2. LINEARE CODES C = {(c 3, c 2, c 2 + c 3, c 1, c 1 + c 3 ) c 1, c 2, c 3 F 3 }. Wegen x 2 = 1 für x 0 in F 3, gilt für c = (c 3, c 2, c 2 + c 3, c 1, c 1 + c 3 ) C: w(c) = (c 2 3 mod 3)+(c 2 2 mod 3)+((c 2 +c 3 ) 2 mod 3)+(c 2 1 mod 3)+((c 1 +c 3 ) 2 mod 3) 2 Dabei gilt Gleichheit, wenn c 1 = 1 und c 2 = c 3 = 0. Also ist C ein [5, 3, 2]-Code und 1 Fehler erkennend. Vorteile linearer Codes: Zur Bestimmung der Minimaldistanz eines Codes benötigt man ( ) M 2 = 1 M(M 2 1) Vergleiche. Nach Satz 2.3 reichen für lineare Codes schon M 1 Vergleiche. Um einen nichtlinearen Code zu beschreiben, muss man alle Codewörter 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ür gewisse Kriterien sind lineare Codes jedoch oftmals die besten. So existiert für jede Parametermenge, zu der nichttriviale perfekte Codes existieren, auch perfekte lineare Codes. q muss eine Primzahlpotenz sein. Oftmals kann man aber Codes über einer Nichtprimzahlpotenzzahl q von Codes über einer Primzahlpotenz ableiten. Ein Beispiel hierfür ist das folgende. Beispiel 2.3 Es sei D F 10 11 der Code D = {(x 1,..., x 10 ) F 10 11 10 i=1 ix i = 0 mod 11}. Der ISBN Code (International Standard Book Number) folgt aus D, indem man alle Wörter von D löscht, die eine 10 in den Koordinaten 1,..., 9 haben und dann die Wörter (x 1,..., x 9, 10) mit x 1,..., x 9 < 10 von D durch (x 1,..., x 9, X) ersetzt. Die erste Stelle steht für die Sprache, die zweite und dritte stehen für den Verlag und die nächsten sechs Stellen sind die Nummer, die der Verlag dem Buch zuordnet. Das letzte bit ist eine Prüfziffer. Zwei Codes über q derselben Länge heißen äquivalent, 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 äquivalent zu einem Code mit Erzeugermatrix (I k A) wobei A eine (k (n k))-matrix ist. Eine Erzeugermatrix dieser Form heißt in Standardform. Ist G = (I k A) mit A = (a ij ) eine Erzeugermatrix in Standardform, dann sind (x 1,..., x n ) = ug = (u 1,..., u k, k u i a i,1,..., i=1 k u i a i,n k ) die Codewörter. Die Koordinaten x i = u i für i = 1,..., k heißen Informationsstellen und die Koordinaten x k+1,..., x n die Prüfstellen. Die redundanten Prüfstellen sollen die Nachrichten gegen Störungen im Kanal schützen. Beispiel 2.4 Ein zum ternären [5, 3, 2]-Code C von Beispiel 2.2 mit Erzeugermatrix G äquivalenter Code D hat eine Erzeugermatrix in Standardform M = 1 0 0 1 1 0 1 0 1 0. Wir erweitern C durch eine Prüfstelle und erhalten die neue 0 0 1 0 1 Erzeugermatrix N = 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 Wie in Beispiel 2.2 ergibt sich das Gewicht eines Codeworts c = (c 1, c 2, c 3, c 1 + c 2, c 1 + c 3, c 2 + c 3 ) als w(c) = (c 2 1 mod 3) + (c 2 2 mod 3) + (c 2 3 mod 3) + ((c 1 + c 2 ) 2 mod 3) + ((c 1 + c 3 ) 2 mod 3) + ((c 2 + c 3 ) 2 mod 3) 3. Also ist der neue Code ein ternärer [6, 3, 3]-Code, 1 Fehler-korrigierend und 2 Fehler-erkennend. i=1 2.2 Dualer Code und Kontrollmatrix Durch das übliche Skalarprodukt (u 1,..., u n ), (v 1,..., v n ) = u 1 v 1 + u 2 v 2 +... + u n v n kann man einen linearen Code nicht nur mittels einer Basis in einer Erzeugermatrix definieren, sondern auch durch seinen Senkrechtraum. Definition 2.4 Für einen linearen [n, k]-code C über einem Körper F ist der duale Code C der Unterraum C = {v F n v, u = 0 für alle u C}. Der folgende Satz ist aus der linearen Algebra wohlbekannt. Satz 2.5 Es sei C ein [n, k]-code über einem Körper F.

10 KAPITEL 2. LINEARE CODES (i) Ist G eine Erzeugermatrix von C, so gehört v F n 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 über F. 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ängigen Zeilen. Ist H eine Kontrollmatrix von C, dann folgt C = {v F n Hv T = 0} nach Satz 2.5. Beispiel 2.5 Es sei C der binäre [4, 2]-Code mit Erzeugermatrix G = ( 0 1 1 1 1 0 1 0 ). Dann ist der duale Code nach Satz 2.5 gleich C = {c = (c 1,..., c 4 ) F 4 2 GcT = 0} = {(c 1,..., c 4 ) c 2 + c 3 + c 4 = 0 = c 1 + c 3 } = {(c 1, c 2, c 1, c 1 + c 2 ) c 1, c 2 F 2.} C ist ein [4, 2]-Code mit Erzeugermatrix H = ), die eine Kontrollmatrix von C ist. ( 1 0 1 1 0 1 0 1 Satz 2.7 Ist G = (I k A) eine Erzeugermatrix eines [n, k]-codes C in Standardform, dann ist H = ( A T I n k ) eine Kontrollmatrix von C. Beweis. Weil G eine k n-matrix ist, ist H eine (n k) n-matrix, deren Zeilen linear unabhängig sind, da die letzten n k Spalten die Matrix I n k bilden. Also spannen die Zeilen von H einen Unterraum der Dimension n k = dim(g ) auf. Wegen GH T = (I k A) ( ( ) ) A T T A I n k = (Ik A) = 0 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. I n k Definition 2.8 Eine Kontrollmatrix der Form (B I n k ) heißt in Standardform. Der folgende Satz ist ein fundamentaler Satz in der Theorie der linearen Codes und spielt eine wichtige Rolle für die Hamming-Codes.

2.3. SYNDROMDECODIERUNG 11 Satz 2.9 Es sei C ein [n, k]-code über F mit Kontrollmatrix H. Dann ist d die Minimaldistanz von C genau dann, wenn je d 1 Spalten von H linear unabhängig sind und es d linear abhängige Spalten von H gibt. Beweis. Nach Satz 2.3 gilt d(c) = w(c). Ein Vektor v = (v 1,..., v n ) ist ein Codewort genau dann, wenn Hv T = v 1 h 1 + +v n h n = 0 gilt, wobei h 1,..., h n die Spalten von H bezeichnen. Also gibt es für jedes Codewort vom Gewicht w eine Menge von w linear abhängigen Spalten von H. Wären andererseits h k1,..., h kd 1 linear abhängige Spalten von H, dann gäbe es eine nichttriviale Linearkombination x 1 h k1 + x d 1 h kd 1 = 0 und der Vektor x = (x 1,..., x n ) mit x j = 0 für j / {k 1,..., k d 1 } gehört zu C ein Widerspruch zu w(c) = d. 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ängig sind. ). 2.3 Syndromdecodierung Das Codieren eines Worts (u 1,..., u k ) F k 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 F n das Codewort finden, das unter dem Hamming-Abstand am nächsten zu y liegt. Dazu benutzen wir, dass der Vektorraum F n 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ührer. Wenn mehrere Vektoren minimalen Gewichts in N existieren, so wählen wir einen von diesen zum Nebenklassenführer. Definition 2.11 Es sei C ein [n, k]-code mit Kontrollmatrix H. Dann heißt der Vektor S(y) = Hy T für y F n q 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) = Hu T = Hv T = S(v) Um die Nebenklasse des Codes zu bestimmen, in der der empfangene Vektor y liegt, können wir also nach Lemma 2.12 das Syndrom S(y) mit den Syndromen der Nebenklassenführer vergleichen. Ist e der entsprechende Nebenklassenführer, so dass y e + C gilt, so ist x = y e C das zu y am nächsten liegende Codewort. Mit der sogenannten Syndromtabelle, die die Syndrome der Nebenklassenführer und die Nebenklassenführer enthält, also die Größe 2q n k hat, ist das Decodieren einfaches Nachschlagen. Beispiel ( 2.7 Es sei ) C der binäre ( [4, 2]-Code ) mit Erzeuger- und Kontrollmatrizen 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ören. Wegen q n k = 4 suchen wir drei nichttriviale Nebenklassenführer. Man sieht leicht, dass (0, 1, 0, 0), (0, 0, 1, 0) und (0, 0, 0, 1) zu verschiedenen Nebenklassen gehören. Die Syndromtabelle ist (0, 0, 0, 0) (0, 0) (0, 0, 0, 1) (0, 1) (0, 0, 1, 0) (1, 0) (0, 1, 0, 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 über 11. Sei y = (x 1,..., x j 1, x j + k, x j+1,..., x 10 ) ein empfangener Vektor. Dann ist sein Syndrom der Vektor (A, B) mit A = 10 i=1 x i + k k mod 11 und B = 10 i=1 ix i + jk jk mod 11. Also ist A die Fehlergröß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 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ür y = (0, 1, 5, 3, 0, 6, 8, 2, 0, 1) ist (A, B) = (4, 3) und es ist ein Fehler der Größ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ür eine gegebene Redundanz r N und Primzahlpotenz q konstruieren wir im ersten Unterkapitel eine geeignete Kontrollmatrix. Danach stellen wir das Decodieren der Hamming- Codes vor und betrachten im letzten Unterabschnitt binäre 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ür eine gegebene Redundanz r 2 konstruieren wir einen [n, n r, 3]-Code über F q. Nach Satz 2.9 sind je zwei Spalten einer Kontrollmatrix eines Hamming-Codes linear unabhängig und es gibt drei linear abhängige Spalten. Die q r 1 Vektoren von F r q \ {0} sind durch die 1-dimensionalen Unterräume von Fr q in (qr 1)/(q 1) Komponenten partitioniert. Definition 2.13 Es seien r N, n = (q r 1)/(q 1) und H F n r q, so dass je zwei Spalten von H linear unabhängig 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änge (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öchstens einer Stelle unterscheiden. Dies sind S 1 (x) = 1 + n(q 1) = q r Vektoren (vgl. Lemma 1.13). Wegen Ham(r, q) = q n r, überdecken die 1-Umgebungen um Codewörter genau q n r q r = q n Vektoren, d.h. ganz F n q. Also ist Ham(r, q) perfekt. 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äsentieren alle (q r 1)/(q 1) 1-dimensionalen Unterräume von F r q. Andere Kontrollmatrizen können leicht gefunden werden.

14 KAPITEL 2. LINEARE CODES Beispiel 2.9 Ham(3, 3) ist durch die Kontrollmatrix H = 0 0 0 0 1 1 1 1 1 1 1 1 1 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ür jede Primzahlpotenz q und d = 3 für eine unendliche Folge von n gelöst: Korollar 2.15 Ist q eine Primzahlpotenz und n = (q r 1)/(q 1) für ein r N, dann gilt A q (n, 3) = q n r. Decodieren von Ham(r, q) Die Nebenklassenführer ungleich 0 des Hamming-Codes Ham(r, q) sind genau die Vektoren vom Gewicht 1 von F n q (beachte n = (qr 1)/(q 1)). Das Syndrom eines Nebenklassenführers y = (0,..., 0, k, 0,..., 0) ist also S(y) = H(0,..., 0, k, 0,..., 0) T = kh j, wobei H j die jte Spalte von H bezeichnet. Ist das Syndrom S(y) eines empfangenen Vektors y ungleich 0, so gilt S(y) = kh j für 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 H = ( 0 1 1 1 1 1 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ärer Hamming-Code, dann ist das Syndrom S(0,..., 0, 1, 0,..., 0) des Nebenklassenführers mit der 1 an Stelle j genau die transponierte jte Spalte von H. Somit ist das Decodieren eines binären Hamming-Codes noch einfacher als eines Hamming-Codes über q > 2. Das Erweitern von Codes Definition 2.16 Für einen linearen Code C der Länge n heißt der Code n+1 C = {(c 1, c 2,..., c n, c n+1 ) (c 1, c 2,..., c n ) C, c i = 0} der um eine Prüfstelle erweiterte Code von C. i=1

2.4. BEISPIELE 15 Ist H eine Kontrollmatrix eines linearen Codes C, dann ist 0 H = H. 0 1... 1 1 eine Kontrollmatrix des erweiterten Codes C. Hat ein binärer linearer Code C die Minimaldistanz d, dann hat sein erweiterter Code C die Minimaldistanz d + 1. Das Erweitern eines binären linearen Code verlangsamt also die Übertragung, erhöht aber die Minimaldistanz. Satz 2.17 Der erweiterte binäre Hamming-Code Ham(r, 2) ist ein binärer [2 r, 2 r 1 r, 4]-Code. 2.4.2 Hadamard-Codes Definition 2.18 Eine quadratische Matrix der Ordnung n heißt Hadamard-Matrix, falls sie nur Einträge 1 und 1 hat, so dass HH T = ni gilt. Es sei H n eine Hadamard-Matrix der Ordnung n. Ersetzt man 1 durch 0 in den Matrizen H n und H n, dann sind die Zeilen dieser Matrizen 2n Wörter von F n 2. Da sich je zwei Zeilen einer Hadamard-Matrix in der Hälfte der Stellen unterscheiden, formen diese Wörter einen (n, 2n, n/2)-code. Er heißt Hadamard-Code. Beispiel 2.10 1. Es sei H 2 = 1 1 0 1 (2, 4, 1)-Code = F 2 0 0 2. 1 0 ( 1 1 1 1 2. Der Hadamard-Code des Kroneckerprodukts H 2 H 2 = der (4, 8, 2)-Code 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 0. ). Der Hadamard-Code ist der binäre 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ist 3. Ein Hadamard-Code der Länge 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 2 4 8 12 16 20 24 28 # der Klassen 1 1 1 1 5 3 60 487 Für einen aktuellen Überblick, 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ühmt geworden: π(x) lim x x ln(x) 2.5 Informationstheorie = 1, π(x) = {p x p ist Primzahl} Wir betrachten einen binären linearen Code C und einen symmetrischen Kanal mit Symbolfehlerwahrscheinlichkeit p. Satz 2.19 Es seien C ein binärer [n, k]-code und α i die Anzahl der Nebenklassenführer vom Gewicht i für 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) = n i=0 α ip i (1 p) n i. Beispiel 2.11 Es sei C der Code Ham(3, 2). Ist die Symbolfehlerwahrscheinlichkeit p = 0, 01, so folgt 1 P err (C) = 7 α i p i (1 p) 7 i = 0.01 0 0.99 7 + 3 0.01 1 0.99 6 = 0.9603. i=0 Ist d(c) = 2t + 1 oder 2t + 2, dann korrigiert C bis zu t Fehler und jeder Vektor vom Gewicht t ist ein Nebenklassenführer. Es folgt α i = ( n i) für 0 i t. Die α i für i > t zu bestimmen, kann sehr schwierig sein. Wenn aber C ein perfekter [n, k, d]-code ist, dann haben alle Nebenklassenführer Gewichte t und es folgt α i = ( n i) für 0 i t und αi = 0 für i > t. Der Decodierer entdeckt Fehler nur nicht, wenn der empfangene Vektor y wieder ein Codewort x ist. Dann ist der Fehlervektor e = y x ein Codewort. Also ist die Wahrscheinlichkeit, dass man ein falsches Codewort erhält, unabhängig vom gesendeten Codewort x. Satz 2.20 Es seien C ein binärer [n, k]-code und A i die Anzahlen der Codewörter 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 n P undetec (C) = A i p i (1 p) n i. i=1 Nachdem wir die Hamming-Codes als perfekte Codes kennengelernt haben, werden wir bei den zyklischen Codes noch zwei perfekte Codes kennenlernen, die Golay- Codes. Ein sehr einschränkendes Resultat von Tietäväinen ist folgendes. Satz 2.21 (Tietäväinen, 1973) Es sei C ein nichttrivialer perfekter Code über q. Ist q eine Primzahlpotenz, so hat C die gleichen Parameter wie ein Hamming- oder ein Golay-Code. Für d(c) 7 gilt sogar nach verschiedenen Arbeiten aus den 80iger Jahren: Satz 2.22 Ist C ein nichttrivialer perfekter Code über q mit d(c) 7, so ist C der binäre Golay (23, 2 12, 7)-Code. 2.6 Gewichtspolynome Definition 2.23 Es seien C ein linearer Code der Länge n und A i die Anzahl der Codewörter vom Gewicht i, i = 0,..., n. Dann heißen das Polynom n A(z) = z w(c) Z[z] i=0 A i z i = c C das Gewichtspolynom und die Folge (A i ) n i=0 die Gewichtsverteilung von C. Sind C ein linearer Code und c C, dann ist A i die Anzahl der Codewörter im Abstand i von c. Für nichtlineare Codes ist A i nicht notwendig unabhängig 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ür alle g G gilt, dann heißt χ der triviale Charakter. Lemma 2.25 Für jeden Charakter χ einer abelschen Gruppe (G, +) gelten (i) χ(0) = 1 und (ii) { G wenn χ der triviale Charakter ist g G χ(g) = 0 sonst Beweis. χ(h) g G Für h G gilt χ(g) = g G χ(h + g) = k G χ(k). Wenn χ nicht der triviale Charakter ist, dann gibt es ein h G mit χ(h) 1.

18 KAPITEL 2. LINEARE CODES Satz 2.26 (Dualitätssatz von MacWilliams, 1963) Es seien C ein [n, k]-code über q mit Gewichtspolynom A(z) und B(z) das Gewichtspolynom von C. Dann gilt ( ) B(z) = q k (1 + (q 1)z) n 1 z A 1 + (q 1)z Beweis. Es seien χ ein nichttrivialer Charakter von (F q, +) und V := F n q. Wir setzen für u V g u (z) := v V χ( u, v )z w(v) mit u, v = u 1 v 1 +... + u n v n. Wir erweitern die Gewichtsfunktion formal von F { n q 0 falls x = 0 auf F q durch w(x) =. Damit folgt 1 sonst g u (z) = v V = v V z w(v) χ( u, v ) z w(v 1) χ(u 1 v 1 )z w(v 2) χ(u 2 v 2 )... z w(vn) χ(u n v n ) = n i=1 v F q z w(v) χ(u i v). Ist u i = 0, dann gilt v F q z w(v) χ(u i v) = 1 + (q 1)z; ist u i 0, dann folgt v F q z w(v) χ(u i v) = 1 + z v F q\{0} χ(v) = 1 z. Es ergibt sich g u (z) = (1 z) w(u) (1 + (q 1)z) n w(u). Andererseits gilt g u (z) = χ( u, v )z w(v) = u C u C v V v V z w(v) u C χ( u, v ). Die Abbildung u χ( u, v ) definiert einen Charakter von C, der genau für v C der triviale Charakter ist. Daher folgt { C für v C u C χ( u, v ) = nach 0 sonst Lemma 2.25 (ii). Es folgen u C g u(z) = u C C z w(u) = C B(z) und B(z) = C 1 g u (z) = q k (1 + (q 1)z) ( n 1 z 1 + (q 1)z u C u C ( ) = q k (1 + (q 1)z) n 1 z A. 1 + (q 1)z ) w(u)

2.6. GEWICHTSPOLYNOME 19 Lemma 2.27 Das Gewichtspolynom von Ham(r, q) ist 1 + (q r 1)z qr 1. Das Gewichtspolynom von Ham(r, q) ist ( ) q r (1 + (q 1)z) n + (q r 1)(1 z) qr 1 (1 + (q 1)z) qr 1 1 q 1. Beweis. Es sei H eine Kontrollmatrix von Ham(r, q) mit Zeilen h 1,..., h r. Ein Codewort von Ham(r, q) \ {0} ist von der Form c = r i=1 a ih i mit a 1,..., a r nicht alle Null. Also ist die Anzahl von Nullen in c gleich der Anzahl der Spalten von H, die zu der Hyperebene U von F r q mit Gleichung a 1 x 1 +...+a r x r = 0 gehören. Weil H aus jedem 1-dimensionalen Unterraum von U einen Vektor als Spalte enthält, 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 qr 1. Mit dem Dualitätssatz von MacWilliams folgt das Gewichtspolynom von Ham(r, q): A(z) = 1 ( ) q (1 + (q 1 z 1)z)n B 1 + (q 1)z ( ) = 1 q (1 + (q 1)z)n 1 + (q r (1 z) qr 1 1) (1 + (q 1)z) qr 1 = 1 q (1 + (q 1)z)n + qr 1 q = 1 ( (1 + (q 1)z) q r 1 q 1 q (1 + (q 1)z) n (1 z) qr 1 (1 + (q 1)z) qr 1 q 1 qr 1 + (q r 1)(1 z) qr 1 (1 + (q 1)z) qr 1 1 q 1 )

20 KAPITEL 2. LINEARE CODES

Kapitel 3 Projektive Geometrie Zur Konstruktion eines linearen Codes der Länge n, Redundanz r und Minimaldistanz d konstruiert man eine Kontrollmatrix gemäß Satz 2.9. Die Spalten von H erzeugen 1-dimensionale Unterräume von F r q, so dass je d 1 linear unabhängig sind und es d linear abhängige Spalten gibt. Für d = 3 haben wir die Hamming-Codes Ham(r, q) gefunden, die perfekt sind. Geht das auch für d 4? Hierfür sind also die 1-dimensionalen Unterräume von F r q wesentlich. Der projektive Raum P G(r 1, q) besteht aus den 1-dimensionalen Unterräumen von F r q als Punkten und den 2-dimensionalen Unterräumen als Geraden. Die Suche nach Punktmengen in P G(r 1, q) wie oben ist viel älter 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äume von V. Die Geraden von P (V ) sind die 2-dimensionalen Unterräume von V. Inzidenz ist Enthaltensein. 21

22 KAPITEL 3. PROJEKTIVE GEOMETRIE Satz 3.3 Für dim(v ) 3 ist P (V ) ein projektiver Raum. Beweis. Hausaufgabe. Die Unterraumstruktur des Vektorraums V findet sich im projektiven Raum P (V ) wieder. Die 2-dimensionalen Unterräume von V sind die Geraden von P (V ), die 3- dimensionalen Unterräume von V die Ebenen von P (V ) und die i+1-dimensionalen Unterräume von V die i-räume von P (V ) für 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ür zwei Punkte p, q U auch jeder Punkt der Geraden pq zu U gehört. Das Erzeugnis oder der von U aufgespannte Unterraum U von U ist die kleinste Linearmenge, die U enthält, d.h. U := U L;L Linearmenge L. Definition 3.5 Es sei P ein projektiver Raum. Eine Punktmenge B von P heißt unabhängig, wenn für jede Teilmenge B B und jeden Punkt p B \ B gilt, dass p nicht in B liegt. Eine Basis von P ist eine unabhängige 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. 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ür 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. 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 = P (V ) für einen (d + 1)-dimensionalen Vektorraum V gilt, so schreibt man auch P = P G(d, q). 3.2 Homogene Koordinaten Mit einer Basis B = {b 0,..., b d } von V läßt sich jeder Vektor v V eindeutig schreiben als v = v 0 b 0 + v 1 b 1 +... + v d b d.

3.2. HOMOGENE KOORDINATEN 23 Der entsprechende Punkt von P (V ) ist der 1-dimensionale Unterraum p = v. Jedes skalare Vielfache a(v 0,..., v d ) von (v 0,..., v d ) für 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 p 1,..., p t Punkte von P (V ) mit homogenen Koordinaten p i = (a i0, a i1,..., a id ). Genau dann sind p 1,..., p t unabhängig, wenn die Matrix den Rang t hat. a 10 a 11... a 1d a 20 a 21... a 2d... a t0 a t1... a td 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 p 1,..., p t einen (t 1)-dimensionalen Unterraum von P (V ), d.h. sie sind eine Basis dieses Unterraums und unabhängig. Gilt umgekehrt r < t für den Rang r der Matrix, so spannen die homogenen Koordinaten der Punkte einen r-dimensionalen Unterraum von V auf. Die Punkte p 1,..., p t liegen dann in einem (r 1)-dimensionalen Unterraum von P (V ) und sind also nicht unabängig. 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ösungen einer homogenen linearen Gleichung. Umgekehrt beschreibt jede homogene lineare Gleichung eine eindeutige Hyperebene von P (V ). Beweis. Es sei H die Hyperebene von V mit P (H ) = H. Dann sind die Vektoren von H die Lösungen einer homogenen linearen Gleichung. Umgekehrt bilden die Lösungen einer homogenen linearen Gleichung in einem Vektorraum der Dimension d + 1 einen Unterraum H der Dimension d. Also ist H eine Hyperebene von V und P (H ) eine Hyperebene von P (V ). 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äß Satz 3.10 eindeutig durch die d t zugehörigen Gleichungen beschrieben und sind genau die Punkte von U.

24 KAPITEL 3. PROJEKTIVE GEOMETRIE 3.3 Endliche projektive Räume 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 = qt+1 1. Insbesondere q 1 hat P (V ) genau q d +... + q + 1 Punkte. (ii) Die Anzahl der Geraden in U durch einen Punkt ist q t 1 +... + q + 1. (iii) Die Anzahl der Geraden in U ist (qt +...+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ösungen 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). 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 Bö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, t 2,..., t d ) 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 p 1,..., p d+1 Punkte einer rationalen Normkurve C. Wir unterscheiden die Fälle, ob der Punkt (0,..., 0, 1) in {p 1,..., p d+1 } enthalten ist oder nicht. Gelte zuerst p i = (1, t i, t 2 i,..., td i ) für alle i = 1,..., d + 1. Dann ist die Matrix mit den Zeilen p 1,..., p d+1 eine Vandermonde-Matrix und die Punkte sind nach Satz 3.9 unabhängig. Sei nun (0,..., 0, 1) unter den Punkten p 1,..., p d+1. Dann ist die Matrix, deren Zeilen die homogenen Koordinaten von p 1,..., p d+1 sind, von der Form. 1 t 1 t 2 1... t d 1 1 t 2 t 2 2... t d 2... 1 t d t 2 d... t d d 0 0 0... 1 und hat auch eine nichttriviale Determinante, so dass die Punkte auch in diesem Fall unabhängig sind. 3.4.2 Quadriken Definition 3.16 Es sei V ein Vektorraum über einem kommutativen Körper F. Eine Abbildung q : V F heißt quadratische Form auf V, wenn (i) q(kv) = k 2 q(v) für 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ür v V mit Q(v) = 0 aus B(v, x) = 0 für alle x V schon v = 0 folgt. Definition 3.17 Es sei Q eine quadratische Form eines Vektorraums V. Die zu Q gehörige Quadrik von P G(V ) ist die Menge aller Punkte v mit Q(v) = 0. Lemma 3.18 Es sei {v 1,..., v n } eine Basis eines F-Vektorraums V. Zu jeder quadratischen Form Q auf V gibt es a ij F, so dass Q(v) = n j j=1 i=1 a ijk i k j für alle v = n i=1 k iv i V gilt.

26 KAPITEL 3. PROJEKTIVE GEOMETRIE Beweis. Wir setzen a ii := Q(v i ) für i = 1,..., n und a ij := B(v i, v j ) für alle i j. Dann gilt für v = n i=1 k iv i V Q( n n 1 n 1 k i v i ) = Q( k i v i ) + Q(k n v n ) + B(k i v i, k n v n ) i=1 i=1 n 1 = Q( k i v i ) +. = n j=1 i=1 j k i k j a ij i=1 n k i k n a in i=1 Also besteht eine Quadrik in P G(2, q) aus den Punkten mit homogenen Koordinaten (x 0, x 1, x 2 ), die einer quadratischen Gleichung ax 2 0 + bx 2 1 + cx 2 2 + dx 1 x 2 + ex 0 x 2 + fx 0 x 1 = 0 (3.1) genügen. Gilt char(f ) 2, dann kann diese Gleichung auch durch folgende Matrixgleichung beschrieben werden: a f/2 e/2 (x 0, x 1, x 2 ) f/2 b d/2 x 0 x 1 (3.2) e/2 d/2 c x 2 Satz 3.19 Für ungerades q sei C eine Quadrik von P G(2, q), für welche die Matrix in (3.2) nichtsingulär ist. Dann enthält C genau q + 1 Punkte und ist projektiv äquivalent zu der rationalen Normkurve {(1, t, t 2 ) t F q } {(0, 0, 1)} von Punkten, die der quadratischen Gleichung x 2 1 x 0x 2 = 0 genügen. i=1 Beweis. Man bestimmt eine Transformationsmatrix, die die Quadrik C mit Matrix aus 3.2 auf die Quadrik mit der Gleichung x 2 1 x 0x 2 = 0 oder Matrix 0 1 0 0 0 1/2 1/2 0 0 abbildet. Satz 3.20 Für gerades q sei C die durch die Gleichung (3.1) definierte Quadrik von P G(2, q). Wenn ad 2 + be 2 + cf 2 + def 0 gilt, dann ist C projektiv äquivalent zu der rationalen Normkurve {(1, t, t 2 ) t F q } {(0, 0, 1)} und hat q + 1 Punkte. Beweis. Ohne Beweis. Definition 3.21 Eine Quadrik von P G(2, q) heißt nichtsingulär, wenn sie äquivalent zu der rationalen Normkurve mit Gleichung x 2 1 x 0 x 2 = 0 ist. Bemerkung: Die singulären 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örper F nicht quadratisch abgeschlossen ist. Satz 3.22 Es sei C eine nichtsinguläre 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örige quadratische Form auf F 3 q und L eine Gerade von P G(2, q), die drei Punkte R = r, S = s, T = t von C hat. O.B.d.A. können wir t = r + ks für ein k F q 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 := r+hs ein beliebiger anderer Punkt auf L für h F q, 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. Definition 3.23 Ein Oval einer projektiven Ebene ist ein Bogen, durch den in jedem Punkt genau eine Tangente geht. Das berühmteste Ergebnis über Ovale projektiver Ebenen geht auf B. Segre zurück: Satz 3.24 (Segre, 1954/55) Jedes Oval von P G(2, q), q ungerade, ist eine nichtsinguläre Quadrik. Beweis. Ohne Beweis. 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ür 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.

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. 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 A q (n, d) des Codierungstheorieproblems annehmen, heißen optimal. In diesem Kapitel beschäftigen wir uns mit zwei weiteren Optimierungsproblemen. 4.1 Optimierung der Rate bei gegebener Distanz Wir wollen für gegebene Minimaldistanz d und Redundanz r Codes finden, die eine große Informationsrate haben (zur Erinnerung: Die Informationsrate ist R = log q ( C )/n, was im linearen Fall gleich R = (n r)/n ist). Nach Satz 2.9 bedeutet dies, eine (r n)-kontrollmatrix mit größtmöglichem n zu konstruieren, in der je d 1 Spalten linear unabhängig sind. Definition 4.1 Eine Menge S von n Punkten eines projektiven Raums P heißt (n, s)-menge, wenn s die größte Zahl ist, für die jede Teilmenge von s Punkten von S unabhängig ist. Der größte Wert n, für den eine (n, s)-menge in P G(r 1, q) existiert, wird mit max s (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 über F q 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 über F q und H eine Kontrollmatrix. Dann sind nach Satz 2.9 je d 1 Spalten von H linear unabhängig, repräsentieren 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. Korollar 4.3 Für gegebene q, r und d ist max d 1 (r, q) der größte Wert für n, für den es einen [n, n r, d]-code über F q gibt. 29