Codierungstheorie 9783110806267, 9783110158748


176 20 6MB

German Pages [260] Year 1999

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Vorwort
1 Einführung in die Codierungstheorie
1.1 Grundbegriffe und Beispiele
1.2 Lineare Codes
2 Algebraische Grundlagen
2.1 Gruppen
2.2 Endliche Körper
2.3 Charaktere abelscher Gruppen
2.4 Quadratische Reste
2.5 Bilinearformen und quadratische Formen
2.6 Projektive Geometrien
3 Dualität
3.1 Der duale Code
3.2 Gewichtspolynome
3.3 Invariantentheorie und selbstduale Codes
4 Zur Struktur von Codes
4.1 Äquivalenz von Codes
4.2 Unterkörper-Teilcodes
4.3 Die Gewichtshierarchie
4.4 Der Defekt von Codes
4.5 Dividierbarkeit
5 Optimale Codes
5.1 MDS-Codes
5.2 MMD-Codes
6 Zyklische Codes
6.1 Grundlagen
6.2 BCH-Codes
6.3 Quadratische Reste-Codes
7 Codes via Gruppen und Formen
7.1 Gruppenalgebren und Codes
7.2 Reed-Muller-Codes
7.3 Projektive Reed-Muller-Codes
7.4 Kerdock-Codes
8 Asymptotische Resultate
8.1 Asymptotische Schranken
8.2 Klassische Goppa-Codes
9 Decodierung
9.1 Der Peterson-Gorenstein-Zierler-Decodierer
9.2 Der Euklidische Algorithmus in der Decodierung
9.3 Der Berlekamp-Massey-Algorithmus
Literatur
Symbolverzeichnis
Namensverzeichnis
Index
Recommend Papers

Codierungstheorie
 9783110806267, 9783110158748

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

de Gruyter Lehrbuch Willems · Codierungstheorie

1749

I

1999

r

Wolfgang Willems

Codierungstheorie

w

Walter de Gruyter G Berlin · New York 1999 DE

Wolfgang Willems Fakultät für Mathematik Otto-von-Guericke-Universität Magdeburg Universitätsplatz 2 39106 Magdeburg

1991 Mathematics

Subject Classification:

94-01, 94B05, 11T71

® Gedruckt auf säurefreiem Papier, das die US-ANSI-Norm über Haltbarkeit erfüllt.

Die Deutsche Bibliothek — CIP-Einheitsaufnahme

Willems, Wolfgang: Codierungstheorie / Wolfgang Willems. — Berlin ; New York : de Gruyter, 1999 (De-Gruyter-Lehrbuch) ISBN 3-11-015873-6 brosch. ISBN 3-11-015874-4 Gb.

© Copyright 1999 by Walter de Gruyter G m b H & Co. KG, D-10785 Berlin. Dieses Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Printed in Germany. Konvertierung von LATgX-Dateien des Autors: I. Zimmermann, Freiburg. Druck und Bindung: WB-Druck G m b H & Co., Rieden/Allgäu.

für Fabian und Lea

Vorwort

Sowohl in der Wirtschaft als auch im Privaten werden heute immense Daten transferiert und abgespeichert. Ein offensichtliches Anliegen dabei ist, gesendete oder gespeicherte Nachrichten vor zufälligen oder auch absichtlichen Störungen seitens Dritter zu schützen. Mit der Sicherung von Daten gegen aktive Störungen von außen beschäftigt sich die Kryptographie, die nicht Gegenstand dieses Buches ist. Uns interessiert die Sicherung gegen zufällige Fehler. Ursache für derartige Störungen können recht vielfältig sein; etwa atmosphärisches Rauschen, Interferenzen, Kratzer auf einer Compact Disc, usw.. Die Idee der Sicherung ist nun eine sehr einfache. Zur eigentlichen Nachricht wird eine Zusatzinformation, eine gewisse Art Redundanz, gesendet, mittels derer Fehler in der Übertragung erkannt oder sogar die eigentliche Nachricht, sofern sie nicht allzu sehr gestört beim Empfänger ankommt, rekonstruiert werden kann. Man spricht von einer Fehlererkennung beziehungsweise einer Fehlerkorrektur. Die Codierungstheorie beschäftigt sich nun damit, wie man eine Sicherung der Daten effizient, in der Sprache der Wirtschaft kostengünstig, bewerkstelligen kann. Bei manchen Problemen in der Praxis reicht eine Fehlererkennung aus und die Nachricht wird gegebenfalls nochmals angefordert. Als Beispiele seien hier das falsche Lesen eines Strichcodes auf einer Verpackung mittels eines Lichtstifts, das Eintippen einer unkorrekten Kontonummer oder die falsche Übertragung von Daten in einem Computer-Netzwerk genannt. Eine einfache Wiederholung bringt meist Abhilfe. In vielen Situationen ist jedoch eine Rückfrage unmöglich oder man erhält dadurch kein besseres Ergebnis. Hier ist eine Fehlerkorrektur angebracht. In diesen Bereich gehören die Compact Disc, aber auch das Senden von Information von Satelliten zur Erde, etwa von Planetenphotos. Das vorliegende Buch soll eine Einführung in dieses relativ junge und anwendungsbezogene Gebiet der Mathematik geben. Es ist gedacht für Studenten mittleren Semesters, die mit Linearer Algebra und etwas Algebra vertraut sind, insbesondere mit den Grundbegriffen wie Gruppen, Vektorräume, Ringe (insbesondere Polynomringe), Homomorphismen. Die benötigten Vorkenntnisse werden meist in den ersten beiden Semestern des Mathematikstudiums vermittelt. Weitergehende algebraische Kenntnisse, die selten oder gar nicht in Anfängervorlesungen gelehrt werden, haben wir im Kapitel 2 zusammengestellt, so daß die Darstellung des Stoffes in sich geschlossen ist. Dieses Kapitel mag nach der längeren Einführung in die Grundbegriffe der Codierungstheorie stören. Der etwas mehr vorgebildete Leser sollte daher das Kapitel überspringen und nur gelegentlich darauf zurückgreifen. Dem Anfänger wird eine Beschäftigung mit diesen algebraischen Grundlagen emp-

Vorwort

vili

fohlen, da er sonst unter Umständen in späteren Kapiteln stecken bleibt und längere Teile von Kapitel 2 nacharbeiten muß. Bei der Präsentation verfolgen wir nicht immer den kürzesten und elementarsten Weg. Neben der Codierungstheorie geht es uns auch um das Erlernen von algebraischen Methoden und Theorien. So ist ein Paragraph der Invariantentheorie und ihren Konsequenzen für selbstduale Codes gewidmet. Die Reed-Muller-Codes über Primkörpern werden als Radikalpotenzen von modularen Gruppenalgebren aufgefaßt und die Minimaldistanz dann mittels darstellungstheoretischer Methoden berechnet. Die projektiven Reed-Muller-Codes beschreiben wir durch Auswertung von homogenen Polynomen auf projektiven Räumen und die Minimaldistanz beruht dann auf einer Nullstellenabzählung. Vieles im Buch ist heutzutage klassischer Stoff und in der hier gegebenen Form auch in anderen Büchern zu finden. Manches ist jedoch neu oder existiert nur in Originalarbeiten. So wird in Kapitel 3 eine allgemeine Formel für das Gewichtspolynom hergeleitet, die es gestattet, aus wenigen bekannten Koeffizienten alle anderen zu berechnen. Für extreme Strukturen wie MMD-Codes führt dies zu interessanten Charakterisierungssätzen. Es wurde Wei's Gewichtshierarchie und der Defekt von Codes aufgenommen, beides mittlerweile wohlbekannte und oft benutze Invarianten. Dem Dividierbarkeitsatz von Gleason-Pierce und dem Äquivalenzsatz von MacWilliams liegen kürzlich von Ward und Wood gegebene elegante Beweise zugrunde. Der Spezialist mag vieles vermissen, insbesondere die Theorie der GoppaCodes. Wir haben auf die Darstellung dieser Klasse von Codes verzichtet, da das Rechnen von guten und gewinnbringenden Beispielen zu viel an Theorie über algebraische Kurven oder Funktionenkörper erfordert hätte. Stattdessen möchten wir auf die beiden empfehlenswerten Bücher von Stichtenoth [97] und TsfasmanVlädu{ [105] verweisen. Mein Dank gilt an dieser Stelle den Studenten in Mainz und Magdeburg, durch deren Fragen in Vorlesungen und Seminaren ich oft zu einer besseren Darstellung des Stoffes geführt wurde. Danken möchte ich Andreas Faldum für die vielen Stunden gemeinsamer Diskussionen an der Tafel. Manches davon hat Aufnahme in diesem Buch gefunden. Zu danken habe ich ferner Peter Hauck, Wolfgang Lempken, Urs Stammbach und Henning Stichtenoth für hilfreiche Kommentare und kritische Bemerkungen. Besonderer Dank gilt Thorsten Holm für die vielen unermüdlichen und fruchtbaren Diskussionen, die er mit mir während der Entstehung des Buches geführt hat. Sowohl seine Fragen und als auch seine konstruktiven Verbesserungsvorschläge haben sehr zur endgültigen Fassung beigetragen. Schließlich danke ich Herrn Dr. Manfred Karbe vom de Gruyter-Verlag für die angenehme Zusammenarbeit und manch guten Hinweis. Magdeburg, im April 1999

Wolfgang

Willems

Inhaltsverzeichnis

Vorwort

vii

1

Einführung in die Codierungstheorie 1.1 Grundbegriffe und Beispiele 1.2 Lineare Codes

1 1 15

2

Algebraische Grundlagen 2.1 Gruppen 2.2 Endliche Körper 2.3 Charaktere abelscher Gruppen 2.4 Quadratische Reste 2.5 Bilinearformen und quadratische Formen 2.6 Projektive Geometrien

36 36 45 56 60 66 73

3

Dualität 3.1 Der duale Code 3.2 Gewichtspolynome 3.3 Invariantentheorie und selbstduale Codes

81 81 89 100

4

Zur 4.1 4.2 4.3 4.4 4.5

115 115 118 123 128 134

5

Optimale Codes 5.1 MDS-Codes 5.2 MMD-Codes

Struktur von Codes Äquivalenz von Codes Unterkörper-Teilcodes Die Gewichtshierarchie Der Defekt von Codes Dividierbarkeit

140 140 146

χ

Inhaltsverzeichnis

6

Zyklische Codes 6.1 Grundlagen 6.2 BCH-Codes 6.3 Quadratische Reste-Codes

153 153 159 164

7

Codes via Gruppen und Formen 7.1 Gruppenalgebren und Codes 7.2 Reed-Muller-Codes 7.3 Projektive Reed-Muller-Codes 7.4 Kerdock-Codes

176 176 184 195 199

8

Asymptotische Resultate 8.1 Asymptotische Schranken 8.2 Klassische Goppa-Codes

205 205 212

9

Decodierung 9.1 DerPeterson-Gorenstein-Zierler-Decodierer 9.2 Der Euklidische Algorithmus in der Decodierung

217 217 222

9.3

226

Der Berlekamp-Massey-Algorithmus

Literatur

232

Symbolverzeichnis

239

Namensverzeichnis

243

Index

245

1 Einführung in die Codierungstheorie

Im ersten Paragraphen führen wir in die grundlegenden Begriffe und Definitionen der Theorie ein und spezialisieren dann im zweiten auf lineare Codes, d. h. auf Codes, die Vektorräume über endlichen Körpern sind. Bis auf einige wenige Stellen werden wir uns in diesem Buch ausschließlich mit solchen linearen Codes beschäftigen. Durch diese Einschränkung verlieren wir wenig; die in der Praxis verwendeten Codes gehören nahezu alle zu dieser Klasse. Wir werden frühzeitig interessante Beispiele wie Hamming-Codes, Reed-Solomon-Codes und ReedMuller-Codes kennenlernen. Schranken für die Codes beschreibenden Parameter helfen uns bei der Bewertung der Güte.

1.1

Grundbegriffe und Beispiele

Problemstellung 1.1.1. Möchten wir Daten übertragen, so benötigen wir einen Sender, einen Kanal und einen Empfanger. Als Kanal können wir uns ein Übertragungsmedium (etwa die Atmosphäre, eine Telefonleitung) oder ein Speichermedium (etwa ein magnetisches Band, eine Compact Disc) vorstellen. Eine Nachricht, meist in digitaler Form vorliegend, soll über den Kanal dem Empfänger übermittelt werden. Bei solch einer Übertragung verursacht der Kanal häufig zufällige Störungen, so daß die Nachricht in verfälschter Form den Empfänger erreicht. Als Ursachen können zum Beispiel atmosphärisches Rauschen, Interferenzen, Änderung der Magnetisierung oder Kratzer auf der CD auftreten. Der Codierungstheorie liegt nun die Idee zugrunde, durch Senden von zusätzlicher Information zur eigentlichen Nachricht, also einer gewissen Redundanz, Übertragungsfehler zu entdecken oder sogar zu korrigieren. Bei manchen Problemen wird eine Fehlererkennung genügen, etwa wenn eine Rückfrage zum Sender möglich ist. Wird mittels eines Lichtstifts ein Strichcode auf einer Verpackung falsch eingelesen oder eine Kontonummer falsch eingegeben, so wird der Prozeß einfach wiederholt. Es gibt aber eine Fülle von Problemen, bei denen eine Rückfrage unmöglich, unerwüscht ist, oder auch zu keinem besseren Ergebnis führt. Die Fehler sollten also korrigiert werden. Anwendungen einer solchen Fehlerkorrektur findet man zum Beispiel bei der Satellitenübertragung oder auch auf CDs.

2

1 Einführung in die Codierungstheorie

Das Zuordnen der Zusatzinformation zur eigentlichen Nachricht (das Codieren) wird dabei von einem Codierer, die Rückgewinnung der Nachricht aus dem empfangenen Wort (das Decodieren) vom Decodierer ausgeführt. Das zugrunde liegende Modell der Datenübertragung ist also von der Form

Nachricht Sender

— » ·

empfangenes Wort

Codewort

Codierer

— » •

KANAL

— >

decodierte Nachricht

Decodierer



Empfänger

Ein codierungstheoretisches Problem gliedert sich somit im wesentlichen in die drei Teile • Konstruktion eines Codes, der die gewünschte Fehlererkennung bzw. Fehlerkorrektur bewerkstelligt, • Konstruktion eines Codierers, • Konstruktion eines Decodierers. Seitens der Praxis sind dabei stets die entstehenden Kosten von besonderem Interesse. Diese spiegeln sich in der Minimalität der Zusatzinformation, also der Redundanz, und der Schnelligkeit des Codierens und Decodierens wieder. Bemerkung 1.1.2. Bei der digitalen Datenübertragung treten neben der Fehlererkennung und Fehlerkorrektur häufig weitere mathematische Probleme auf. So muß die Nachricht meist zunächst in eine effiziente digitale Form gebracht werden. Die Quellcodierung hat dies zum Thema. Auch ist man manchmal gezwungen, die Nachricht vor unerlaubtem aktivem oder auch passivem Zugriff seitens Dritter zu schützen, etwa beim Homebanking (aktiv) oder Pay-TV (passiv). Hiermit beschäftigt sich die Krytographie (siehe [62], [98]). Bei magnetischen und optischen Platten sollte die Laufzeit zwischen zwei aufeinanderfolgenden Übergängen von Bits nicht zu klein und nicht zu groß sein. Ersteres beruht auf der Auflösung, das zweite in der Synchronisation (siehe [50]). Auf all diese Probleme werden wir im Rahmen dieses Buches nicht eingehen. Stattdessen wird sich der Inhalt damit beschäftigen, wie zufällige, bei der Übertragung entstandene Fehler effizient korrigiert werden können. Bereits einfache Beispiele zeigen, wie man eine Fehlererkennung bzw. Fehlerkorrektur bewerkstelligen kann.

1.1 Grundbegriffe und Beispiele

Beispiele 1.1.3. a) Nachricht Sender

— >

Codewort

Codierer

00 10 01 11





empfangenes Wort KANAL

000 101 011 110





decodierte Nachricht

Decodierer





Empfänger

111

Der Codierer fügt zu der zwei Bit-Nachricht dasjenige Bit hinzu, so daß die Anzahl der Bits gerade wird. Macht der Kanal höchstens einen Fehler, so entdeckt der Decodierer den Fehler, da das empfangene Wort dann eine ungerade Anzahl von Bits enthält. Er weiß jedoch nicht, in welcher Koordinate der Fehler entstanden ist. Somit kann er den Fehler erkennen, aber nicht korrigieren. b) Nachricht Sender



>

00 10 01 11

Codewort

Codierer



>

000000 101010 010101 111111

empfangenes Wort KANAL





101011

decodierte Nachricht

Decodierer



>

Empfänger

101010

Hier wiederholt der Codierer die Nachricht dreimal. Der Decodierer sucht dasjenige Codewort, zu welchem er vom empfangenen Wort die wenigsten Bits ändern muß. Passiert im Kanal höchstens ein Fehler, d. h. wird höchstens ein Bit im Codewort gestört, so wird richtig decodiert, wie man leicht überprüft. c) Als Codeworte wählen wir nun 5-Tupel. 00 10 01 11

00000 01101 10110 11011

01100

01101

4

1 Einführung in die Codierungstheorie

Wieder sucht der Decodierer dasjenige Codewort, welches zum empfangenen Wort den kleinsten „Abstand" hat. Wie in b) wird ein Fehler korrigiert. Wir erreichen somit das gleiche Ergebnis, jedoch mit weniger Aufwand. Hier stellt sich natürlich die Frage, ob wir sogar mit geeigneten binären 4-Tupeln einen Fehler korrigieren können. Die Antwort lautet nein. Dazu beachte man: Verschiedenen Nachrichten müssen wir verschiedene Codeworte zuordnen. Weiterhin müssen sich zwei verschiedene Codeworte in wenigstens 3 Koordinaten unterscheiden, denn sonst kann der Decodierer bei einem Fehler nicht mehr eindeutig das gesendete Wort finden. Sind u = (u \,..., 114) und ν — (ui V4) mit Ui, v¡ 6 {0,1} zwei verschiedene Codeworte, so dürfen wir u¡ Φ Vi für i = 1,2, 3 annehmen. Ist c ein weiteres Codewort, so unterscheidet sich c von u oder ν auf den ersten drei Koordinaten an höchstens einer Stelle, also an höchstens zwei Stellen auf allen vier Koordinaten. Bemerkung 1.1.4. a) In den Beispielen 1.1.3 bilden die Codeworte einen Vektorraum über dem Körper Κ = {0, 1}. Dies muß nicht so sein. Wir werden uns in diesem Buch jedoch weitgehend mit solchen linearen Codes beschäftigen. In diesem Einführungsparagraphen und an wenigen anderen Stellen werden wir allerdings allgemeiner bleiben. b) Die Codeworte müssen nicht wie in 1.1.3 alle die gleiche Länge haben, d. h. n-Tupel für ein festes η sein. Eine Codierung mit variabler Länge führt zu den Faltungscodes, die von vollkommen anderer Struktur sind als die in diesem Buch behandelten sogenannten Blockcodes. c) Mitunter ist es sinnvoll, nicht nur binäre w-Tupel als Codeworte zu betrachten, sondern auch solche über einer beliebigen endlichen Menge. Definition 1.1.5. Sei F eine endliche Menge mit q = \F\ Elementen. Eine Teilmenge C φ 0 von F" = {(ui,..., Un) I u¡ e F} heißt ein Blockcode, kurz auch Code, über dem Alphabet F. Die Elemente von C nennen wir Codeworte, η heißt die Länge von C. Für q = 2 (bzw. q — 3) nennen wir C auch einen binären (bzw. ternären) Code. Ist |C| = 1, so sagen wir, daß C trivial ist. Es kommt beim Alphabet F nur auf die Mächtigkeit |F| = q an. Wir werden daher meist F = {0, 1 , . . . , q — 1} setzen, so daß F, indem wir i mit der Restklasse i + g Ζ e Jj/qï identifizieren, die Struktur einer abelschen Gruppe trägt. Ist q sogar eine Primzahlpotenz, so können wir F mit dem Körper ¥ q identifizieren (siehe 2.2.16). Ein binärer Code wird dementsprechend stets ein Code über dem Körper F2, ein temärer Code einer über dem Körper F3 sein. In den Beispielen 1.1.3 haben wir intuitiv von Abständen gesprochen. Dies präzisieren wir nun durch die von R. W. Hamming im Jahr 1950 eingeführte

1.1 Grundbegriffe und Beispiele

5

Definition 1.1.6. Sei F ein Alphabet und u — (u i,..., Elemente in Fn. Dann heißt

u„), ν =

(v\,...

,vn)

d(M, v) = |{i I Ui φ υ,·}| die Hamming-Distanz

von u und v.

Satz 1.1.7. Die Hamming-Distanz alle u, v,w € Fn

definiert auf Fn eine Metrik, d. h. es gilt für

(i) d(w, ν) > 0 und d(u, ν) — 0 genau für u = v. (ii) d(w, ν) = d(t/, u). (iii) d(w, ν) < d(w, w) + d(ii), υ). Ist F bezüglich + eine abelsche invariant, d. h. es gilt ferner

Gruppe, so ist die Hamming-Distanz

translations-

(iv) d (M + w, ν + w) = d(«, v). Beweis, a) Die Aussagen (i) und (ii) sind offensichtlich. Nach Definition der Hamming-Distanz ist d(w, v) die kleinste Anzahl von Koordinatenänderungen, die man braucht, um κ in υ zu überführen. Diese Zahl ist natürlich kleiner oder gleich der kleinsten Anzahl von Koordinatenänderungen, die wir benötigen, um zunächst m in ui und dann w in ν zu überführen. Also gilt (iii). Sei nun F bezüglich + eine abelsche Gruppe. Dann ist «, φ v¿, genau falls M, + wl φ v¡ + w¡ ist. Also gilt d(M, υ) = |{i I Ui φ υ,·}| = \{i | u¡ + w¡ φ v¡ + u>,}| = d(M + w, ν + w) für alle u, v, w e F".



Die Hamming-Distanz spielt nicht nur in der Codierungstheorie eine zentrale Rolle. Sie wird auch zunehmend bei der Beschreibung von genetischen Prozessen verwendet (siehe [23]). Neben der Hamming-Distanz treten bei manchen codierungstheoretischen Problemen auch andere Metriken auf. Wir erwähnen hier die Lee-Distanz (siehe Aufgabe 1.2.6), die bei Phasenmodulationen (siehe Chap. 8 in [6]) geeigneter als die Hamming-Distanz ist. Damit werden wir uns nicht befassen. Im folgenden wird d ( . , . ) stets die Hamming-Distanz bezeichnen. Definition 1.1.8. Sei F ein Alphabet und r e No- Für u € F" definiert Br(w) = { υ I υ 6 F " , d(u,v) die Kugel vom Radius r um den Mittelpunkt u in Fn.

< r)

6

1 Einführung in die Codierungstheorie

Lemma 1.1.9. Ist |F| = q und r e No, so hatfìir jedes u e Fn die Kugel Β r ( u ) gleich viele Elemente, nämlich |B r («)| =

¿Q( | ist. Im Fall q = 2 passiert ein Bit den Kanal ungestört mit Wahrscheinlichkeit größer j . Wegen (ii) ist die Wahrscheinlichkeit der Verfälschung in ein vorgegebenes anderes Symbol gleich < ^. Kanäle mit den Eigenschaften (i) und (ii) nennen wir q-när symmetrisch. Im Spezialfall q = 2 heißt der Kanal binär symmetrisch. Unter diesen Voraussetzungen ist die bedingte Wahrscheinlichkeit P(w|c'), daß c' gesendet und ν mit d(i>, c') — l empfangen wird, gleich p(l,|c,)

Die Bedingung ρ