Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.1
Codierungstheorie
Prof. Dr.-Ing. Thomas Kürner
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.2
Dieses Skript basiert in Teilen auf dem Vorlesungsmanuskript der gleichnamigen an der TU Braunschweig angebotenen Vorlesung von Prof. Dr.-Ing. Andreas Czylwik aus dem Wintersemester 2001/2002.
Die vorliegende Version wurde von Dipl.-Ing. Andreas Hecker in den Jahren 2004 -2005 erstellt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.3
Organisatorisches
• Vorlesung und Übung im Wintersemester (2 + 1 SWS, 4CP):– donnerstags; 13.15h – 14.45h; SN 22.2– donnerstags; 15.00h – 15.45h; SN 22.2
• Betreuer: Dipl.-Ing. M. Sc. Thomas Jansen• Prüfung: Klausur oder mündliche Prüfung (wird in der VL rechtzeitig
bekanntgegeben)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.4
Ziele:Die Vorlesung soll das Verständnis für die informationstheoretischen Grenzen der Datenübertragung entwickeln und Kenntnisse zu Verfahren zur Quellen- und Kanalcodierung in Theorie und Anwendung vermitteln.
Inhalt:Einführung1. Grundlagen der Informationstheorie2. Grundzüge der Kanalcodierung3. Einzelfehlerkorrigierende Blockcodes4. Bündelfehlerkorrigierende Blockcodes5. Faltungscodes6. Spezielle Codierungstechniken
Ziele und Inhalt der Vorlesung
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.5
LiteraturLiteratur zur Vorlesung:
– H. Rohling: Einführung in die Informations- und Codierungstheorie, Teubner– R. Togneri, C.J.S. deSilva: Fundamentals of Information Theory and Coding
Design, Chapman & Hall/CRC
Weiterführende Literatur:– B. Friedrichs: Kanalcodierung, Springer– H. Schneider-Obermann: Kanalcodierung, Vieweg– M. Bossert: Kanalcodierung, Teubner– J. Bierbrauer: Introduction to Coding Theory, Chapman & Hall/CRC– O. Mildenberger: Informationstheorie und Codierung, Vieweg– S. Lin, D. J. Costello Jr.: Error Control Coding, Pearson Prentice Hall
Literatur zur digitalen Übertragung:– J.G. Proakis, M. Saleki: Grundlagen der Kommunikationstechnik, Pearson
Studium
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.6
EinführungCode / Codierung:Ein Code ist eine Vorschrift für die eindeutige Zuordnung von Zeichen eines Zeichenvorrates zu denjenigen eines anderen Zeichenvorrates.
Die Umwandlung von dem einen in den anderen Zeichenvorrat wird als Codierung bezeichnet (codieren).
Die Codierung wird je nach Problemstellung unterteilt in:– Kryptologie– Quellencodierung– Kanalcodierung
Bsp.: Die Zuordnung von Städtenamen zu Autokennzeichen:Berlin → BBraunschweig → BS
} Gegenstand dieser Vorlesung
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.7
Codierung zur Verschlüsselung (Kryptologie):Nachrichten sollen vor unberechtigtem Abhören geschützt werden. Die Entschlüsselung kann nur mit Kenntnis eines Code-Schlüssels erfolgen.
Quellencodierung (source coding):Nachrichten werden auf eine minimale Anzahl von Symbolen ohne Informationsverlust (Reduktion von Redundanz) komprimiert. Bei einer weitergehenden Kompression wird toleriert, dass Information verloren geht (z. B. bei Bild- und Tonübertragung).
Kanalcodierung (error control coding):Nachrichten sollen durch kontrolliertes Hinzufügen von Redundanz gegen Übertragungsfehler geschützt werden. Anwendungen finden sich u. a. bei der zu sichernden Datenübertragung über Wellenleiter und Funkkanäle (insbesondere Mobilfunkkanäle) oder bei der Datenspeicherung.
Einführung
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.8
Blockschaltbild eines Systems zur digitalen Nachrichtenübertragung:
Einführung
Digitale Quelle
Digitale Senke
Diskreter Kanal
Quelle Quellen-Codierer
Kanal-Codierer Modulator
Übertragungskanal Störung
Senke Quellen-Decodierer
Kanal-Decodierer Demodulator
A
D
D
A
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.9
vereinfachtes Modell:
Einführung
Kanalcodierung zur FehlerkorrekturFEC – forward error correction
Die Kanalqualität wird durch die Restfehlerwahrscheinlichkeit nach der Decodierung bestimmt. Die Datenrate aber ist unabhängig von der Kanalqualität.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.10
Einführung
Übersicht über einige FEC-Codes:
Faltungscodes
FEC-Codes
verkettete CodesBlockcodes
rekursiv nicht rekursivlinearnicht linear seriell Produktcodes parallel
zyklischnicht zyklisch
Hamming RS BCH zykl. HammingReed-Muller Abrahamson
Die grau unterlegten Codes werden in dieser Vorlesung nicht behandelt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.11
Kanalcodierung zur FehlerdetektionCRC – cyclic redundancy check;Einsatz in Kombination mit ARQ-Verfahren (automatic repeat request)
Einführung
Dieses Verfahren macht einen Rückkanal notwendig, weswegen es nicht für „Broadcast“- bzw. zeitkritische Anwendungen einsetzbar ist. Das Einfügen von Redundanz geschieht adaptiv, d. h. nur im Fehlerfall wird Redundanz hinzugefügt. Die Restfehlerwahrscheinlichkeit ist somit unabhängig, die Datenrate hingegen abhängig von der Kanalqualität.
ARQ wird z. B. bei GPRS eingesetzt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.12
Durch Kanalcodierung kann die Fehlerwahrscheinlichkeit beliebig reduziert werden, wenn die Datenrate kleiner als die Kanalkapazität ist.
Claude E. Shannon, Warren Weaver,The mathematical theory of communication,Urbana, University of Illinois Press, 1949
Leider gibt Shannon, der Begründer der Informationstheorie, für sein Theorem keine praktische Konstruktionsvorschrift an.
Einführung
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.13
Kanalstörungseffekt undBeispiele für Korrekturergebnisse:
Einführung
Bild vor der Übertragung:
Bilder nach der Übertragung:
über BSC-Kanal mit perr = 0,005ohne Kanalcodierung
über BSC-Kanal mit perr = 0,5ohne Kanalcodierung,aber auch nicht korrigierbar!
über BSC-Kanal mit perr = 0,005mit (7,4,3)-Hamming-Kanalcodierung(nicht alle Fehler wurden beseitigt)
über BSC-Kanal mit perr = 0,005mit (31,16,15)-BCH-Kanalcodierung(nahezu fehlerfrei)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.14
Grundgedanke der KanalcodierungDie zum Schutz der zu übertragenden Nachricht zugefügte Redundanz dient der Fehlererkennung (FE) und eventuell der Fehlerkorrektur (FK). Zuordnung im Codierer am Beispiel einer Blockcodierung (BC):
Bei der BC wird ein k-stelliger Eingangsvektor u = (u1, ... , uk) in einenn-stelligen Ausgangsvektor x = (x1, ... , xn) umgewandelt.Als Coderate RC wird dann definiert:
Als Maß für die Leistungsfähigkeit eines Codes steht die minimale Hamming-Distanz dmin, d. h. die minimale Anzahl unterschiedlicher
Stellen aller möglichen Codewortpaare.
Einführung
nkR =C (E1)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.15
Einführung
Codewürfel mit n = 3 und
– RC = 1– dmin = 1– keine FE und
keine FK möglich
– RC = 2/3– dmin = 2– ein Fehler erkennbar;
kein Fehler korrigierbar
– RC = 1/3– dmin = 3– zwei Fehler erkennbar;
ein Fehler korrigierbar
k = 3 k = 2 k = 1
gültiges Codewort ungültiges Codewort
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.16
1 Grundlagen der InformationstheorieDie Informationstheorie stellt die mathematische Beschreibung der Übertragung von Nachrichten dar.
Zentrale Fragestellungen behandeln die – quantitative Berechnung des Informationsgehalts von Nachrichten,– Bestimmung der Übertragungskapazität von Übertragungskanälen und– Analyse und Optimierung von Quellen- und Kanalcodierung.
Nachricht aus der Sicht der Informationstheorie:nicht relevant relevant
nich
t re
dund
ant
redu
ndan
t gesamte Nachricht
Für die Informations-übertragungnotwendiger Anteil
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.17
1.2 Mathematische Beschreibung von NachrichtenNachrichten werden qualitativ eingeordnet. Die Bedeutung ist umso größer, je weniger die Nachricht vorhersagbar ist.
1 Grundlagen der Informationstheorie
Bedeutung
Wahrscheinlichkeit
Beispiel:• Morgen geht die Sonne auf.• Morgen gibt es schlechtes Wetter.• Morgen gibt es ein starkes Unwetter,
bei dem der Strom ausfallen wird.
Die Nachricht einer digitalen Quelle entspricht einer Folge von Zeichen.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.18
Entscheidungsgehalt H0 einer Quelle:
1.2 Mathematische Beschreibung von Nachrichten
(1.13)H0 beschreibt die Anzahl der für die Auswahl der Nachricht benötigten Binärentscheidungen. Dabei berücksichtigt sie nicht die Auftrittswahrscheinlichkeit der Quellensymbole.
Beispiele: deutschsprachiger Text mit 71 alphanumerischen Zeichen als Quelle(26⋅2 Buchstaben, 3⋅2 Umlaute, ß, 12 Sonderzeichen einschl. Leerzeichen „“ ()-.,;:!?)
H0 = ld(71) = ln(71)/ln(2) = 6,15 bit/Zeicheneine Seite deutschsprachiger Text mit 40 Zeilen und 70 Zeichen pro Zeileals Quelle, d.h. insgesamt N = 7140⋅70 mögliche unterschiedliche Seiten
H0 = ld(7140⋅70) = 40 ⋅ 70 ⋅ ld (71) = 17,22 kbit/Seite
Gegeben sei eine Quelle mit einem Zeichenvorrat von N Zeichen. Dann ist H0 definiert als:
H0 = ld(N) bit/Zeichen (bit = binary digit)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.19
Diese Bedingungen erfüllt die allgemeine Lösung I(xi) = −k ⋅ logb(p(xi)).
1.2 Mathematische Beschreibung von Nachrichten
Informationsgehalt I:
– I(xi) ≥ 0 für 0 ≤ p(xi) ≤ 1– I(xi) → 0 für p(xi) → 1– I(xi) > I(xj) für p(xi) < p(xj) – I(xi,xj) = I(xi) + I(xj) für p(xi,xj) = p(xi) ⋅ p(xj), d. h.
für zwei aufeinander folgende statistisch unabhängige Zeichen xi und xj
Definition des Informationsgehalts:(mit k = 1 und b = 2)
nbit/Zeiche)(
1ld)( ⎟⎟⎠
⎞⎜⎜⎝
⎛=
ii xp
xI (1.14)
Gegeben sei ein Zeichenvorrat (Alphabet) X mit X = {x1, ... , xN} und den einzelnen Auftrittswahrscheinlichkeiten der Zeichen p(x1), ... , p(xN). Dies-bezüglich soll I die Bedeutung einer Nachricht in Abhängigkeit ihrer Wahrscheinlichkeit p mathematisch abbilden [I = f(p)] . Dazu sollen die folgenden Eigenschaften erfüllt sein:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.20
1.2 Mathematische Beschreibung von Nachrichten
∑=
⋅==N
iiii xIxpxIXH
1)()()()(
Entropie H(X):
Redundanz einer Quelle RQ:Informationsgehalt einer Quelle, der aufgrund der speziellen Auftrittswahr-scheinlichkeiten der Zeichen nicht ausgenutzt wird:
RQ = H0 − H(X) (1.16)
(1.15)
H(X) ist der mittlere Informationsgehalt einer Quelle:
nbit/Zeiche)(
1ld)(1
∑=
⎟⎟⎠
⎞⎜⎜⎝
⎛⋅=
N
i ii xp
xp
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.21
1.2 Mathematische Beschreibung von Nachrichten
Entropie einer binären Quelle:
0.0
0.2
0.4
0.6
0.8
1.0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
S(p) / bit
p
(1.18)
(1.17)
Eine binäre Quelle besitzt einen Zeichenvorrat X mit genau zwei Zeichen:X = {x1, x2} mit den Auftrittswahrscheinlichkeiten p(x1) = p und p(x2) = 1−p. Die Entropie H(X) ist dann: H(X) = −p ld(p) − (1 − p) ld(1 − p).Diese Funktion in Abhängigkeit von p wird auch Shannon-Funktion genannt:
S(p) = H(X).
Mathematikwiederholung:
( )
( ) 0loglim
log1log
0=⋅
−=⎟⎠⎞
⎜⎝⎛
→xx
xx
x
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.22
1.2 Mathematische Beschreibung von Nachrichten
∑∑∑=== ⋅
⋅=⋅−⋅=−N
i ii
N
ii
N
i ii Nxp
xpNxpxp
xpNXH111 )(
1ld)(ld)()(
1ld)(ld)(
1ln −≤ xx
-1.0
0.0
1.0
1.0 2.0 x
ln(x)
x − 1
Die Entropie wird maximal für gleichwahrscheinliche Zeichen, d. h.:H(X) ≤ H0 = ld N.
Beweis:
Ausnutzung der Ungleichung:
)1(2ln
1ld1ln −≤⇒−≤ xxxx
∑=
⎟⎟⎠
⎞⎜⎜⎝
⎛−
⋅⋅≤−
N
i ii Nxp
xpNXH1
1)(
12ln
1)(ld)(
0112ln
1)(12ln
11
=⎟⎠⎞
⎜⎝⎛ −⋅=⎟
⎠⎞
⎜⎝⎛ −= ∑
= NNxp
N
N
ii
Mit
q.e.d.
(1.19)
(1.20)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.23
1.3 Methoden und Algorithmen der QuellencodierungDie Quellencodierung wird in der Nachrichtentechnik zur Verminderung des zu übertragenden Datenvolumens eingesetzt. Beispiele sind in vielen häufig gebrauchten Anwendungen wie Datenkomprimierung durch „Zippen“, MP3- oder MPEG-Komprimierung zu finden, ebenso in der GSM-Sprachcodierung, wo zuerst eine Digitalisierung stattfinden muss.
Bezüglich der Übertragung über einen Binärkanal werden im Folgenden Entwürfe für Binärcodierungen diskreter Quellen betrachtet.
1 Grundlagen der Informationstheorie
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.24
1.3.1 Aufgaben der QuellencodierungGegeben ist der Zeichenvorrat X = {x1, ... , xN} einer beliebigen Quelle.Bei der Quellencodierung wird einem Zeichen xi des Zeichenvorrates Xein Binärcode der Codewortlänge L(xi) zugewiesen. Dabei ist das Ziel der Codierung die Minimierung der mittleren Codewortlänge :
1.3 Methoden und Algorithmen der Quellencodierung
L
∑=
⋅==N
iiii xLxpxLL
1)()()(
x1 1001x2 011
xN 010111L(xN)
....
....Beispiele für binäre Codierungen von Zeichen:– ASCII-Code:
feste Codewortlänge L(xi) = 8 (Blockcode)– Morse-Code:
Punkt-Strich-Alphabet mit Pause zur Trennung der Codewörter; häufig auftretende Buchstaben werden kurzen Codeworten zugeordnet.
(1.21)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.25
Präfix-Eigenschaft eines Codes:Diese Eigenschaft bedeutet, dass kein Codewort gleichzeitig den Beginn eines anderen Codewortes bilden kann. Eine gegebene Bitfolge ist dann ohne Verwendung von Trennungsregeln eindeutig („kommafreier Code“).
1.3.1 Aufgaben der Quellencodierung
x1 → 0x2 → 01x3 → 10x4 → 100
Die eindeutige Decodierung einer Bitfolge ist nicht möglich. Z. B. sind für die Sequenz 010010 mögliche Decodier-Ergebnisse: x1x3x2x1, x2x1x1x3, x1x3x1x3, x2x1x2x1, x1x4x3 .
Beispiele für Codes mit und ohne Präfix-Eigenschaft:x1 → 0x2 → 10x3 → 110x4 → 111
Die eindeutige Decodierung einer Bitfolge ist gewährleistet. Z. B. liefert die Decodierung der Sequenz 010010110111100 eindeutig: x1x2x1x2x3x4x2x1 .Für eine erfolgreiche Decodierung ist aber die Synchronisation auf den Anfang der Sequenz notwendig.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.26
Codes mit Präfix-Eigenschaft können mit Hilfe eines Entscheidungsbaums decodiert werden.
1.3.1 Aufgaben der Quellencodierung
x1 → 0x2 → 10x3 → 110x4 → 111
(nicht zu verwechseln mit der Redundanz RQ einer Quelle)Redundanz eines Codes RC: )(C XHLR −=
(1.22)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.27
Kraft‘sche Ungleichung:Ein Binärcode mit Präfix-Eigenschaft und den CodewortlängenL(x1), L(x2), ... , L(xN) existiert nur dann, wenn gilt:
1.3.1 Aufgaben der Quellencodierung
121
)( ≤∑=
−N
i
xL i
Beweisidee:Die Länge der Baumstruktur ist gleich der maximalen Codewortlänge Lmax:
Lmax = max(L(x1), L(x2), ... , L(xN)).Das Codewort xi in der Ebene L(xi) eliminiert der möglichen Codeworte in der Ebene Lmax .Die Summe aller eliminierten Codeworte ist kleiner oder gleich der
maximalen Anzahl der Codeworte in der Ebene Lmax: .
)(max2 ixLL −
maxmax 221
)( LN
i
xLL i ≤∑=
−
Das Gleichheitszeichen in der Kraft‘schen Ungleichung gilt, wenn alle Endpunkte des Codebaums mit Codewörtern besetzt sind.
(1.23)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.28
Untere Grenze der mittleren Codewortlänge :Jeder Präfix-Code hat eine mittlere Codewortlänge , die mindestens der Entropie der Quelle H(X) entspricht: .
1.3.1 Aufgaben der Quellencodierung
Beweisidee:Der Beweis ist ähnlich wie der Beweis zu Ungleichung (1.19). Zusätzlich wird die Kraft‘sche Ungleichung (1.23) ausgenutzt.
Das Gleichheitszeichen ist erfüllt, wenn gilt:und die Codewortlängen gewählt werden zu: L(xi) = Ki = I(xi).
LL
)(XHL ≥
xi p(xi) Codeworte x1 1/2 1 x2 1/4 00 x3 1/8 010 x4 1/16 0110 x5 1/16 0111
( ) iKixp 2
1)( =
Bei allgemeinen p(xi) ist I(xi) durch Aufrundungin einen Integer zu überführen, so dass gilt:
I(xi) ≤ L(xi) < I(xi) + 1. (1.27)Die L(xi) erfüllen dann weiterhin Ungl. (1.23).
815)( == XHLFür das Beispiel rechts gilt: .
(1.24)
(1.25)(1.26)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.29
Shannon‘sches Codierungstheorem:Für jede Quelle lässt sich eine Binärcodierung finden mit:
1.3.1 Aufgaben der Quellencodierung
1)()( +<≤ XHLXH
Beweisidee:Ungl. (1.27) mit p(xi) multiplizieren und über alle i aufsummieren.
Die linke Seite von Ungl. (1.27) wird für den Nachweis, dass es bei dieser Bedingung einen Code mit Präfix-Eigenschaft gibt, verwendet:
)()(
1 2)()(ld)( ii
xLiixpi xpxLxI −≥⇒≤⎟
⎠⎞⎜
⎝⎛=
1)(211
)( ∑∑==
− =≤N
ii
N
i
xL xpiSummation über alle i:
Das Ergebnis ist Ungl. (1.23), die die Existenz von Präfix-Codes gewährleistet. q.e.d.
(1.28)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.30
1.3.2 Shannon‘sche CodierungAlgorithmus:1. Ordnen der Auftrittswahrscheinlichkeiten2. Bestimmung der Codewortlängen L(xi) entsprechend Ungl. (1.27)3. Berechnung der akkumulierten
Auftrittswahrscheinlichkeiten Pi:
1.3 Methoden und Algorithmen der Quellencodierung
∑−
==
1
1)(
i
jji xpP
i p(xi) I(xi) L(xi) Pi Code1 0,22 2,18 3 0,00 000 2 0,19 2,40 3 0,22 001 3 0,15 2,74 3 0,41 011 4 0,12 3,06 4 0,56 1000 5 0,08 3,64 4 0,68 1010 6 0,07 3,84 4 0,76 1100 7 0,07 3,84 4 0,83 1101 8 0,06 4,06 5 0,90 111009 0,04 4,64 5 0,96 11110
4. Codeworte sind die L(xi)Nachkommastellen derBinärdarstellung von Pi.
Beispiel:0,90 = 1⋅2−1 + 1⋅2−2 + 1⋅2−3 +
0⋅2−4 + 0⋅2−5 + 1⋅2−6 +1⋅2−7 + 0⋅2−8 + 0⋅2−9 +1⋅2−10 + ...
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.31
Umwandeln einer Dezimalzahl in eine Dualzahl:Für die Dezimalzahl 0,9 als Beispiel soll die Dualzahl entwickelt werden. Diese Suche entspricht einer Koeffizientensuche der folgenden Gleichung, die dann folgendermaßen gelöst werden kann:
1.3.2 Shannon‘sche Codierung
0,90⋅2 = 0,8 + 10,80⋅2 = 0,6 + 10,60⋅2 = 0,2 + 10,20⋅2 = 0,4 + 0 ...
0,90 = a1⋅2−1 + a2⋅2−2 + a3⋅2−3 + a4⋅2−4 + ... | ⋅21,80 = 1 + 0,80 = a1⋅20 + a2⋅2−1 + a3⋅2−2 + a4⋅2−3 + ...
Da 20 = 1, ist auch a1 = 1 unter der Voraussetzunga2⋅2−1 + a3⋅2−2 + a4⋅2−3 + ... < 1
Dies entspricht aber gerade der Kraft‘schen Ungleichung (Gl. 1.23), die bewiesen ist.Durch wiederholtes Multiplizieren lassen sich aufdiese Weise die Koeffizienten bestimmen.Das Verfahren lässt sich dann vereinfacht schreiben:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.32
1.3.2 Shannon‘sche Codierung
Baumdarstellung des im Beispiel betrachteten Shannon-Codes:
Das Baumdiagramm zeigt den Nachteil der Shannon‘schen Codierung. Nicht alle Endpunkte des Baums sind besetzt, d. h. die Codewortlänge kann reduziert werden. Dieser Code ist somit nicht optimal.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.33
1.3.3 Huffman-Codierung1.3 Methoden und Algorithmen der Quellencodierung
Die Huffman-Codierung basiert auf einem rekursiven Vorgehen. Der Grundgedanke ist, dass die beiden Symbole mit den kleinsten Wahrscheinlichkeiten die gleiche Codewortlänge besitzen müssen, denn andernfalls ist eine Reduzierung der Codewortlänge möglich. Die Symbole mit den kleinsten Wahrscheinlichkeiten bilden somit den Startpunkt.
Algorithmus:1. Ordnen der Symbole entsprechend ihrer Wahrscheinlichkeit2. Zuordnung von 0 und 1 zu den beiden Symbolen mit der kleinsten
Wahrscheinlichkeit3. Zusammenfassen der beiden Symbole mit der kleinsten
Wahrscheinlichkeit xN−1 und xN zu einem neuen Symbol mit der Wahrscheinlichkeit p(xN−1 ) + p( xN)
4. Wiederholung der Schritte 1 - 3, bis nur noch ein Symbol übrig bleibt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.34
Codierung des Beispiels aus 1.3.2:
1.3.3 Huffman-Codierung
0
0
1
1
1 0
0
1
01
1
1
10,1
0,18
0,26
0,41
0,59
1,0
7
1
4
5
6
3
8
2
0,22
0,19
0,15
0,12
0,08
0,07
0,07
0,06
9 0,04
0,14
0,33
10
11
001
011
0001
0100
0101
00000
00001
0
0
0
i Codierung Codep(xi)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.35
Baumstruktur des Huffman-Code-Beispiels:
1.3.3 Huffman-Codierung
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.36
1.4 Diskrete Quellenmodelle1.4.1 Diskrete Quelle ohne Gedächtnis
1 Grundlagen der Informationstheorie
Berechnet werden soll zuerst die Verbundentropie von Zeichenketten:
Für M unabhängige Zeichen der gleichen Quelle gilt:H(X1, X2, ... , XM) = M ⋅ H(X)
(1.29)
(1.30)
Betrachtet werden die Codiermöglichkeiten für Quellen, deren Zeichen statistisch unabhängig voneinander ausgegeben werden.
)()(),( YHXHYXH +=
))((ld)()())((ld)()(1111
ypypxpxpxpypN
kkk
N
ii
N
iii
N
kk ⋅⋅−⋅⋅−= ∑∑∑∑
====
[ ]))((ld))((ld)()(1 1
ypxpypxpN
i
N
kkiki +⋅⋅−= ∑ ∑
= =
)),((ld),(),(1 1
yxpyxpYXHN
i
N
kkiki−= ∑ ∑
= =
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.37
1.4.1 Diskrete Quelle ohne Gedächtnis
Die Codierung von Zeichenketten stellt eine effizientere Methode dar, wie die allgemeine Form des Shannon‘schen Codierungstheorems zeigt:
Der Nachteil bei dem Verfahren steckt in dem stark ansteigenden Codierungsaufwand, da die Zahl der möglichen Zeichen exponentiell zunimmt.
Als Beispiel wird eine binäre Quelle mit X = {x1, x2} und den Auftritts-wahrscheinlichkeiten p(x1) = 0,2 bzw. p(x2) = 0,8 betrachtet. Die Entropie der Quelle ist damit H(X) = 0,7219 bit/Zeichen.Als Codieralgorithmus wird die Huffman-Codierung verwendet.
(1.31)
),,( 1 MM XXL KH(X1,...,XM) ≤ ≤ H(X1,...,XM) + 1
LM ⋅M⋅H(X) ≤ ≤ M⋅H(X) + 1
LH(X) ≤ ≤ H(X) + 1/M
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.38
1.4.1 Diskrete Quelle ohne Gedächtnis
Codierung von Einzelzeichen: Zeichen p(xi) Code L(xi) p(xi)⋅L(xi)x1 0,2 0 1 0,2x2 0,8 1 1 0,8
Σ = 1Mittlere Codewortlänge: nbit/Zeiche1=L
Zeichen-paar
p(xi,xj) Code L(xi,xj) p(xi,xj)⋅L(xi,xj)
x1x1 0,04 101 3 0,12 x1x2 0,16 11 2 0,32 x2x1 0,16 100 3 0,48 x2x2 0,64 0 1 0,64
Σ = 1,56
Codierung vonZeichenpaaren:
Mittlere Codewortlänge: nbit/Zeiche 78,0=L
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.39
1.4.1 Diskrete Quelle ohne Gedächtnis
Codierung vonZeichentripeln:
Zeichen-tripel
p(xi,xj,xk) Code L(xi,xj,xk) p(xi,xj,xk)⋅L(xi,xj,xk)
x1x1x1 0,008 11111 5 0,040 x1x1x2 0,032 11100 5 0,160 x1x2x1 0,032 11101 5 0,160 x1x2x2 0,128 100 3 0,384 x2x1x1 0,032 11110 5 0,160 x2x1x2 0,128 101 3 0,384 x2x2x1 0,128 110 3 0,384 x2x2x2 0,512 0 1 0,512
Σ = 2,184
MittlereCodewortlänge:
nbit/Zeiche 728,0=L
Zusammenfassung: M H(X) H(X) + 1/M1 0,7219 1,0 1,72192 0,7219 0,78 1,22193 0,7219 0,728 1,0552
L
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.40
1.4.2 Diskrete Quelle mit Gedächtnis1.4 Diskrete Quellenmodelle
Hier werden die Codiermöglichkeiten für Quellen betrachtet, deren Zeichen abhängig voneinander ausgegeben werden. Dieser Umstand trifft auf reale Quellen zu, wenn zwischen den Einzelzeichen Korrelationen auftreten. In diesem Fall berechnet sich die Verbundentropie zu:
∑ ∑= =
⋅−=N
i
N
kikki xypyxpXYH
1 1))|((ld),()|(mit der bedingten Entropie
(1.32a)
(1.32b)
)|()(),( XYHXHYXH +=
))|((ld),())((ld)()|(1 11 1
xypyxpxpxpxypN
i
N
kikki
N
i
N
kiiik ⋅−⋅⋅−= ∑ ∑∑ ∑
= == =
[ ]))|((ld))((ld)|()(1 1
xypxpxypxpN
i
N
kikiiki +⋅⋅−= ∑ ∑
= =
)),((ld),(),(1 1
yxpyxpYXHN
i
N
kkiki−= ∑ ∑
= =
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.41
1.4.2 Diskrete Quelle mit Gedächtnis
Zwischen der Quellenentropie und derbedingten Entropie gilt die Beziehung: H(Y) ≥ H(Y | X )
Beweis:
mit p(xi,yk) = p(xi) ⋅ p(yk|xi)
∑ ∑= =
⎟⎟⎠
⎞⎜⎜⎝
⎛−⋅⋅≤−
N
i
N
k ik
kki xyp
ypyxpYHXYH1 1
1)|(
)(2ln
1),()()|(
0),()()(2ln
1)()|(1 11 1
=⎥⎦
⎤⎢⎣
⎡−≤− ∑ ∑∑ ∑
= == =
N
i
N
kki
N
i
N
kki yxpypxpYHXYH
Abschätzung mit: )1(2ln
1ld1ln −≤⇒−≤ xxxx
q.e.d.
(1.33)
∑ ∑= =
⎟⎟⎠
⎞⎜⎜⎝
⎛⋅=−
N
i
N
k ik
kki xyp
ypyxpYHXYH1 1 )|(
)(ld),()()|(
∑ ∑∑= ==
⋅−=⋅−=N
i
N
kkki
N
kkk ypyxpypypYH
1 11))((ld),())((ld)()(
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.42
1.4.2 Diskrete Quelle mit Gedächtnis
Mit diesem Ergebnis ist demnach, ausgehend von gleichwahrscheinlichen Einzelzeichen, die Entropie einer Quelle mit Gedächtnis kleiner als die Entropie einer Quelle ohne Gedächtnis. Anders ausgedrückt: Bei Quellen mit Gedächtnis ist eine wesentlich effizientere Quellencodierung durch Codierung von Zeichenfolgen durch Ausnutzung der Korrelationen unter den Einzelzeichen möglich, als wenn die Quelle als gedächtnislos betrachtet werden würde.
Gedächtnisbehaftete Quellen können als Markoff-Prozesse modelliert werden. Die zugehörigen Quellenmodelle werden als Markoff-Quellen bezeichnet.
Beispiel für Korrelationen in deutschen Texten: Die Wahrscheinlichkeit, dass nach einem „Q“ ein „u“ folgt, ist nahe 1.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.43
1.4.2 Diskrete Quelle mit Gedächtnis
Markoff-Quelle:Eine diskrete Quelle mit Gedächtnis kann allgemein als Markoff-Quellebeschrieben werden. Ihre Grundlage sind die Markoff-Prozesse.Als Basis wird eine Folge von zeitlich hintereinander auftretenden Zufallsvariablen betrachtet: z0, z1, z2, ..., zn. Sind diese statistisch unabhängig, so gilt allgemein:
)()...,,,|( 021,...,,| 021 nznnnzzzz zfzzzzfnnnn
=−−−−
Sind die zi statistisch abhängig, so erweitert sich die Gleichung zu:
),...,|(),...,,|( 1,...,|021,...,,| 1021 mnnnzzznnnzzzz zzzfzzzzfmnnnnnn −−−− −−−−
=
Häufig werden Markoff-Prozesse erster Ordnung betrachtet (m = 1):
)|(),...,,|( 1|021,...,,| 1021 −−− −−−= nnzznnnzzzz zzfzzzzf
nnnnn
(1.34a)
(1.34b)
(1.34c)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.44
1.4.2 Diskrete Quelle mit Gedächtnis
Die zi können endlich viele diskrete Werte annehmen: zi ∈ {x1, ... , xN}. Der Markoff-Prozess emittiert diese Werte. Eine Reihe von Werten, die voneinander abhängig sind, stellt eine Markoff-Kette dar. Diese kann vollständig durch Übergangswahrscheinlichkeiten beschrieben werden:
),...,|(),...,|(101 101 mnnn imninjniinjn xzxzxzpxzxzxzp
−−−======= −−−
Hängen die Übergangswahrscheinlichkeiten nicht von der absoluten Zeitab, spricht man von einer homogenen Markoff-Kette:
),...,|(),...,|(11 11 mm imkikjkimninjn xzxzxzpxzxzxzp ======= −−−−
Hängt der eingeschwungene Zustand nicht von den Anfangswahr-scheinlichkeiten ab, so spricht man von einer stationären Markoff-Kette:
Für die homogene und stationäre Markoff-Kette erster Ordnung (m = 1) gilt:
jjjnknikjnknwxpxzpxzxzp ====== +∞→+∞→
)()(lim)|(lim
ijinjn pxzxzp === − )|( 1
(1.35a)
(1.35b)
(1.35c)
(1.35d)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.45
1.4.2 Diskrete Quelle mit Gedächtnis
Für den Fall der homogenen stationären Markoff-Kette können die einzelnen Übergangswahrscheinlichkeiten in einer sogenannten Übergangsmatrix zusammengefasst werden: ⎟⎟
⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
NNNN
N
N
ppp
pppppp
L
LOLL
L
L
21
22221
11211
P
11
=∑=
N
jijp
))()()(()( 2121 NN xpxpxpwww LL ==w
Pww =
Die einzelnen Zeilen der Übergangsmatrix müssen zusammen Eins ergeben:
Die Auftrittswahrscheinlichkeiten der einzelnen diskreten Werte können zu einem Wahrscheinlichkeitsvektor zusammengefasst werden:
Der Wahrscheinlichkeitsvektor kann mit Hilfe des eingeschwungenen Zustands bestimmt werden:
(1.36a)
(1.37)
(1.38)
(1.36b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.46
1.4.2 Diskrete Quelle mit Gedächtnis
Es wird nun eine stationäre Markoff-Quelle betrachtet, die Markoff-Ketten erster Ordnung emittiert.
(1.39)N
∑ ∑= =
−− ==⋅==−=N
i
N
jinjninjn xzxzpxzxzp
1 111 ))|((ld),(
N N∑ ∑= =
−− ==⋅==⋅−=i j
injninjni xzxzpxzxzpw1 1
11 ))|((ld)|(
∑=
−− =⋅===i
inniiinn xzzHwxzzH1
11 )|()|(
−−−∞→
∞ == nnnnnn
zzHzzzzHZH 1021 )|(), ,,|(lim)( K
Für diese Anordnung, die durch w und P beschrieben ist, soll die Entropie berechnet werden. Diese ist dann gleich der Entropie im eingeschwungenen Zustand:
H∞(Z)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.47
1.4.2 Diskrete Quelle mit Gedächtnis
Da die Entropie H∞(Z) Zeichen aus der Vergangenheit, die bereits bekannt sind, einbezieht, handelt es sich um eine bedingte Entropie. Für diese gilt analog zu Ungl. (1.33):
)()()|()( 01 nnnn zHzHzzHZH ≤≤= −∞
Die Quellencodierung einer Markoff-Quelle kann nun unter Berücksichtigung des Gedächtnisses erfolgen. Dazu kann z. B. die Huffman-Codierung verwendet werden, die den momentanen Zustand der Quelle berücksichtigt.
Das Problem, das diese Codierung darstellt, welches aber ein grundsätzliches Problem der Quellencodes variabler Länge ist, stellt die katastrophale Fehlerfortpflanzung dar. Ein auf dem Kanal aufgetretener, nicht korrigierter Fehler kann dann zum Verlust der ganzen Informationssequenz führen.
(1.40)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.48
1.4.2 Diskrete Quelle mit Gedächtnis
Im Folgenden wird das nebenstehende Beispiel einer Markoff-Quelle betrachtet. Ihre Zustände entsprechen den gesendeten Zeichen: zn ∈ {x1, x2, x3}.
Die Übergangswahrscheinlichkeiten für dieses Beispiel lauten:
zn
zn−1
x1 x2 x3
x1 0,2 0,4 0,4x2 0,3 0,5 0,2x3 0,6 0,1 0,3
( ) ( )⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛===== −
3,01,06,02,05,03,04,04,02,0
)|( 1 Pijinjn pxzxzpBerechnet werden sollen im Folgenden wund H∞(Z).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.49
1.4.2 Diskrete Quelle mit Gedächtnis
Berechnung der stationären Wahrscheinlichkeiten wi:
w1 = 0,2 w1 + 0,3 w2 + 0,6 w3w2 = 0,4 w1 + 0,5 w2 + 0,1 w3w3 = 0,4 w1 + 0,2 w2 + 0,3 w31 = w1 + w2 + w3
3011,03441,03548,0 9328
39332
29333
1 ≈=≈=≈= www
Aus Gleichung (1.38) lassen sich hier drei einzelne gewinnen, um die drei Unbekannten zu berechnen. Jeweils eine von den drei Einzelgleichungen ist aber linear von den anderen beiden abhängig, so dass der zweite Ansatz zum Erhalt einer dritten unabhängigen Gleichung berücksichtigt werden muss: }eine der drei Gleichungen streichen!
Lösung des Gleichungssystems:
(1.41)
Benutzt wird als Ansatz die Gl. (1.38) sowie die Gleichung
1.1
=∑=
N
iiw
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.50
1.4.2 Diskrete Quelle mit Gedächtnis
Berechnung der Entropie H∞(Z):
∑ ∑∑= ==
−∞ ⋅⋅−==⋅=N
i
N
jijiji
N
iinni ppwxzzHwZH
1 111 )(ld)|()(
Für die Übersicht bieten sich zuerst die einzelnen Berechnungen der Zustandsentropien an:
Zeichen/bit441,1
)|()|()|()( 313212111
≅
=+=+== −−−∞ xzzHwxzzHwxzzHwZH nnnnnn
Die Entropie ist schließlich:
(1.42)
Den Ansatz für diese Berechnung stellt Gl. (1.39) dar. Die Benutzung der Notation für die stationären Wahrscheinlichkeiten wi und Übergangs-wahrscheinlichkeiten pij führt zu der Darstellung:
3,00,10,6 henbit / Zeic2955,1ld3,0ld1,0ld6,0)|( 11131 ≅⋅+⋅+⋅==− xzzH nn
henbit / Zeic4855,1ld2,0ld5,0ld3,0)|( 2,01
0,51
0,31
21 ≅⋅+⋅+⋅==− xzzH nn
henbit / Zeic5219,1ld4,0ld4,0ld2,0)|( 4,01
0,41
0,21
11 ≅⋅+⋅+⋅==− xzzH nn
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.51
1.4.2 Diskrete Quelle mit Gedächtnis
Ein Vergleich der unterschiedlichen Werte zeigt:
Zeichen/bit441,1)( ≅∞ ZH
Zeichen/bit5814,11ld)(lim)(1
≅⋅== ∑=∞→
N
i iin
n wwzHZH
Zeichen/bit5850,13ld0 ≅=H
Siehe auch Ungl. (1.40).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.52
1.4.2 Diskrete Quelle mit Gedächtnis
Für das betrachtete Beispiel sind unten die zustandsabhängigen Huffman-Codierungen aufgelistet. Für jeden Zustand zn−1 gibt es eine eigene Codierung, die hier auch unterschiedlich zu den jeweils anderen ist:
zn
zn−1
x1 x2 x3 ⟨L⟩|zn−1
x1 11 10 0 1,6x2 10 0 11 1,5x3 0 11 10 1,4
Zeichen/bit5054,1
)|()|(1 1
11
≅
==⋅⋅==== ∑ ∑= =
−−N
i
N
jinjnijiinjn xzxzLpwxzxzLL
zn
zn−1
x1 x2 x3
x1 0,2 0,4 0,4x2 0,3 0,5 0,2x3 0,6 0,1 0,3
Die mittlere Codewortlänge berechnet sich dann zu:
Zeichen/bit441,1)( ≅∞ ZHZeichen/bit5814,1)( ≅ZH
Zum Vergleich:
pij Codewörter
(1.43)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.53
1.5 Nachrichtenübertragungüber einen diskreten gedächtnislosen Kanal
1.5.1 Definition und Eigenschaftendes diskreten gedächtnislosen Kanals
1 Grundlagen der Informationstheorie
},...,,{ 21 XNxxxX ∈ },...,,{ 21 YNyyyY ∈
Der diskrete gedächtnislose Kanal (engl. discrete memoryless channel; DMC) ist eine Modellbeschreibung für die Übertragung diskreter Werte über einen Kanal. Gedächtnislos bedeutet, dass die Übertragungs-wahrscheinlichkeiten der Symbole unabhängig voneinander sind.
Das Eingangssignal X und das Ausgangssignal Y können jeweils unterschiedliche diskrete Werte annehmen, wobei die möglichen Werte am Eingang und Ausgang sowie deren Anzahl nicht gleich sein müssen:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.54
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
( ) ( )
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
====
YXXX
Y
Y
NNNN
N
N
ijij
ppp
pppppp
pxXyYp
L
LOLL
L
L
21
22221
11211
)|(P
Jedes der xi wird bei der Übertragung nun mit einer bestimmten Wahrscheinlichkeit pij in yj überführt:
Die Übergangswahrscheinlichkeiten pijwerden wieder in der Übergangsmatrix Pzusammengefasst.Dabei muss die Summe der pij über jeweils eine Zeile Eins ergeben (Gl. (1.36b)).
(1.44)
(Ähnlich zu Gl. (1.36a), wo es aber umÜbergänge in Quellen geht!)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.55
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
⎟⎟⎠
⎞⎜⎜⎝
⎛=
2221
1211pppp
P
212121
212121)()(
)|()()|()()Fehler(pxppxp
xypxpxypxpp⋅+⋅=
⋅+⋅=
⎟⎟⎠
⎞⎜⎜⎝
⎛−
−=
errerr
errerr1
1pp
ppP
errerr21
212121
)]()([
)()()Fehler(
ppxpxp
pxppxpp
=⋅+=
⋅+⋅=
Ein Spezialfall des DMCs ist der Binärkanal. Sowohl X als auch Y bestehen nur aus zwei Symbolen. Die Übergangsmatrix reduziert sich zu:
Die Wahrscheinlichkeit p(Fehler), dass ein Übertragungsfehler auftritt, berechnet sich zu:
Für den symmetrischen Binärkanal (engl.: binary symmetric channel; BSC) vereinfachen sich die Beziehungen zu:
(1.45)
(1.46)
(1.47)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.56
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
Für den störungsfreien Kanal ist ersichtlich, dass die Information am Ausgang gleich der Information am Eingang des Kanals sein muss. Das bedeutet gleichzeitig, dass die übertragene Information gleich der Entropie der Quelle ist.Bei dem gestörten Kanal geht durch Falschzuweisung einiger Symbole Information bei der Übertragung verloren. D. h., die Information am Ausgang muss kleiner als die Information am Eingang sein. Damit sinkt aber auch die übertragene Information, die dann also kleiner als die Entropie der Quelle sein muss.Als Maß für die tatsächlich übertragene Information wird daher die Transinformation T(X,Y) definiert. Diese wird im Folgenden mit den anderen Informationsströmen in Beziehung gesetzt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.57
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
Informationsströme:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.58
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
Definitionen der Entropien bzgl. des diskreten gedächtnislosen Kanals
Eingangsentropie: mittlerer Informationsgehalt der Eingangssymbole
Ausgangsentropie: mittlerer Informationsgehalt der Ausgangssymbole
Verbundentropie: mittlere Unsicherheit des gesamten Übertragungssystems
)(1ld)()(
1 i
N
ii xp
xpXHX
∑=
⋅=
)(1ld)()(
1 j
N
jj yp
ypYHY
∑=
⋅=
∑ ∑= =
⋅=X YN
i
N
j jiji yxp
yxpYXH1 1 ),(
1ld),(),(
(1.48)
(1.49)
(1.50)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.59
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
Entropie der Irrelevanz: mittlerer Informationsgehalt am Ausgang bei bekanntem Eingangssymbol (bedingte Entropie)
Entropie der Äquivokation: mittlerer Informationsgehalt am Eingang bei bekanntem Ausgangssymbol (bedingte Entropie); Entropie der Information, die auf dem Kanal verloren geht
∑ ∑= =
⋅=X YN
i
N
j ijji xyp
yxpXYH1 1 )|(
1ld),()|(
∑ ∑= =
⋅=X YN
i
N
j jiji yxp
yxpYXH1 1 )|(
1ld),()|(
(1.51)
(1.52)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.60
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
Aus dem Diagramm der Informationsströme sowie Gl. (1.32a) lassen sich folgende Beziehungen ableiten:
)|()()|()(),(),( YXHYHXYHXHXYHYXH +=+==
)()|( XHYXH ≤
)()|( YHXYH ≤
Die mittlere Transinformation lässt sich aus diesen Beziehungen bestimmen:
),()()(
)|()(
)|()(),(
YXHYHXH
XYHYH
YXHXHYXT
−+=
−=
−=
(1.53)
(1.54a)
(1.54b)
(1.55)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.61
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
Bezüglich der Transinformation sollen zwei spezielle Beispiele betrachtet werden, für die die Entropien leicht herzuleiten sind.
Für den idealen ungestörten Kanal gilt:
Für die Entropien ergibt sich dann: H(X|Y) = 0, H(Y|X) = 0,H(X,Y) = H(X) = H(Y) und somitT(X,Y) = H(X) = H(Y).
Bzgl. des nutzlosen, vollständig gestörten Kanals sind die Eingangs- und Ausgangssymbole statistisch unabhängig voneinander, so dass gilt:p(xi,yj) = p(xi) ⋅ p(yj) = p(yj|xi) ⋅ p(xi) ⇒ p(yj|xi) = p(yj) ⇒ pij = pkj .D. h., dass die Übergangswahrscheinlichkeiten alle gleich sind. Für die Entropien bedeutet das: H(X|Y) = H(X), H(Y|X) = H(Y),
H(X,Y) = H(X) + H(Y) und somitT(X,Y) = 0.
⎩⎨⎧
≠=
=jiji
pij für 0für 1
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.62
1.5.1 Definition und Eigenschaften des diskreten gedächtnislosen Kanals
Abschließend ein konkretes Beispiel zur Transinformation:Es werden 1000 binäre, statistisch unabhängige und gleichwahrscheinliche Symbole (p(0) = p(1) = 0,5) über einen symmetrischen Binärkanalperr = 0,01 übertragen.Qualitative Betrachtung: Die mittlere Anzahl der richtig übertragenen Symbole beträgt 990. Allerdings ist die genaue Lage der Fehler unbekannt, so dass gelten muss: T(X,Y) < 0,99 bit/Zeichen.Quantitative Betrachtung:
nbit/Zeiche9192,0)(1 err ≅−= pS
1ld1
1ld)1())1()0((1err
errerr
err ⎥⎦
⎤⎢⎣
⎡+
−−+−=
pp
pppp
)|()(),( −= XYHYHYXT
)|(1ld)|()(
)(1ld)(
1 11
⋅⋅−⋅= ∑∑∑= == xyp
xypxpyp
ypX YY N
i
N
j ijiji
N
j jj
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.63
1.5.2 Kanalkapazität1.5 Nachrichtenübertragung über einen diskreten gedächtnislosen Kanal
Für einen gegebenen Kanal ist es interessant zu wissen, wieviel Information maximal über ihn gesendet werden kann. Die Transinformation hängt allerdings von der Wahrscheinlichkeitsverteilung der Quellensymbole und somit von der Quelle ab, so dass sie sich als Maß zur Beschreibung von Kanälen nicht direkt eignet. Dennoch ist eine Entkopplung von der Quelle möglich, indem man den maximalen Wert der Transinformation betrachtet. Auf diese Weise ist die Kanalkapazität definiert:
),(max1
)(YXT
TC
ixpΔ=
Die Kanalkapazität C ist das Maximum des Transinformationsflusses und hat die Dimension bit/s. ΔT beschreibt die zeitliche Periode der über den Kanal übertragenen Zeichen. Mit dieser Definition ist C allein von den Kanaleigenschaften, d. h. den Übergangswahrscheinlichkeiten, abhängig und nicht von der Quelle.
(1.56)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.64
1.5.2 Kanalkapazität
SymbolR
0)( =→= CRXHL
Symbol
inf
RL
R
⋅
=inf
,
inf RRRR
CKK ≥=
KRinfR
SymbolRQRXHH );(;0
Quelle
Quellendecoder KanaldecoderFehlerp
BSC-KanalCp ;err
Kanalcoder1, ≤CKR
Quellencoder
CRL;
Senke
idealer Coder:
(redundanzfrei)
Übersicht einer Übertragungsstrecke:
Definition der Informationsflüsse:Informationsfluss (Entropie / Zeit): H′(X) = H(X) / ΔTTransinformationsfluss (Transinformation / Zeit): T′(X,Y) = T(X,Y) / ΔTEntscheidungsfluss (Entscheidungsgehalt / Zeit): H0′(X) = H0(X) /ΔT
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.65
1.5.2 Kanalkapazität
Am Beispiel des symmetrischen Binärkanals (BSC) soll die Kanalkapazität hergeleitet werden. Dafür ist die Transinformation zu bestimmen und anschließend nach dem Maximum zu suchen.
Transinformation des BSC:
(1.57)⎥⎦
⎤⎢⎣
⎡−
−+−err
errerr
err 11ld)1(1ldp
pp
p
+−−+−−+
err1err1err1err1 21
1ld)21(pppp
pppp
−+−+=
err1err1err1err1 2
1ld)2(pppp
pppp
−= )|()(),( XYHYHYXT
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.66
1.5.2 Kanalkapazität
0.0
0.2
0.4
0.6
0.8
1.0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 p(x1)
T(X,Y)
bit/Z
eich
en
perr = 0
perr = 0,1
perr = 0,2
perr = 0,3
perr = 0,5
Graphische Abbildung der Transinformation über verschiedene Übertragungsfehlerwahrscheinlichkeiten:
Die Stelle, an der das Maximum der Transinformation beim BSC auftritt, ist unabhängig von der Übertragungsfehlerwahrscheinlichkeit. Sie liegt beip1 = p(x1) = 0,5 (gleichwahrscheinliche Quellensymbole).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.67
1.5.2 Kanalkapazität
Graphische Abbildung der Kanalkapazität. Sie ist aus der obigen Abbildung der Transinformation zu entnehmen, indem über perr die entsprechenden Maxima der Transinformation aufzutragen sind:
0.0
0.2
0.4
0.6
0.8
1.0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 perr
C⋅ΔT / bit
)(11
1ld)1(1ld1),(max errerr
errerr
err)(
pSp
pp
pYXTTCixp
−=⎥⎦
⎤⎢⎣
⎡−
−+−==Δ⋅
(1.58)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.68
1.5.2 Kanalkapazität
Als weiteres Beispiel wird der binäre Auslöschungskanal (binary erasurechannel; BEC) betrachtet. Er modelliert das Szenario, das ein Empfangssignal nicht einem der beiden Sendesignale zugeordnet werden kann. Die Daten und Ergebnisse lauten:
⎟⎟⎠
⎞⎜⎜⎝
⎛−
−=
err
err
err
err1
00
1pp
pp
P err1 pTC −=Δ⋅
0.0
0.2
0.4
0.6
0.8
1.0
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 perr
C⋅ΔT / bit
(1.60)(1.59)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.69
1.5.2 Kanalkapazität
Satz von der Kanalkapazität (Shannon 1948):Für jedes ε > 0 und jeden Informationsfluss einer Quelle Rinf kleiner als die Kanalkapazität C ( Rinf < C ) existiert ein binärer Blockcode der Länge n (n hinreichend groß), so dass die Restfehlerwahrscheinlichkeit nach der Decodierung im Empfänger kleiner ε ist.Umkehrung: Für Rinf > C kann die Restfehlerwahrscheinlichkeit eine
gewisse Grenze auch bei größtem Aufwand nicht unterschreiten.
Die Beweisführung wird mit zufälligen Blockcodes (random codingargument) durchgeführt. Dabei geht der Beweis für das Mittel über alle Codes. Dabei zeigt sich, dass alle bekannten Codes schlechte Codes sind.Der Satz von der Kanalkapazität sagt aber auch nur aus, dass Codes mit diesen Eigenschaften existieren. Eine Konstruktionsvorschrift gibt Shannon nicht an.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.70
1.5.2 Kanalkapazität
Bezüglich der Kanalkapazität liegt das Optimum in der Benutzung unendlicher Codewortlängen, also n sehr groß, was aber eine unendliche Verzögerungszeit und Komplexität mit sich bringen würde.Gallager verfeinert nun den Satz von der Kanalkapazität mit seinem Fehlerexponenten EG(RC) für einen DMC mit NX Eingangssymbolen. Ziel ist eine Abschätzung, die für kleinere Codewortlängen gültig ist.
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛⋅−⋅−= ∑ ∑
=
+
=
+≤≤
Y X
i
N
j
sN
i
sijixps
xypxpRsRE1
1
1
11
C)(10
CG )|()(ldmaxmax)(
)(w CG2 REnP ⋅−<
Es existiert immer ein (n,k)-Blockcode (k: Informationswortlänge) mitRC = k / n ld NX < C ΔT,
so dass für die Wort-Fehlerwahrscheinlichkeit gilt:
(1.61)
(1.63)
(1.62)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.71
1.5.2 Kanalkapazität
0.0
0.2
0.4
0.6
0.8
0.0 0.2 0.4 0.6 0.8 1.0
EG(RC)
RC
R0
R0 C
Der Fehlerexponent nach Gallager hat die folgenden Eigenschaften:EG(RC) > 0 für RC < CEG(RC) = 0 für RC ≥ C
Der R0-Wert wird definiert als:
R0 = EG(RC = 0) (1.64)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.72
1.5.2 Kanalkapazität
⎥⎥
⎦
⎤
⎢⎢
⎣
⎡
⎟⎟⎠
⎞⎜⎜⎝
⎛⋅−=== ∑ ∑
= =
Y X
i
N
j
N
iiji
xpxypxpRER
1
2
1)(CG0 )|()(ldmax)0(
C01
2
1C
)(CG )|()(ldmax)( RRxypxpRRE
Y X
i
N
j
N
iiji
xp−=
⎥⎥
⎦
⎤
⎢⎢
⎣
⎡
⎟⎟⎠
⎞⎜⎜⎝
⎛⋅−−≥ ∑ ∑
= =
Das Maximum von EG(RC = 0) liegt bei s = 1. Der R0-Wert, der auch mit „computational cut-off rate“ bezeichnet wird, ist dann:
Wenn RC nicht zu Null gesetzt wird, lautet die Gleichung:
(1.66)
(1.65)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.73
1.5.2 Kanalkapazität
R0-Theorem:Es existiert immer ein (n,k)-Blockcode mit
RC = k / n ld NX < C ΔT,so dass für die Wort-Fehlerwahrscheinlichkeit (bei Maximum-Likelihood-Decodierung) gilt:
)(w C02 RRnP −−<
Wie beim Satz von der Kanalkapazität sagt dieses Theorem nur etwas über die Existenz aus und gibt keine Konstruktionsvorschrift für gute Codes an.
(1.67)
Wertebereiche für die Coderate:0 ≤ RC ≤ R0 Abschätzung von PW mit (1.67)R0 ≤ RC ≤ C ΔT Abschätzung von PW schwierig zu berechnenRC > C ΔT PW kann nicht beliebig klein werden
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.74
1.5.2 Kanalkapazität
0.0
0.2
0.4
0.6
0.8
1.0
0.0 0.1 0.2 0.3 0.4 0.5 perr
R0
C ΔTbi
t/Zei
chen
Vergleich von Kanalkapazität und R0-Wert für einen BSC:
Zwar verläuft die R0-Kurve unter der Kurve der Kanalkapazität und zeigt eine Grenze an, die schlechtere Eigenschaften der Codes voraussagt. Allerdings ist diese Grenze realistischer in dem Sinne, dass endlich lange Codewortlängen sie erreichen können.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.75
2 Grundzüge der KanalcodierungCodierungstheorie
In Kapitel 1 wurde der Einfluss von Störungen auf den Kanal durch Verringerung der übertragenen Information beschrieben. Praktisch wirkt sich eine Störung durch zufällige Fehler in der Symbolübertragung aus.
In diesem Kapitel sollen die für die Kanalcodierung grundlegenden Größen erläutert werden:– Coderate,– Minimaldistanz und– Fehlerwahrscheinlichkeiten.
Abhängig von einem Qualitätskriterium wie der Bitfehlerrate (BER) kann eine bestimmte Anzahl von (Rest-)Fehlern toleriert werden, für deren Begrenzung Kanalcodes eingesetzt werden müssen. Bei Sprachübertragung gilt z. B. eine BER von 10-3.
Weiterhin werden die Decodierregeln eingeführt und Schranken aufgezeigt, die theoretisch erreichbar sind.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.76
2.1 Einleitung2 Grundzüge der Kanalcodierung
Grundprinzip der Kanalcodierung:
Die Übertragungsstrecke mit Kanalcodierung/-decodierung teilt sich auf in:– Einteilung des Quellensymbolstroms zu Informationswörtern u der
Länge k,– Zuweisung von u zu einem Sendewort x ∈ C der Länge n,– Übertragung von x; dabei Überlagerung mit einem Fehlerwort f,– Schätzung des Empfangsworts y = x + f, d. h. Zuweisung von y zu dem
wahrscheinlichsten Codewort ∈ C,– Zuweisung von zu dem geschätzten Informationswort .
xx u
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.77
2.1 Einleitung
Die Codierung hat dabei die Aufgabe, Redundanz zum Fehlerschutz zuzufügen (redundante Codes).
In diesem Kapitel werden nur binäre Blockcodierungen betrachtet, d. h. es ist q = 2, und k bzw. n sind für einen Code konstante Werte. Als Beispiele werden im Folgenden die Wiederholungscodes und die Parity-Check-Codes
betrachtet.
Für die Codierungu = (u0, u1, ... , uk-1) → c = (c0, c1, ... , cn-1)
gilt n ≥ k. Die zugefügten m = n – k Symbole werden als Prüfsymbolebezeichnet. Jedes der einzelnen Symbole ui bzw. ci kann allgemein q Werte annehmen. q ist dabei die Anzahl oder Stufenzahl der Symbole. Dann gibt es N = qk verschiedene Nachrichten bzw. Codewörter und qn – qk
unerlaubte Wörter.
Mit C wird der Coderaum, d. h. die Menge aller Codewörter, bezeichnet.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.78
2.1 Einleitung
Wiederholungscode (Repetition Code):Die Information besteht aus einem Informationsbit (k = 1), das (n – 1)-mal wiederholt wird. Damit gibt es insgesamt 2k = 2 Codewörter, nämlich
c1 = (0 0 0 ... 0) und c2 = (1 1 1 ... 1) .Die Decodierung erfolgt durch Mehrheitsentscheid, wenn n ungerade ist.
Beispiel: n = 5 ⇒ RC = 1/5 u1 = (0) → c1 = (0 0 0 0 0) und u2 = (1) → c2 = (1 1 1 1 1)
gestörte Empfangsfolgen mit: f1 = (0 1 0 0 1) und x1 = c2 = (1 1 1 1 1) y1 = x1 + f1 = (1 0 1 1 0) → (erfolgreiche Decodierung)
f2 = (1 1 0 1 0) und x2 = c1 = (0 0 0 0 0) y2 = x2 + f2 = (1 1 0 1 0) → (Decodierfehler)
)1(ˆ1 =u
)1(ˆ 2 =u
Die Addition wird bitweise ohne Überhang durchgeführt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.79
2.1 Einleitung
Beispiel: k = 3y1 = ( 0 1 1 0) → kein Fehler
erkannty2 = ( 1 1 1 0) → Fehler erkannt
Paritätskontrolle (Parity Check Code):Der Code besteht aus k Informationsbits und einer Prüfstelle (m = 1). Damit ist n = k + 1. Es gibt 2k Codewörter der Form
c = (u p) mit p = u0 + u1 + u2 + ... + uk−1.Damit ergibt sich stets eine gerade Anzahl von Einsen in den Codewörtern.
Codewort Information Prüfstellec0 000 0c1 001 1c2 010 1c3 011 0c4 100 1c5 101 0c6 110 0c7 111 1
Die Paritätskontrolle sieht dann folgendermaßen aus:s0 = y0 + y1 + y2 + ... + yn−1 = 0
→ kein Fehler s0 = y0 + y1 + y2 + ... + yn−1 = 1
→ Fehler
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.80
2.2 Coderate2 Grundzüge der Kanalcodierung
Eine Quelle generiert Nachrichten mit einer mittleren Rate Ri Bits pro Sekunde (bps), d. h. ein Bit wird alle Ti = 1/Ri Sekunden übertragen. Der Kanalcodierer weist jeder Informationsnachricht der Länge k ein Codewort der Länge n zu, so dass die Kanalbitrate lautet:
Da gilt: n ≥ k, ist RC ≤ 1.Die Coderate misst den relativen Informationsgehalt in jedem Codewortund ist einer der Schlüsselwerte für die Leistungsfähigkeit eines Kanalcodes. Ein hoher Wert von RC bedeutet zwar mehr übertragene Information, allerdings ist es durch die geringere Anzahl an Sicherheits-symbolen schwieriger, einen Schutz gegen Übertragungsfehler zu bieten.
knRR iK ⋅=
i
K
K
iC T
TRR
nkR ===Die Coderate ist dann:
(2.1)
(2.2)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.81
2.2 Coderate
In einigen Systemen sind Ri und RK feste Parameter. Für eine gegebene Nachrichtenlänge k ist n dann der größte Integer kleiner . Ist dieser Term selbst kein Integer, müssen Dummy-Bits zur Aufrechterhaltung der Synchronisation eingefügt werden.Beispiel:Ein System sei gegeben durch Ri = 3 bps und RK = 4 bps. Damit ist RC = ¾.
iK RRk /⋅
Soll ein Kanalcodierer mit k = 3 erstellt werden, ist ohne Synchronisations-verlust ein n = 4 zu wählen.Soll ein Kanalcodierer mit k = 5 erstellt werden, ergibt sich für das Produkt
= 6 + 2/3. Somit ist n = 6. Allerdings müssen 2 Dummy-Bits nach jedem 3. Codewort eingefügt werden, um die Lücke von 2/3 zu schließen.
iK RRk /⋅
k = 5X X X X X
⇓O O O O O O
n = 6
k = 5X X X X X
⇓O O O O O O
n = 6
k = 5X X X X X
⇓O O O O O O
n = 6d d
15 Bits
20 BitsRC = 3/4
Dummy-Bits
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.82
2.3 Decodierregeln2 Grundzüge der Kanalcodierung
Der Kanaldecodierer muss eine Decodierregel für das Empfangswort yanwenden, um zu entscheiden, welches Sendewort x übertragen wurde, d. h. eine Entscheidungsregel D(.) wird gesucht, für die gilt: x = D(y).
Sei p(x) die a-priori-Wahrscheinlichkeit für die zu sendende Nachricht x. Mittels der Bayes‘schen Formel (Gl. 1.9) ist die Wahrscheinlichkeit, dass xgesendet wurde, wenn y empfangen wurde, gegeben durch:
Sei p(y | x) die Wahrscheinlichkeit, dass y empfangen wurde, wenn xgesendet wurde. Für einen diskreten gedächtnislosen Kanal kann sie durch die Übertragungswahrscheinlichkeiten ausgedrückt werden:
∏−
=
=1
0
)|()|(n
iii xypp xy (2.3)
)()()|()|(
yxxyyx
pppp ⋅
= (2.4)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.83
2.3 Decodierregeln
uuxx == ˆ,ˆ
uuxx ≠≠ ˆ,ˆ
uuxx⎭⎬⎫
⎩⎨⎧
≠=
⎭⎬⎫
⎩⎨⎧
≠=
ˆ,ˆ
Aus der Sicht des Empfängers gibt es 3 mögliche Decodierergebnisse:− korrekte Decodierung, wobei entweder auf dem Kanal keine Fehler
aufgetreten sind oder alle Fehler richtig korrigiert wurden:
− fehlerhafte Decodierung, d. h. ein Fehler ist derart aufgetreten, dass die Schätzung dem Empfangswort ein falsches Codewort zuweist:
− Decodierversagen, d. h. ein Fehler wurde detektiert, wofür derDecodierer aber keine Lösung findet.
uuxx == ˆ,ˆ
uuxx ≠≠ ˆ,ˆ
Bei einer Übertragung gibt es diese 3 möglichen Ergebnisse:− y = x, d. h. fehlerfreie Übertragung: ,− y ≠ x, y ∈ C, d. h. Verfälschung des Empfangsworts in ein anderes
Codewort (nicht korrigierbar): ,− y ≠ x, y ∉ C, d. h. fehlerhafte Übertragung,
wobei der Fehler erkennbar und u. U. korrigierbar ist: .
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.84
Es wird angenommen, dass die Codewörter mit gleicher Wahrscheinlichkeit gesendet werden. Dann ergibt sich für pW:
∑∑≠
=≠
=≠xx
xyxx
xyxxxyy ˆ,
)|(ˆ,
)gesendet |empfangen ()gesendet |ˆ( ppp
2 Grundzüge der Kanalcodierung
x )ˆ|( xyp
Wortfehlerwahrscheinlichkeit für einen DMC:
Die bedingte Wahrscheinlichkeit für einen Schätzfehler ist:
Das Ziel besteht nun darin, die Wortfehlerwahrscheinlichkeit zu minimieren.Dafür muss so gewählt werden, dass maximal wird. Mit Gl. (2.4)
bietet sich auch die Möglichkeit, zu maximieren.
∑∈
⋅≠=Cx
xxxx )gesendet()gesendet|ˆ( pp≠= xx )ˆ(p≠= uu )ˆ(W pp
)|ˆ( yxp
(2.5)
(2.7)
(2.6)
∑⋅−= −
yxy )ˆ|(21 pk∑⋅−=
=∈
−
xxyxxy )|(21
ˆ,,pk
C
∑⋅=∈
−
yxxy )|([2
,pk
C∑ ∑ ⋅=∈
−
≠x xxyxy 2)|(
ˆ,W pp k
C∑−
=∈ xxyxxy ])|(
ˆ,,p
C
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.85
2.3 Decodierregeln
Maximum-A-Posteriori-Regel:Die Wahrscheinlichkeit, dass die Entscheidung für das Empfangswort y zu dem Codewort x richtig ist, ist gerade p(x | y). Die Wahrscheinlichkeit für einen Fehler ist dann 1 - p(x | y). Die Minimierung des Schätzfehlers bei der Wahl von x ist somit die Maximierung der a-posteriori-Wahrscheinlichkeit p(x | y).
Cxyxyxx ∈≥= allefür )|()|ˆ( pp
Diese Decodierregel führt zu einem minimalen Decodierfehler.
Die zugehörige Maximum-a-posteriori-Regel (MAP-Regel) lautet:
x x= DMAP(y), wobei ∈ C,so dass
Mit Gl. (2.4) und da p(y) unabhängig von x ist, vereinfacht sich Gl. (2.8b) zu:
Cxxxyxxxxy ∈≥== allefür )()|()ˆ()ˆ|( pppp
(2.8a)
(2.8b)
(2.8c)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.86
2.3 Decodierregeln
Maximum-Likelihood-Decoding-Regel:Eine alternative Decodierregel basiert auf der Maximierung von p(y | x), der Wahrscheinlichkeit, dass bei der Übertragung von x das Wort y empfangen wurde. Diese Regel bietet nicht notwendigerweise minimale Fehler, ist aber einfacher zu implementieren, da die Kanaleingangswahrscheinlichkeiten nicht benötigt werden.
C∈≥= xxyxxy allefür )|()ˆ|( pp
Für gleichwahrscheinliche Eingangsgrößen führen die MLD- und die MAP-Regel zu gleichen Ergebnissen (vgl. folgendes Beispiel).
Die zugehörige Maximum-Likelihood-Decoding-Regel (MLD-Regel) lautet:
x x= DMLD(y), wobei ∈ C,so dass
(2.9a)
(2.9b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.87
2.3 Decodierregeln
Beispiel: Gegeben sei ein BSC mit perr = 0,4 und ein Kanalcodierer mit (k,n) = (2,3), d. h. ein Kanalcode mit N = 22 = 4 Codewörtern der Längen = 3. Die Codewörter und ihre Auftrittswahrscheinlichkeiten seien:
Codewort p(x)x1 = (000) 0,4x2 = (011) 0,2x3 = (101) 0,1x4 = (110) 0,3144,0)0|1()1|1()1|1()110|111()|(
144,0)1|1()0|1()1|1()101|111()|(144,0)1|1()1|1()0|1()011|111()|(064,0)0|1()0|1()0|1()000|111()|(
4
3
2
1
=⋅⋅===⋅⋅===⋅⋅===⋅⋅==
pppppppppppppppppppp
xyxyxyxy
Sei y = (111). Die MLD-Regel liefert:
0432,03,0144,0)()|(0144,01,0144,0)()|(0288,02,0144,0)()|(0256,04,0064,0)()|(
44
33
22
11
=⋅=⋅=⋅=⋅=⋅=⋅=⋅=⋅
xxyxxyxxyxxy
pppppppp
Diese Regel liefert drei gleichhohe maximale Wahrscheinlichkeiten, so dass eine eindeutige Entscheidung nicht möglich ist.
Die Minimierung des Fehlers ist hier eindeutig durch Wahl des Codeworts x4 bestimmt,d. h. x4 = DMAP(y = (111)).
Die MAP-Regel liefert dagegen (mittels Gl. (2.8c)):
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.88
2.3 Decodierregeln
Decodierkugel:Die Decodierkugel bezeichnet eine n-dimensionale Kugel um ein Codewort mit dem Radius t. Alle n-stelligen Empfangswörter, die im Innern einer bestimmten Decodierkugel liegen, werden als zugehöriges Codewort decodiert.
Es gilt, dass die Gesamtzahl aller Vektoren innerhalb von Decodierkugeln kleiner oder gleich der Gesamtzahl aller möglichen Wörter ist.
Die Decodierkugel bildet die Basis für die Hamming-Schranke (s. u.).
Decodierkugel
mögliches Empfangswort(kein Codewort)
Codewort
Raum möglicher Empfangswörter
t
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.89
2.3 Decodierregeln
Maximum-Likelihood-Decodierung (MLD):Das Empfangswort wird mit allen Codewörtern verglichen (2k notwendige Vektorvergleiche). Dieses Verfahren ist zwar optimal, aber auch sehr aufwändig. Unter Umständen sind mehr als t Fehler korrigierbar.Begrenzte Distanz-Decodierung (BDD):Um jedes Codewort liegen Decodierkugeln mit dem Radius t0, die sich schneiden können. Die Decodierung findet nur für Empfangsvektoren ystatt, die in genau einer Kugel liegen. Alle Empfangsvektoren y, die in keiner oder mehreren Kugeln liegen, werden nicht decodiert.
Begrenzte Mindestdistanz-Decodierung (BMD):Um jedes Codewort liegt eine Decodierkugel mit dem Radius t. Die Decodierkugeln sind disjunkt. Die Decodierung findet nur für Empfangs-
vektoren y statt, die in einer Kugel liegen.
Decodierverfahren:Betrachtet wird ein Blockcode, der t Fehler mit Sicherheit korrigieren kann.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.90
2.3 Decodierregeln
MLD BDD BMD
Weitere Decodierverfahren sind z. B. die Syndrom-Decodierung und die Mehrheitsentscheidung.Die Syndromdecodierung ist einfach zu realisieren. Sie ist allerdings suboptimal, da nicht sämtliche Information genutzt wird.Die Mehrheitsentscheidung ist bereits von den Wiederholungscodes bekannt
und ebenfalls suboptimal.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.91
2.4 Hamming-Distanz2 Grundzüge der Kanalcodierung
Gegeben seien die beiden binären Codewörter x und y der Länge n. Die Hamming-Distanz zwischen x und y, dH(x,y), ist definiert als die Anzahl der Positionsbits, in denen sich x und y unterscheiden. Für beliebige binäre Wörter x, y und z erfüllt die Hamming-Distanz die folgenden Bedingungen:
− dH(x,y) ≥ 0, mit Gleichheit, wenn x = y, (2.10a)− dH(x,y) = dH(y,x) und (2.10b)− dH(x,y) + dH(y,z) ≥ dH(x,z) (Dreiecksungleichung). (2.10c)
Beispiel: Sei n = 8 und x = (11010001),y = (00010010) undz = (01010011).
Die Hamming-Distanzen sind für alle Kombinationenin der Tabelle gegeben.
dH x y zx 0 4 2y 4 0 2z 2 2 0
Die Überprüfung der Dreiecksungleichung (Gl. (2.10c)) ergibt:dH(x,y) + dH(y,z) ≥ dH(x,z) ⇒ 4 + 2 ≥ 2
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.92
2.4 Hamming-Distanz
(Hamming-)Gewicht:Gegeben sei ein binärer Vektor x der Länge n. Dann ist das Hamming-Gewicht wH(x) definiert als die Anzahl der Einsen in x:
Beispiel: x = ( 0 1 1 1 0 1 0 1 )y = ( 1 0 1 0 0 1 0 1 ) ⇒ dH(x,y) = 3
x + y =( 1 1 0 1 0 0 0 0 ) ⇒ wH(x + y) = 3
∑−
=
=1
0H )(
n
iixw x
Beispiel: wH(0 1 1 1 0 1 0 1) = 5.
Zwischen der Hamming-Distanz dH und dem Hamming-Gewicht wH gilt:dH(x,y) = wH(x + y).
(2.11)
(2.12)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.93
2.4.1 Decodierregel für den BSC2.4 Hamming-Distanz
Gegeben sei ein BSC mit der Bitfehlerwahrscheinlichkeit perr. Bezüglich der MLD-Regel ergibt sich für die bedingte Wahrscheinlichkeit:
),(
err
errerr
),(err
),(err
1
0 err
err1
0
HHH
1)1()1(
fürfür1
)|()|(
xyxyxy
xy
dnddn
n
i ii
iin
iii
ppppp
xypxyp
xypp
⎟⎟⎠
⎞⎜⎜⎝
⎛−
⋅−=⋅−=
⎭⎬⎫
⎩⎨⎧
≠=−
==
−
−
=
−
=∏∏
C∈≤ xxyxy allefür ),()ˆ,( HH dd
Gleichung (2.13) ist maximal, wenn dH(x,y) minimal ist.Nach der MLD-Decodierregel ist der Schätzvektor x derart zu suchen, dass er dem Empfangswort y am nächsten ist:
Gleichung (2.13) sagt zudem aus, dass, sofern perr < 0,5, die Wahr-scheinlichkeit für einen Fehler größer ist als für zwei oder drei usw., d. h.
p(i Fehler) > p(i + 1 Fehler), 0 ≤ i ≤ n – 1.
(2.13)
(2.14)
(2.15)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.94
2.4.1 Decodierregel für den BSC
Beispiel: Gegeben sei der folgende Kanalcode:Nachricht Codewort
00 00001 00110 01111 111
Da n = 3 ist, gibt es N = 8 mögliche Empfangs-wörter, 4 von ihnen sind keine Codewörter. Ist das Empfangswort eines der Codewörter, weist die Decodierregel dem Schätzwert auch dieses Codewort zu ( = y). Ist y aber kein Codewort, dann lautet die Decodierregel wie folgt:
y dH(y,ci) Nächstes Codewort Aktion 010 1, 2, 1, 2 000; 011 1 Bitfehler entdeckt 100 1, 2, 3, 2 000 1 Bitfehler korrigiert 101 2, 1, 2, 1 001; 111 1 Bitfehler entdeckt 110 2, 3, 2, 1 111 1 Bitfehler korrigiert
Der Nachteil bei diesem Vorgehen ist die einzelne Betrachtung möglicher Wortpaare. Interessanter ist eine Größe, die für einen Code die allgemeinen
Erkennungs-/Korrektureigenschaften beschreibt.
x
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.95
2.4.2 Fehlererkennung und Fehlerkorrektur2.4 Hamming-Distanz
Minimaldistanz eines linearen Codes*:Die minimale Distanz dmin eines linearen Blockcodes C ist gegeben durch die kleinste Hamming-Distanz aller Paare verschiedener Codewörter:
( )212121Hmin ,|),(min cccccc ≠∧∈= Cdd
( )( ) minH
212121Hmin;|)(min
;,|),(minww
dd=≠∈=
≠∈=
0ccccccccc
CC
( )( )( )( )0ccc
0ccc0cccccc0
cccccc
≠∈=
≠∈=
≠∈+=
≠∈=
;|)(min;|),(min
;,|),(min;,|),(min
H
H
212121H
212121Hmin
CC
CC
wdddd
Die minimale Distanz eines linearen Codes entspricht dem minimalen Gewicht des Codes ohne Berücksichtigung des Nullworts:
Beweis:
(2.16)
(2.17)
(*) Lineare Codes:s. Kap. 3
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.96
2.4.2 Fehlererkennung und Fehlerkorrektur
Fehlererkennungseigenschaft:Ein Blockcode C entdeckt bis zu t Fehler, wenn seine minimale Distanz größer als t ist:
Dies ist eine wichtige Eigenschaft für ARQ-Verfahren, wo Codes für Fehlererkennungen benötigt werden.
dmin > t
Fehlerkorrektureigenschaft:Ein Blockcode C korrigiert bis zu t Fehler, wenn seine minimale Distanz größer als 2t ist:
Dies ist eine wichtige Eigenschaft für FEC-Verfahren, wo Codes für die Fehlerkorrektur benötigt werden.
dmin > 2t
(2.18a)
(2.18b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.97
2.4.2 Fehlererkennung und Fehlerkorrektur
dmin = 3 dmin = 4
Die Anzahl erkennbarer Fehler ist somit gegeben durch te = dmin − 1.Die Anzahl korrigierbarer Fehler ist gegeben durch
t = (dmin − 2) / 2, wenn dmin gerade undt = (dmin − 1) / 2, wenn dmin ungerade ist.
Mit dmin = 1 kann weder eine Fehlererkennung noch eine Fehlerkorrektur gewährleistet werden; mit dmin = 2 ist immer mindestens ein einzelner Fehler erkennbar; mit dmin = 3 ist immer mindestens ein einzelner Fehler korrigierbar und sind mindestens zwei Fehler erkennbar usw.
(2.19)
(2.20a)(2.20b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.98
2.4.2 Fehlererkennung und Fehlerkorrektur
Beispiele:1) Beim Wiederholungscode sind (n – 1)/2 Fehler (abgerundet) korrigierbar und n – 1 Fehler erkennbar.2) Bei der Paritätskontrolle ist kein Fehler korrigierbar und allgemein eine ungerade Anzahl von Fehlern erkennbar.3) Im Beispiel der unten stehenden Tabelle ist ein Fehler mit Sicherheit erkennbar, da dmin = 2.
Codewort Information Prüfstelle Gewichtc0 000 0 0c1 001 1 2c2 010 1 2c3 011 0 2c4 100 1 2c5 101 0 2c6 110 0 2c7 111 1 4
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.99
2.5 Schranken und perfekte Codes2 Grundzüge der Kanalcodierung
Wie in 2.4 festgestellt wurde, spezifiziert die minimale Distanz dmin die Fähigkeiten eines Codes C, Fehler zu erkennen bzw. zu detektieren. Ausgehend von verschiedenen Problemstellungen ergeben sich interessante Fragestellungen:− Es soll ein Code C der Länge n generiert werden, der die minimale
Distanz dmin(C) haben soll. Gibt es dann eine maximale Anzahl (obere Grenze) möglicher Codewörter (Nachrichten) N?
− Es soll ein Code C der Länge n für Nachrichten der Länge k erstellt werden. Was ist der maximale Fehlerschutz (d. h. maximales dmin), den man mit diesen Parametern erreichen kann?
− Es soll ein Code C für Nachrichten der Länge k mit vorgegebenem Fehlerschutz (t Bits) erstellt werden. Welches ist die kleinste Codewortlänge n, die dafür benutzt werden kann?
Im Folgenden sollen diverse Grenzen betrachtet werden.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.100
2.5 Schranken und perfekte Codes
Singleton-Schranke:Die Mindestdistanz und das Mindestgewicht eines linearen Codes C sind beschränkt durch
mknwd +=−+≤= 11minmin
Beweis: Allgemein gibt es qk verschiedene Codewörter, die eine Mindestdistanz von dmin zueinander haben. Entfernt man aus jedem Codewort die letzten dmin – 1 Symbole, müssen aber immer noch mindestens qk verschiedene Worte übrig bleiben. Andernfalls hätte die Codierung keine Mindestdistanz von dmin.Insgesamt gibt es allgemein qn verschiedene Wörter der Länge n (alle möglichen Kombinationen). Entfernt man hier die letzten dmin – 1 Symbole, sind höchstens qn – (dmin – 1) Wörter voneinander verschieden. Somit muss gelten: n – (dmin – 1) = n – dmin + 1 ≥ k oder dmin ≤ n – k + 1.
Ein Code, für den das Gleichheitszeichen in Gl. (2.21) gilt, heißt MaximumDistance Separable (MDS).
(2.21)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.101
2.5 Schranken und perfekte Codes
Aus Gl. (2.21) lässt sich mit Gl. (2.19) für die Fehlererkennung herleiten:
te + 1 = dmin ≤ 1 + m ⇒ m ≥ te
D. h., mindestens zwei Prüfstellen pro korrigierbarem Fehler sind notwendig.
(dmin − 1) / 2 ≥ t ≥ (dmin − 2) / 22 t + 1 ≤ dmin ≤ 1 + m ⇒ m ≥ 2 t
D. h., mindestens eine Prüfstelle pro erkennbarem Fehler ist notwendig.
Für die Fehlerkorrektur lässt sich mit den Gln. (2.20a/b) herleiten:
(2.22a)
(2.22b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.102
2.5 Schranken und perfekte Codes
Hamming-Schranke:Für einen binären (n,k)-Blockcode mit N = 2k Codewörtern der Länge n und der Korrekturfähigkeit t gilt:
nt
i
kin
220
≤⎟⎠
⎞⎜⎝
⎛∑=
1)1())1(()1(
⋅⋅−⋅−−⋅⋅−⋅
=⎟⎠
⎞⎜⎝
⎛K
K
tttnnn
tnnk
tnnnn
2210
2 ≤⎥⎦
⎤⎢⎣
⎡⎟⎠
⎞⎜⎝
⎛++⎟
⎠
⎞⎜⎝
⎛+⎟
⎠
⎞⎜⎝
⎛+⎟
⎠
⎞⎜⎝
⎛K
Beweis: Die Gesamtzahl aller Wörter innerhalb der 2k existierenden Deco-dierkugeln ist maximal gleich der Anzahl aller möglichen Wörter (2n), d. h.:
mit
Anzahl von Wörtern um ein Codewort mit dH = t
Anzahl von Wörtern um ein Codewort mit dH = 2Anzahl von Wörtern um ein Codewort mit dH = 1Codewort (Zentrum einer Decodierkugel)
(2.23)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.103
2.5 Schranken und perfekte Codes
Perfekte Codes:Wenn für einen Code C mit den Eigenschaften n, k und dmin die Gleichheit in der Hamming-Schranke (Gl. (2.23)) gilt, so heißt er perfekt.Dies bedeutet anschaulich, dass sich alle qn möglichen Empfangswörter innerhalb der Korrekturkugeln der qk Codewörter befinden. Somit können bei perfekten Codes alle verfälschten Codewörter eindeutig einem korrekten Codewort zugeordnet werden.Der Wiederholungscode ungerader Länge ist z. B. ein perfekter Code.
Weitere Schranken:Weiterhin gibt es die Plotkin- und die Elias-Schranke, die obere Schranken darstellen. Sie rechtfertigen sich durch die unterschiedliche Schärfe in verschiedenen Parameterbereichen.Die Gilbert-Varshamov-Schranke ist eine untere Schranke, deren Einhaltung die Existenz eines Codes garantiert.
(für weitere Informationen s. Schneider-Obermeier, Friedrichs)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.104
2.5 Schranken und perfekte Codes
Asymptotische Schranken für die Minimaldistanz:Letztendlich soll noch der Zusammenhang zwischen der Coderate RC und der normierten Distanz dmin/n betrachtet werden. Für große Codewortlängen (n → ∞) ergeben sich folgende Ausdrücke für die erwähnten Schranken:
– Singleton-Schranke:
– Hamming-Schranke:
– Plotkin-Schranke:
– Elias-Schranke:
– Gilbert-Varshamov-Schranke:
ndR min
C 1−≤
⎟⎠⎞
⎜⎝⎛ ⋅−≤
ndSR min
C 211
ndR min
C 21 ⋅−≤
⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛−−−≤
ndSR min
C 211211
⎟⎠⎞
⎜⎝⎛−≥
ndSR min
C 1
(2.24a)
(2.24b)
(2.24c)
(2.24d)
(2.24e)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.105
2.5 Schranken und perfekte Codes
Die oberen Schranken bilden verschiedene Grenzen, zu welchem Fehler-schutz (dmin/n) ein bestimmter Informationsgehalt (RC) übertragen werden kann. Die Gilbert-Varshamov-Grenze bildet die untere Grenze. Codes, die unter der unteren Grenze liegen, sind als schlecht anzusehen, da die Theorie besagt, dass es ausgehend von einem schlechten Code einen besseren mithöherer Coderategibt. DieseCodes sinddann als gutanzusehen.
0.0
0.2
0.4
0.6
0.8
1.0
0.0 0.2 0.4 0.6 0.8 1.0
RC=k/n
SingletonPlotkinEliasHamming
dmin / n
Gilbert-Varshamov
obereSchranken
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.106
2.6 Fehlerwahrscheinlichkeiten2.6.1 Fehlerauftrittswahrscheinlichkeit
2 Grundzüge der Kanalcodierung
Gegeben sei ein BSC mit der Fehlerwahrscheinlichkeit perr. Daraus ergibt sich eine mittlere Fehlerzahl nFehler pro Codewort von .Deren Auftrittswahrscheinlichkeit berechnet sich wie folgt:
errFehler pnn ⋅=
Die Wahrscheinlichkeit, dass kein Fehler auftritt, ist:nppppp )1()1()1()1()( errerrerrerr −=−⋅⋅−⋅−== K0f
n FaktorenDie Wahrscheinlichkeit eines einzelnen Fehlers an einer bestimmten Stelle (f = f1, wH(f1) = 1) ist: 1
errerr1 )1()( −−⋅== nppp ff
Die Wahrscheinlichkeit eines einzelnen Fehlers an einer beliebigen Stelle(f = f1, wH(f1) = 1) ist: 1
errerr1 )1()( −−⋅⋅== nppnp ffDie Wahrscheinlichkeit von ne Fehlern an beliebigen Stellen(f = fne
, wH(fne) = ne) ist:
eee
)1()( errerre
nnnn pp
nn
p −−⋅⋅⎟⎟⎠
⎞⎜⎜⎝
⎛== ff
(2.25a)
(2.25c)
(2.25b)
(2.25d)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.107
0.0
0.2
0.4
0.6
0.8
1.0
0.0 1.0 2.0 3.0 4.0 5.0
p(wH(f) = ne)
ne
perr = 0,01
perr = 0,1perr = 0,3
2.6.1 Fehlerauftrittswahrscheinlichkeit
Für die Binomialkoeffizientengilt allgemein:
Mit ihnen lässt sich diebinomische Formel darstellen:
; 10
=⎟⎠
⎞⎜⎝
⎛=⎟
⎠
⎞⎜⎝
⎛nnn
)!(!! ⎟
⎠
⎞⎜⎝
⎛−
=−⋅
=⎟⎠
⎞⎜⎝
⎛kn
nknk
nkn
nn
k kn
20
=⎟⎠
⎞⎜⎝
⎛∑=
;nknkn
kbaba
kn
)(0
+=⎟⎠
⎞⎜⎝
⎛∑ −
=
Für n = 7 ist hier die Fehlerauftritts-wahrscheinlichkeit nach Bitfehlerndargestellt.
(2.26)
(2.27)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.108
2.6.2 Wahrscheinlichkeit unerkannter Fehler2.6 Fehlerwahrscheinlichkeiten
Seien xi und xj Codewörter, wobei xi gesendet und y = xj empfangen wurde. Die Decodierregel wird annehmen, dass kein Fehler aufgetreten ist und xjals Codewort ansehen, das übertragen wurde. Dieser spezielle Fall eines Decodierfehlers kann nicht vermieden werden, der Fehler bleibt unerkannt. Für Codes, die Fehler detektieren sollen, ist die Wahrscheinlichkeit pue(undetected error) für einen unerkannten Fehler eine wichtige Kenngröße. Sie wird berechnet durch:
∑∑
∑ ∑
∑ ∑
−
=
−
≠=
−
−
=
−
≠=
−
−
=
−
≠=
−=
−=
=
1
0
1
0
),(),(
1
0
1
0
),(),(
1
0
1
0
HH
HH
)1(1
)1()(
)|()(
N
i
N
ijj
derr
dnerr
N
i
N
ijj
derr
dnerri
N
i
N
ijj
ijiue
ijij
ijij
ppM
ppxp
pxpp
xxxx
xxxx
xx
(2.28a)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.109
2.6.2 Wahrscheinlichkeit unerkannter Fehler
Es wird angenommen, dass Codewörter gleichwahrscheinlich auftreten. Die Doppelsumme und der Bedarf an allen möglichen Hamming-Distanzenbilden die Hauptschwierigkeit bei der Berechnung. Für die binären linearen Codes, die im nächsten Kapitel behandelt werden, gilt, dass die Verteilung von d(xi,xj) durch die Anzahl Ai der Codewörter mit dem Gewicht iermittelt werden kann.
∑=
− ⋅−⋅=n
di
iini ppAp
min
errerrue )1(
∑=
−−⋅⋅+=⎟⎟⎠
⎞⎜⎜⎝
⎛−
n
di
iii ppA
ppA
min
)1(11 errerr
err
err
⎥⎦
⎤⎢⎣
⎡−⎟⎟
⎠
⎞⎜⎜⎝
⎛−
−= 11
)1(err
errerrue p
pApp n
Mit der Gleichung
kommt man zu der Darstellung:
(2.28b)
(2.29)
(2.30a)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.110
2.6.2 Wahrscheinlichkeit unerkannter Fehler
Für kleine Fehlerwahrscheinlichkeiten perr kann pue angenähert werden durch:
Beispiel:Betrachtet sei der (7,4)-Hamming-Code, der ein binärer linearer Code ist. Dieser Code hat jeweils ein Codewort mit dem Gewicht 0 und 7 und jeweils 7 Codewörter mit dem Gewicht 3 und 4.Die Minimaldistanz ist
dmin = 3.Daraus ergibt sich eine Wahrscheinlichkeit pue von
pue = 7 (1 − perr)4 perr3 + 7 (1 − perr)3 perr
4 + perr7
= 7 perr3 − 21 perr
4 + 21 perr5 − 7 perr
6 + perr7 ≈ 7 perr
3
(2.30b)minmin
min
errerrerrue 1)( dd
n
di
ii pApApAp ⋅≈−=⋅≈ ∑
=
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.111
2.6.3 Restfehlerwahrscheinlichkeit2.6 Fehlerwahrscheinlichkeiten
Gegeben sei ein linearer Blockcode C = {c0,c1,c2, ... ,c2k-1} mit der Korrektur-fähigkeit t. Es wird angenommen, dass eine begrenzte Mindestdistanz-Decodierung (BMD) verwendet wird. Mit f sei der Fehlervektor bezeichnet. Dann gilt für die Wortfehlerwahrscheinlichkeit bei BMD pw,BMD:
∑∑+==
===−=
+≥=≤−=
−=
n
ti
t
iiwpiwp
twptwp
pp
1H
0H
HH
BMDW,
))(())((1
)1)(())((1
)gDecodierun richtige(1
ff
ff
ini ppin
iwp −−⋅⋅⎟⎠
⎞⎜⎝
⎛== )1())(( errerrH f
Die Wahrscheinlichkeit von Fehlervektoren mit dem Gewicht wH(f) = i ist mit Gl. (2.25d):
∑∑+=
−
=
− −⎟⎠⎞⎜
⎝⎛=−⎟
⎠⎞⎜
⎝⎛−=
n
ti
init
i
ini ppinppi
np1
errerr0
errerrBMDW, )1()1(1
Somit ist das Ergebnis:
(2.31a)
(2.31b)
(2.31c)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.112
2.6.3 Restfehlerwahrscheinlichkeit
Für kleine Fehlerwahrscheinlichkeiten gilt die Abschätzung:1
errBMDW, 1+⎟
⎠
⎞⎜⎝
⎛+
< tpt
np
BMDW,MLDW, pp ≤Zwischen den Wortfehlerwahrscheinlichkeiten bei MLD und BMD gilt die Beziehung:
2err
2err
2errerrerr
3err
2errerr
6errerr
7err
6err
1err
7err
0errW
27
21
)61(7)2171(1
)1(7)1(1
)1(17
)1(07
1
pp
pppppp
ppp
ppppp
⎟⎠
⎞⎜⎝
⎛=≈
+−−−+−−=
−−−−=
−⎟⎠
⎞⎜⎝
⎛−−⎟
⎠
⎞⎜⎝
⎛−=
KK
Beispiel: Für den (7,4)-Hamming-Code (s.o.) ergibt sich:
(2.31d)
Gleichheitszeichen, da Code perfekt
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.113
2.6.3 Restfehlerwahrscheinlichkeit
Letztendlich soll noch die Bitfehlerwahrscheinlichkeit pBit nach der Decodierung abgeschätzt werden:
pbit ∑=
=⋅==n
iiwpiw
k 0HH ))(()(|Wortdecod.proBitfehler d.Anz.1 ff
)ˆ,(),()ˆ,()ˆ,( HHHH xyyxxxuu dddd +≤≤
= i ≤ t
Die Anzahl der Bitfehler ist begrenzt auf die Anzahl der Informationsbits kund auf i + t, da gilt:
∑+=
=⋅+≤n
tiiwptik
kp
1Hbit ))((),min(1 f⇒
inin
tipp
in
ktip −
+=−⋅⋅⎟
⎠
⎞⎜⎝
⎛⋅⎟
⎠⎞
⎜⎝⎛ +
≤ ∑ )1(,1min errerr1
bitUnd schließlich:
Für kleine Fehlerwahrscheinlichkeitengilt die Abschätzung:
1err
minbit 1
,1min +⋅⎟⎠
⎞⎜⎝
⎛+
⋅⎟⎠⎞
⎜⎝⎛≤ tp
tn
kdp
(2.32)
(2.33)
(2.34)
(2.35a)
(2.35b)
Dreiecksungleichung
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.114
3 Einzelfehlerkorrigierende BlockcodesCodierungstheorie
In diesem Kapitel werden die grundlegenden Beziehungen der linearen Blockcodierung vermittelt. Neben den mathematischen Zusammenhängen und ihren Eigenschaften werden zwei einfache Codebeispiele betrachtet, die von großer Bedeutung sind: die allgemein zyklischen Codes und die Hamming-Codes. Weiterhin werden praktische Ansätze der Realisierung von solchen Codes anhand von Schieberegisterschaltungen betrachtet.
Ausgehend von einem Blockcode mit der Stufenzahl q, der Informations-stellenzahl k, der Codewortstellenzahl n und der Minimaldistanz dmin lautet die allgemeine Bezeichnung:
In diesem Kapitel werden nur binäre Codes betrachtet (q = 2). Auf den Index wird verzichtet. Bei den meisten Bezeichnungen wird anstelle der Minimaldistanz die Anzahl der Prüfstellen m verwendet oder auch darauf verzichtet:
(n,k,dmin)q-Blockcode
(n,k,m)-Blockcode bzw. (n,k)-Blockcode
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.115
3 Einzelfehlerkorrigierende Blockcodes
Ein grundlegendes Unterscheidungsmerkmal ist die Unterteilung insystematische / unsystematische Codes.
Bei systematischen Codes sind Informations- und Prüfstellen voneinander trennbar:
u0 u1 u2 u3 ... ... uk-1
↓ ↓ ↓ ↓ ↓ ↓ ↓
c0 c1 c2 c3 ... ... ck-1 ck ck+1 ... ... cn-1
m = n – kIm Gegensatz dazu sind die Informations- und Prüfstellen bei nicht-systematischen Codes nicht trennbar.Blockcodes haben aber die Eigenschaft, immer in äquivalente (d. h. durch
Vertauschung von Stellen) systematische Codes umformbar zu sein.
c = (u, p) (3.1)
(3.2)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.116
3.1 Mathematische Grundlagen3 Einzelfehlerkorrigierende Blockcodes
Rechnen im binären Zahlensystem (modulo 2):Addition: Multiplikation:⊕ 0 1
0 0 11 1 0
⊗ 0 10 0 01 0 1
Eine modulo-Berechnung wird in einer Gleichung oft explizit durch ihre Angabe verdeutlicht, z. B.: 1 + 1 = 0 mod 2.Mathematisch stellt dieses Zahlensystem mit seinen Rechenvorschriften das einfachste Beispiel für einen Körper K (Kapitel 4) dar. Praktisch sind sie durch eine XOR- bzw. UND-Verknüpfung realisierbar.Binäre Wörter bilden sogenannte n-Tupel von Elementen von Kn (Raum über alle n-stelligen Bitsequenzen). Die Addition in Kn erfolgt komponentenweise,
Beispiel aus K4: 0011 + 0101 = 0110,während die Multiplikation mit Elementen von K einfach definiert ist als:
0b = 0 und 1b = b für alle b ∈ Kn.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.117
3.1 Mathematische Grundlagen
Matrix-Darstellung von Blockcodes:Sei u ein Informationsvektor der Länge k und x der zugehörige Codewortvektor eines Blockcodes der Länge n. Dann sind u und xverknüpft durch
x = u G,wobei G die Generator-Matrix (k × n -Matrix) des Blockcodes darstellt.
Ist ein Code durch diese Matrixmultiplikation beschreibbar, wobei ubeliebig ist, so ist er linear.Die Zeilen der Generatormatrix müssen linear unabhängig sein.
Für systematische Blockcodes hat G die FormG = [Ik P]
mit der k × k -Einheitsmatrix Ik und der k × (n − k) - Prüfstellenmatrix P.
(3.3)
(3.4)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.118
3.1 Mathematische Grundlagen
Polynomdarstellung von Blockcodes:Ein n-stelliges Codewort c kann wie folgt als Polynom c(x) dargestellt werden:
( ) ∑−
=− =⇔=
1
0110 )(
n
i
iin xcxccccc K
c c(x)0000 ... 0 01000 ... 0 10100 ... 0 x0010 ... 0 x2
000 ... 01 xn−1
1111 ... 1 1 + x + x2 + ... + xn−1
1010 ... 0 1 + x2
Beispiele: c1 = 0011 ⇔ c1(x) = x2 + x3;c2 = 0101 ⇔ c2(x) = x + x3;(s. a. Tabelle für weiterePolynombeispiele vonCodewörtern der Länge n).
Die Addition von Vektoren entsprichtder Addition von Polynomen.Beispiel: c1 + c2 = 0110
⇔ c1(x) + c2(x) = x2 + x3 + x + x3 = x + x2.
(3.5)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.119
3.1 Mathematische Grundlagen
Gewichtsfunktion:Gegeben sei ein Blockcode C. Dann sei Ai die Anzahl von Codewörtern von C, die das Gewicht i (0 ≤ i ≤ n) besitzen. Dann sei die Gewichtsfunktion A(z) bzw. W(x,y):
Zwischen diesen beiden Schreibweisen bestehen die Beziehungen:
∑=
=n
i
ii zAzA
0)( ∑
=
−=n
i
iini yxAyxW
0),(
),1()( zWzA = )(),(xyAxyxW n=
Die Gewichtsfunktion ist nur für wenige Codes geschlossen berechenbar.Manche Codes besitzen eine symmetrische Gewichtsverteilung: Ai = An−i.Die Gewichtsverteilung ermöglicht die exakte Berechnung der Restfehler-wahrscheinlichkeit (s. Kapitel 2).Für die Gewichtsverteilung eines linearen Codes mit der Minimaldistanz
dmin gilt: A0 = 1; An ≤ 1 und Ai = 0 für 0 < i < dmin.
(3.6b)
(3.6a) (3.7a)
(3.7b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.120
3.1 Mathematische Grundlagen
Beispiel: (4,3)-Paritätskontrolle
Codewort Information Prüfstelle Gewichtc0 000 0 0c1 001 1 2c2 010 1 2c3 011 0 2c4 100 1 2c5 101 0 2c6 110 0 2c7 111 1 4
4261)( zzzA ++=
Die Gewichtsverteilung aus der Tabelle führt zu einer Gewichtsfunktion von:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.121
3.2 Eigenschaften und Begriffe linearer Blockcodes3 Einzelfehlerkorrigierende Blockcodes
Für einen linearen Blockcode C, der durch Gl. (3.3) beschrieben ist, gilt:
– Jedes Codewort ist eine Linearkombination von Zeilen der Generator-matrix G;
– der Code setzt sich aus allen Linearkombinationen von Zeilen von Gzusammen;
– die Summe von Codewörtern ist wieder ein Codewort und– im Code ist der Nullvektor (0 0 0 ... 0) enthalten.
Elementare Zeilenoperationen in G ändern einen Code nicht, d. h. derCoderaum C bleibt gleich:
– Vertauschung zweier Zeilen,– Multiplikation einer Zeile mit einem Skalar ungleich 0 und– Addition einer Zeile zu einer anderen.
Allerdings ändert sich die Zuordnung der Informationswörter u zu denCodewörtern x.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.122
3.2 Eigenschaften und Begriffe linearer Blockcodes
Prüfmatrix:Für einen linearen Blockcode C ist eine Prüfmatrix H definiert durch:
( ) 0PPIPPII
PPIHG =+=+=⎟⎟
⎠
⎞⎜⎜⎝
⎛= −
−knk
knk
T
c HT = 0 für alle c ∈ C und x HT ≠ 0 für alle x ∉ CH ist eine (n − k) × n -Matrix. Es gilt:
0 = c HT = (u G) HT = u (G HT) → G HT = 0
D. h., dass die Generatormatrix G und die Prüfmatrix H orthogonal zueinander sind.Wie für G sind auch für H elementare Zeilenoperationen erlaubt.Handelt es sich bei C um einen systematischen Code mit G = (Ik P), so gilt für H: H = (PT In − k)
Für diesen Fall kann die Orthogonalität wie folgt nachgewiesen werden:
(3.8a/b)
(3.9)
(3.10)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.123
3.2 Eigenschaften und Begriffe linearer Blockcodes
Syndrom:Sei H die Prüfmatrix eines linearen (n,k,m)-Blockcodes und x ∈ C ein beliebiges zu sendendes Codewort. Bei der Übertragung überlagert sich ein Fehlerwort f, so dass das Empfangswort y lautet:
– s ist nur dann ein Nullvektor, wenn y ein Codewort ist,– alle Fehlervektoren f werden erkannt, die nicht Codewörter sind, und– s ist unabhängig vom Codewort.
Dann gilt für das Produkt aus y und HT:y HT = (x + f) HT = x HT + f HT = 0 + f HT = f HT = s
Das Produkt y HT wird als Syndrom s bezeichnet, die dargestellte Berechnung ist die Syndromberechnung in Matrix-Schreibweise.Die Eigenschaften von s sind:
y = x + f. (3.11)
(3.12)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.124
3.2 Eigenschaften und Begriffe linearer Blockcodes
Dualer Code:Ausgehend von einem Code C mit der Generatormatrix G und der Prüfmatrix H sei ein dualer Code Cd, beschrieben durch seine duale Generatormatrix Gd und duale Prüfmatrix Hd, definiert durch:
Gd = H und Hd = GDie Codewörter der beiden Codes sind orthogonal. Mit c = u G ∈ C und cd = v H ∈ Cd gilt:
( ) ( ) 0TTTTTd ==== v0uvHGuHvGucc
Beispiele für Codes, die zueinander dual sind, sind der Wiederholungscode (Index W) und die Paritätskontrolle mit der ersten Stelle als Prüfstelle (Index P):
( )111|1 L=GW = HP
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
10000
010001
||||
1
11
L
OM
M
L
MHW = GP.
(3.13a/b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.125
3.2 Eigenschaften und Begriffe linearer Blockcodes
Gewichtsfunktion des dualen Codes (MacWilliams-Identität):Ist A(z) die Gewichtsfunktion eines (n,k)-Blockcodes, so ist die Gewichtsfunktion Ad(z) des zugehörigen dualen Codes:
⎟⎠⎞
⎜⎝⎛
+−
⋅+⋅= −zzAzzA nk
11)1(2)(d ⎟
⎠⎞
⎜⎝⎛
+−
⋅+⋅= −−zzAzzA nkn
11)1(2)( d
)(
),(2),(d yxyxWyxW k −+⋅= − ),(2),( d)( yxyxWyxW kn −+⋅= −−
Beispiel: Für die (3,2)-Paritätskontrolle ist der Code C:C = {000,011,101,110}.
Die Gewichtsfunktion lautet: A(z) = 1 + 3z2.
32
32d 1
1131)1(2)( z
zzzzA +=
⎥⎥⎦
⎤
⎢⎢⎣
⎡⎟⎠⎞
⎜⎝⎛
+−
+⋅+⋅= −
Dazu lautet der duale Code Cd = {000,111} (Wiederholungscode).Die Gewichtsfunktion berechnet sich zu:
(3.14a/b)
(3.15a/b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.126
3.2 Eigenschaften und Begriffe linearer Blockcodes
Modifikationen linearer Codes:Ein (n,k,dmin)q-Code kann wie folgt zu einem (n',k',dmin')q-Code verändert werden:– Expandieren (extending): Anhängen zusätzlicher Prüfstellen
n' > n, k' = k, m' > m, RC' < RC, dmin' ≥ dmin– Punktieren (puncturing): Reduktion von Prüfstellen
n' < n, k' = k, m' < m, RC' > RC, dmin' ≤ dmin– Verlängern (lengthening): Anhängen zusätzlicher Informationsstellen
n' > n, k' > k, m' = m, RC' > RC, dmin' ≤ dmin– Verkürzen (shortening): Reduktion von Informationsstellen
n' < n, k' < k, m' = m, RC' < RC, dmin' ≥ dminDie Expansion eines Codeworts, das eine ungerade Minimaldistanz besitzt, kann durch Zufügen einer Parity-Check-Stelle zu einer Erhöhung der Minimaldistanz um 1 führen, so dass der Code einen weiteren Fehler erkennen kann (Bsp. s. Hamming-Codes).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.127
3.3 Zyklische Codes3 Einzelfehlerkorrigierende Blockcodes
Definition zyklischer Codes:Ein linearer (n,k)-Blockcode heißt zyklisch, wenn jede zyklische Verschiebung eines Codewortes wieder ein Codewort ist:
C ∈⇒∈ −−− ),,,,(),,,,( 21011210 nnn cccccccc KK C
Die Menge der zyklischen Codes ist eine Teilmenge der linearen Blockcodes. Dementsprechend besteht zwischen einem Nachrichtenwort
die Beziehungc = u G.
u = (u0, u1, u2, ... , uk−1)und einem Codewort
c = (c0, c1, c2, ... , cn−1)
Somit ist ein zyklischer Code ebenfalls durch eine Generatormatrix Gbeschrieben. Dabei besitzen alle zyklischen Codes zumindest eine
Generatormatrix mit Bandstruktur (s. Gl. (3.18) u. folgendes Beispiel).
(3.16)
(3.17)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.128
3.3 Zyklische Codes
Beispiel für einen zyklischen Code:
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
1011000010110000101100001011
G
u x0000 00000001000 11010000100 01101000010 00110100001 00011011110 10001100111 01000111101 1010001
u x1011 11111111010 11100100101 01110011100 10111000110 01011100011 00101111111 10010111001 1100101
Aufgrund der zyklischen Eigenschaft ist der Code allein leicht herzuleiten. In diesem Fall reicht die Kenntnis der Codewörter {0000000, 1101000, 1110010, 1111111} aus. Diese müssen allerdings zuerst gefunden werden (über Linearkombinationen von Zeilen von G + Nullwort). Die restlichen Wörter ergeben sich durch zyklische Verschiebung. Abbruchkriterium:
2k gefundene Wörter.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.129
3.3 Zyklische Codes
Generatormatrix mit Bandstruktur:
⎟⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
=
−
−
−
−
−
kn
kn
kn
kn
kn
gggggggg
gggggggg
gggg
KK
KK
MM
MM
KK
KK
KK
210
210
210
210
210
00000000
000000000000
G
Vorsicht: Generatormatrizen mit Bandstruktur beschreiben nicht notwendigerweise zyklische Codes!Beispiel: C = {00000, 11010, 01101, 10111} mit der Generatormatrix
⎟⎟⎠
⎞⎜⎜⎝
⎛=
1011001011
G
ist kein zyklischer Code.
(3.18)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.130
3.3 Zyklische Codes
Generatorpolynom:Die Generatormatrix G eines zyklischen Codes ist somit durch eine Zeile von G vollständig charakterisiert. Sie beinhaltet höchstens n − k + 1 von 0 verschiedene Einträge: g0, g1, g2, ... , gn−k. Diese Koeffizienten bilden ein besonderes Polynom:
g(x) = g0 + g1 x + g2 x2 + ... + gn−k xn−k
g(x) heißt Generatorpolynom.Die Koeffizienten des Generatorpolynoms können bei den binären Codes nur Werte von 0 oder 1 annehmen. Für einen (n,k)-Blockcode muss weiterhin gelten:
g0 = gn−k = 1⇒ g(x) = 1 + g1 x + g2 x2 + ... + xn−k
Mit Polynomen ergibt sich bei zyklischen Codes eine vereinfachteBeschreibung von Generatormatrix, Nachrichten- und Codevektoren.
(3.19b)
(3.19a)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.131
3.3 Zyklische Codes
Die Polynom- und Matrixschreibweise ist hier nebeneinander aufgeführt:Nachrichtenworte:
u = (u0, u1, u2, ... , uk−1) u(x) = u0 + u1 x + u2 x2 + ... + uk−1 xk−1
Codeworte:c = (c0, c1, c2, ... , cn−1) c(x) = c0 + c1 x + c2 x2 + ... + cn−1 xn−1
Codierungsvorschrift:c = u G c(x) = u(x) ⋅ g(x)
M M M M
Beide Vorschriften ergeben mit den Gln. (3.18/19b) dieselben Ergebnisse:c0 = u0 g0c1 = u0 g1 + u1 g0c2 = u0 g2 + u1 g1 + u2 g0
Die allgemeine Darstellung eines Codewortpolynoms ist somit:c(x) = (u0 + u1 x + u2 x2 + ... + uk−1 xk−1) ⋅ g(x)⇒ g(x) ist das Codewortpolynom mit geringstem Grad größer Null.
(3.20a/b)
(3.20c/d)(3.20e/f)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.132
3.3 Zyklische Codes
Periode eines Generatorpolynoms:Sei g(x) das Generatorpolynom eines zyklischen Codes C. Und sei r der kleinste Exponent, für den gilt
xr + 1 = 0 mod g(x).g(x) ist dann Teiler von xr + 1, und r ist die Periode von g(x).Eine zyklische Eigenschaft besteht nur, wenn für die Codewortlänge n gilt:
n = r
Für den Beweis wird der folgende Satz verwendet, der mit Gl. (3.20f) recht einleuchtend ist:
Satz: Jedes Codewortpolynom c(x) ist ohne Rest durch g(x) teilbar.
Beispiel: g(x) = 1 + x + x3, u(x) = 1 + x2 + x3
⇒ c(x) = u(x) ⋅ g(x) = 1 + x + x2 + x3 + x4 + x5 + x6 ⇔ c = (1111111)
(3.22)
(3.21)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.133
3.3 Zyklische Codes
d ist nur ein Codewort, wenn d(x) ohne Rest durch g(x) teilbar ist. Deshalb muss gelten:
1 + xn = 0 mod g(x).
Nur wenn das Generatorpolynom die Bedingung (3.23) erfüllt, entsteht ein zyklischer Code.
Beweis der Bedingung (3.22): Es soll gelten, dassc = (c0, c1, c2, ... , cn−1) ∈ C ⇒ d = (cn−1, c0, c1, ... , cn−2) ∈ C.
= c(x)= x ⋅ c(x) + cn−1 (1 + xn)
c(x) = c0 + c1 x + c2 x2 + ... + cn−1 xn−1 ist ohne Rest durch g(x) teilbar:c(x) = 0 mod g(x) ⇒ x ⋅ c(x) = 0 mod g(x)d(x) = cn−1 + c0 x + c1 x2 + ... + cn−2 xn−1
= cn−1 + x (c0 + c1 x + c2 x2 + ... + cn−1 xn−1) + cn−1 xn
(3.23)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.134
3.3 Zyklische Codes
Bestimmung eines Generatorpolynoms:g(x) ist Teiler von 1 + xn. Allgemein heißt das, dass 1 + xn in einzelne Faktoren zerlegt werden kann. Jeder Faktor kann dann als Generator-polynom verwendet werden.
Beispiel: x7 + 1 = (1 + x) ⋅ (1 + x + x3) ⋅ (1 + x2 + x3)
Berechnung der Periode eines gegebenen Generatorpolynoms:Dies geschieht durch Umkehrung des Gauß’schen Divisionsalgorithmus. Das Polynom wird so geshiftet, dass sich immer die niedersten Potenzen aufheben.Beispiel: (x3 + x + 1) ⋅ p(x) = xn + 1
x3 + 0 + x + 1 | ⋅1x4 + 0 + x2 + x | ⋅x ⇒ p(x) = x4 + x2 + x + 1
x5 + 0 + x3 + x2 | ⋅x2 = h(x)x7 + 0 + x5 + x4 | ⋅x4
x7 + 0 + 0 + 0 + 0 + 0 + 0 + 1 ⇒ n = 7
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.135
3.3 Zyklische Codes
Prüfmatrix und Prüfpolynom:Für das Generatorpolynom g(x) eines zyklischen (n,k)-Blockcodes gilt:
xn + 1 = g(x) ⋅ h(x).
⎟⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
=
−−
−−
−−
−−
−−
021
021
021
021
021
00000000
000000000000
hhhhhhhh
hhhhhhhh
hhhh
kkk
kkk
kkk
kkk
kkk
KK
KK
MM
MM
KK
KK
KK
H
h(x) ist das Prüfpolynom und hat den Grad k:h(x) = h0 + h1 x + h2 x2 + ... + hk xk
mit h0 = hk = 1.
Die zugehörige (n − k) × n -Prüfmatrix H hat den folgenden Aufbau:
(3.25a)
(3.25b)
(3.24)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.136
3.3 Zyklische Codes
Systematische Codierung:Zyklische Codes sind im Allgemeinen nicht systematisch. Um dies zu erreichen, wird die folgende Konstruktionsvorschrift angewendet:
)()()(
)()(
xgxrxq
xgxxu kn
+=⋅ −
1. Multiplikation des Nachrichtenpolynoms u(x) mit xn−k:u(x) ⋅ xn−k = u0 xn−k + u1 xn−k+1 + u2 xn−k+2 + ... + uk−1 xn−1
(entspricht Verschiebung der Nachrichtenstellen zu den höchstenKoeffizienten hin).
2. Division des Polynoms u(x) ⋅ xn−k durch g(x): d. h., u(x) ⋅ xn−k = q(x) ⋅ g(x) + r(x) mit q(x) alsganzzahligem Divisionsergebnis und r(x) als Divisionsrest (imAllgemeinen: r(x) ≠ 0 und r(x) = r0 + r1 x + r2 x2 + ... + rn−k−1 xn−k−1).
3. Erzwingen der ganzzahligen Dividierbarkeit durch Addition von r(x):u(x) ⋅ xn−k + r(x) = q(x) ⋅ g(x) = c(x).
Resultierendes Codewort: c = (r0, r1, r2, ... , rn−k−1, u0, u1, u2, ... , uk−1)(3.27)
(3.26b)
(3.26a)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.137
3.3 Zyklische Codes
Beispiel:Mit dem zyklischen (7,4)-Blockcode mit der Generatormatrix
g(x) = x3 + x + 1soll für das Nachrichtenwort
u = (1 0 0 1), d. h. u(x) = x3 + 1,ein systematisches Codewort entwickelt werden.
13
2
++
+
xxxx
1. Mit n = 7 und k = 4 ist n − k = 3. Dann ist u(x) ⋅ xn−k = x6 + x3.2. Division des Polynoms u(x) ⋅ xn−k durch g(x):
(x6 + 0 + 0 + x3) : (x3 + 0 + x + 1) = x3 + x ++ (x6 + 0 + x4 + x3)
(0 + 0 + x4 + 0 + 0 + 0)+ (x4 + 0 + x2 + x)
(0 + 0 + x2 + x) = r(x)3. c(x) = u(x) ⋅ xn−k + r(x) = x6 + x3 + x2 + x ⇒ c = (0 1 1 1 0 0 1)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.138
3.3 Zyklische Codes
Decodierung von zyklischen Codes:Geprüft werden soll der Empfangsvektor y bzw. das Empfangspolynom y(x)
y = c + f ⇔ y(x) = c(x) + f(x).
)()()(
)()(
xgxsxq
xgxy
+=
Es gilt, dass ein Codewort c ohne Rest durch das Generatorpolynom g(x) teilbar ist. Das Ergebnis ist das ursprüngliche Informationswort u, das auf diese Weise wieder herausgerechnet werden kann. Für ein beliebiges y ist dieses Verfahren eine Testmöglichkeit, ob es sich dabei um ein Codewort handelt oder nicht. Im Fehlerfall bleibt bei der Division ein Rest übrig:
s(x) stellt das Syndrom in der Polynomschreibweise dar:y(x) = q(x) ⋅g(x) + s(x).
Wenn s(x) ≠ 0 ist, erfolgt die Fehlerkorrektur mit Hilfe einer Syndrom-Tabelle. Die Polynomdivision wird praktisch durch Schieberegister-Schaltungen realisiert. Der große Vorteil ist, dass bei der Codierung und
Decodierung keine Matrix-Multiplikationen notwendig sind.
(3.28)
(3.29a)
(3.29b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.139
3.4 Hamming-Codes3 Einzelfehlerkorrigierende Blockcodes
Definition der Hamming-Codes:Sei m ≥ 3. Ein Hamming-Code ist ein Code mit Codewörtern der Längen = 2m − 1, bestehend aus k = 2m − m − 1 Informationsbits und m Prüfbits. Die Minimaldistanz ist 3.
Der Hamming-Code ist somit ein (2m − 1,2m − 1 − m)-Blockcode.Für den Code ergeben sich u. a. folgende Werte für n, k und m:
m 3 4 5 6 7 8n 7 15 31 63 127 255k 4 11 26 57 120 247
Aufgrund seiner Minimaldistanz kann er genau einen Fehler korrigieren. Seine Konstruktion ist in Wahrheit darauf ausgelegt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.140
3.4 Hamming-Codes
Ableitung der Konstruktionsvorschrift für Hamming-Codes:Ziel: Konstruktion eines Codes, der genau einen Fehler korrigieren kann.Das Syndrom s der Länge m hängt nur vom Fehlervektor f der Länge n ab (Gl. (3.12)). Ein Einzelfehler an der Stelle i (fi = 1; 0 ≤ i ≤ n − 1) führt zu einem Syndrom, das der entsprechenden Zeile von HT entspricht. Um alle Einzelfehlerpositionen i eindeutig zu unterscheiden, müssen sich alle Zeilen von HT unterscheiden, wobei keine Zeile der Nullvektor sein darf.Insgesamt gibt es 2m − 1 verschiedene Zeilen ohne den Nullvektor, somit ist n = 2m − 1. Mit n = k + m ist k = 2m − m − 1.Praktisch werden die Zeilen von HT bzw. die Spalten von H durch alle möglichen Sequenzen bis auf den Nullvektor gebildet.Auf diese Weise können die m = n − k Kontrollstellen die 2m − 1 Positionen adressieren.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.141
3.4 Hamming-Codes
Da es unerheblich ist, welches Syndrom eine Fehlerposition beschreibt, können die Bitsequenzen willkürlich angeordnet werden. Auf diese Weise kann die Prüfmatrix so angeordnet werden, dass der resultierende Hamming-Code systematisch ist:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
== −
10000
010001
||||
11
1101
)I( T
L
OM
M
L
LL
LLMM
LL
LL
knPH
alle möglichen Spaltenvektoren mit mehr als einer 1Die Generatormatrix ist dann mit Gl. (3.4) leicht abzuleiten.
(3.30)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.142
3.4 Hamming-Codes
Beispiel: Für den (7,4)-Hamming-Code ergibt sich die folgende systematische Darstellung:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
110|101|011|111|
1000010000100001
G
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
1101
1011
0111
P⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡== −
100
010
001
|||
110
101
011
111
)I( TknPH
u0 u1 u2 u3
↓ ↓ ↓ ↓
c0 c1 c2 c3 c4 c5 c6
Kontrollstellen:c4 = c0 + c1 + c2c5 = c0 + c1 + c3c6 = c0 + c2 + c3
⇒
⇒Damit ergibt sich die folgende Systematik mit den dazugehörigen Gleichungen für die Berechnung der Kontrollstellen:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.143
3.4 Hamming-Codes
Beispiel (Fortsetzung):Codewort-Tabelle des (7,4)-Hamming-Codes:
Codewort Information Prüfstellenc8 1000 111c9 1001 100c10 1010 010c11 1011 001c12 1100 001c13 1101 010c14 1110 100c15 1111 111
Codewort Information Prüfstellenc0 0000 000c1 0001 011c2 0010 101c3 0011 110c4 0100 110c5 0101 101c6 0110 011c7 0111 000
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.144
3.4 Hamming-Codes
Fehlerkorrektur bei Hamming-Codes:Beispiel (Fortsetzung): Fehlerkorrektur mit dem (7,4)-Hamming-Code
s0 = y0 + y1 + y2 + y4s1 = y0 + y1 + y3 + y5s2 = y0 + y2 + y3 + y6
Diese werden gemäß derSyndrom-Tabelle ausgewertet.
SyndromFehlerposition s0 s1 s2
kein Fehler 0 0 0Fehler in 0. Stelle 1 1 1Fehler in 1. Stelle 1 1 0Fehler in 2. Stelle 1 0 1Fehler in 3. Stelle 0 1 1Fehler in 4. Stelle 1 0 0Fehler in 5. Stelle 0 1 0Fehler in 6. Stelle 0 0 1
Das zugehörige Syndrom ist allgemein: s = (s0 s1 s2).Aus der Prüfmatrix ergeben sichdie Prüfgleichungen:
Die Decodierschritte sind dann:1. Auswertung der Prüfgleichungen → Syndrom;2. Bestimmung der Fehlerposition aus der Syndromtabelle;3. Durchführung der Fehlerkorrektur: „1“ an der Fehlerposition addieren.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.145
3.4 Hamming-Codes
Minimaldistanz allgemeiner Hamming-Codes:Alle Spalten der Prüfmatrix unterscheiden sich. Damit sind immer zwei Spalten linear unabhängig. Da aber alle möglichen Bitkombinationen existieren, sind drei Spalten immer linear abhängig, z. B.:
100000...., 010000.... und 110000....Damit ist die Minimaldistanz immer
dmin = 3und die Anzahl korrigierbarer Fehler
t = 1.
⎥⎥
⎦
⎤
⎢⎢
⎣
⎡−⋅+⋅++
+=
+−2
12
1
)1()1()1(1
1)(nn
n zznzn
zA
Gewichtsfunktion allgemeiner Hamming-Codes:
(3.31a)
(3.31b)
(3.32)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.146
3.4 Hamming-Codes
Auf den Seiten 109 und 111 wurden bereits die beiden Wahrscheinlichkeiten für einen (7,4)-Hamming-Code berechnet. Für ngleich 3, 7, 15, 31, 63 und 127 sind sie in der nebenstehenden Grafik dargestellt.
-6 -5 -4 -3 -2 -1 0-12
-10
-8
-6
-4
-2
0
lg pW
lg perr
lg pue
pW = perr
pW = perr2
pW = perr3
n = 3n = 7
lg pW
lg pue
Wortfehlerwahrscheinlichkeit und Wahrscheinlichkeit unerkannter Fehler von Hamming-Codes:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.147
3.4 Hamming-Codes
Der erweiterte Hamming-Code unterscheidet zwischen der 1- und 2-Fehlersituation durch eine zusätzliche Prüfstelle. Damit handelt es sich um einen (2m,2m − 1 − m)-Blockcode. Die zugehörige Generatormatrix des erweiterten Hamming-Codes ist:
Erweiterter (expandierter) Hamming-Code:Durch Syndrom-Auswertung ist ein Fehler korrigierbar. Mit einer Minimaldistanz von 3 sind aber auch zwei Fehler erkennbar und führen somit ebenfalls auf ein s ≠ 0. Ob ein Fehler oder zwei aufgetreten sind, ist aber nicht zu unterscheiden.
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
1
11
HextH,M
GG (3.33)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.148
3.4 Hamming-Codes
Mögliche Fehlerereignisse sind dann:– kein Fehler: s = 0;– ein Fehler: s ≠ 0, sm+1 = 1; – zwei Fehler: s ≠ 0, sm+1 = 0.
Die Decodierung erfolgt dann nach diesen Regeln:– s = 0:
Empfangsvektor = Codewort– s ≠ 0, sm+1 = 1:
ungerade Anzahl von Fehlern ⇒ ein Fehler angenommen und durch Syndrom-Auswertung korrigiert
– s ≠ 0, sm+1 = 0:gerade Anzahl von Fehlern ⇒ Fehler können nicht korrigiert werden.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.149
3.5 Realisierung von Codierung und Decodierung durch Schieberegisterschaltungen 3 Einzelfehlerkorrigierende Blockcodes
Grundschaltungen:
S0 . . . .S1 Sm−1
a(x) x ⋅ a(x)
a a + b
b
a a ⋅ b a a ⋅ bbAddierer Multiplizierer Skalierung
Schieberegister bestehen aus Speicherzellen, die jeweils um einen Takt verzögern. Mit Sj(i) wird der Inhalt der Speicherzelle j zum Zeitpunkt ibezeichnet. Dabei gilt:
Sj+1(i+1) = Sj(i) (3.34)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.150
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Zyklisches Verschieben eines Polynoms:Schieberegisterschaltungen sind speziell für zyklische Codierungen eine exzellente Realisierungsmöglichkeit. Die dafür notwendigen mathematischen Operationen sind allesamt mit dieser Technik zu bewerkstelligen. Eine davon ist die zyklische Verschiebung einesPolynoms:
x0
. . . .
x1 x2 xn−1xn−2xn−3
Die Schaltung berechnetxi ⋅ a(x) mod (xn + 1)
und bildet das einfachste Beispiel eines rückgekoppelten Schieberegisters.(3.35)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.151
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Multiplikation zweier Polynome:Zu berechnen ist eine Gleichung der Form
c(x) = a(x) ⋅ [b0 + b1 x + b2 x2 + ... + bn xn].
b0
. . . .a(x)
. . . .
b1bn−1bn
c(x)
b0
. . . .a(x)
. . . .
b1 b2 bn
c(x)
AlternativeStruktur:
(3.36)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.152
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Beispiel für eine Multiplikation:Berechnet werden soll
b0 = 1 b1 = 0 b2 = 1 b3 = 1
10111
11110011
s0 s1 s2 s3
i s0 s1 s2 s3 ci
−1 0 0 0 0 00 1 0 0 0 11 1 1 0 0 12 1 1 1 0 03 0 1 1 1 04 1 0 1 1 15 0 1 0 1 16 0 0 1 0 17 0 0 0 1 18 0 0 0 0 0
c(x) = a(x) ⋅ b(x) = (x4 + x2 + x +1 )⋅(x3 + x2 + 1) = x7 + x6 + x5 + x4 + 0 + 0 + x + 1
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.153
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Division zweier Polynome:
Ausgehend von der Schaltung wird diese Gleichung berechnet:q(x−1) = a(x−1) xm + q(x−1) [b0 xm + b1 xm−1 + ... +bm−1 x]
⇒ a(x−1) = q(x−1) [b0 + b1 x−1 + ... + bm−1 x−(m−1) + x−m] = q(x−1) b(x−1)
wird abgebrochen, wenn die letzte Stelle von a(x−1) in das Schieberegister eingeschrieben wurde. Dann ist q(x−1) das Ausgangswort und s(x−1) der
Inhalt der Speicherzellen.
b0
. . . .
a(x−1) . . . . q(x−1)
b1 bm−1
)()()(
xbxaxq =Substitution x−1 → x ⇒ a(x) = q(x) b(x) ⇒
)()()(
)()(
xbxsxq
xbxa
+=Bei der Division zweier Polynome mit Rest
(3.37a)
(3.37b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.154
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Beispiel für eine Division zweier Polynome mit Rest:
x0 x1 x2 x3 x4
000100001 001110000s0 s1 s2 s3
q(x−1)a(x−1)
i ai s0 s1 s2 s3 qi
9 0 0 0 0 0 08 1 1+0=1 0+0=0 0 0+0=0 07 0 0+0=0 1+0=1 0 0+0=0 06 0 0+0=0 0+0=0 1 0+0=0 05 0 0+0=0 0+0=0 0 1+0=1 04 0 0+1=1 0+1=1 0 0+1=1 13 1 1+1=0 1+1=0 1 0+1=1 12 0 0+1=1 0+1=1 0 1+1=0 11 0 0+0=0 1+0=1 1 0+0=0 00 0 0+0=0 0+0=0 1 1+0=1 0
Berechnet wird(x8 + x3) : (x4 + x3 + x + 1)
134
23
+++
+
xxxxx
= x4 + x3 + x2 +
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.155
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Schaltung zur Codierung einessystematischen zyklischen Codes:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.156
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Funktionsweise:
1. Einlesen der Informationsbits u0, u1, u2, ... , uk−1, beginnend mit uk−1.Das Einlesen von „rechts“ entspricht der Multiplikation mit xn−k. Nachdem Einlesen der k Informationsbits enthält das Schieberegister denDivisionsrest r(x).
2. Umlegen der Schalter S1 und S2 (Unterbrechung der Rückkopplungs-schleife).
3. Ausgabe der Prüfbits.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.157
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Beispiel:Zu codieren ist u(x) = x3 + x2 + 1mit g(x) = x3 + x + 1. t s1 b0 b1 b2 s2 s3
0 0 0 0 0 0 01 1 1 1 0 1 12 1 1 0 1 1 13 0 1 0 0 1 04 1 1 0 0 1 15 0 1 0 0 06 0 0 1 0 07 0 0 0 0 1
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.158
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Schaltung zur Decodierung:Mit dieser Schaltung wird das Empfangswort durch das Generatorpolynom dividiert und das Syndrom berechnet.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.159
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Diese Schaltung wird ebenfalls zur Decodierung eingesetzt. Das Empfangswort wird hierbei aber von rechts eingelesen.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.160
3.5 Realisierung von Codierung und Decodierung durch Schieberregisterschaltungen
Meggitt-Decoder: Decodierung mit gleichzeitiger Fehlerkorrektur
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.161
4 Bündelfehlerkorrigierende BlockcodesCodierungstheorie
Dieses Kapitel stellt mit den Reed-Solomon-Codes (RS-Codes) Vertreter der bekanntesten und oft verwendeten Codes vor, die in der Lage sind, Bündelfehler zu korrigieren. Sie sind eng verwandt mit den Bose-Chaudhuri-Hocquenghem-Codes (BCH-Codes), die ihre Stärke eher in der Korrektur von statistisch verteilten Einzelfehlern haben und am Ende des Kapitels als Sonderfall der RS-Codes vorgestellt werden.
Zum Verständnis dieser beiden Codes ist die Kenntnis der Algebra von endlichen Zahlenkörpern (Galois-Felder) und ihrer Eigenschaften notwendig. Diese werden zuerst im folgenden Abschnitt entwickelt.
Unter einem Bündelfehler (engl.: burst error) der Länge l ≥ 1 versteht man laufeinander folgende Stellen eines Fehlervektors f, dessen erste und letzte Stelle ungleich Null sind. Die Werte der Stellen, die zwischen der ersten und letzten Stelle des Fehlerbündels liegen, sind beliebig.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.162
4.1 Algebraische Grundbegriffe für Codes4 Bündelfehlerkorrigierende Blockcodes
Dieser Abschnitt gibt eine kurze Einführung in die für die Codierungstheorie notwendige Algebra. Grundkenntnisse in der Mengenlehre werden dabei vorausgesetzt. Der Begriff der Verknüpfung wird kurz zusammengefasst.
Binäre Verknüpfung:In einer nichtleeren Menge MM wird unter einer binären Verknüpfung ° eine Zuordnung zweier Elemente a,b von MM (a,b ∈ MM) derart verstanden:
a ° b = c.Hierbei muss nicht unbedingt gelten: a ° b = b ° a.Ist die Bedingung (4.1b) aber erfüllt, ist die Menge kommutativ.Diese Menge heißt bezüglich der binären Verknüpfung abgeschlossen(abgeschlossene Menge), wenn gilt: a ° b ∈ MM für alle a,b ∈ MM.Eine binäre Verknüpfung heißt assoziativ, wenn gilt:
a ° (b ° c) = (a ° b) ° c, a,b,c ∈ MM.
(4.1a)(4.1b)
(4.1c)
(4.1d)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.163
4.1 Algebraische Grundbegriffe für Codes
Modulo-m-Addition:Für eine Menge ganzer Zahlen MM = {0, 1, 2, ... , m−1} mit m > 0 sei die Modulo-m-Addition „⊕“ derart definiert, dass für zwei Elementea,b ∈ MM gilt:
a ⊕ b = r,wobei r der Rest der Division von a + b durch m ist.
rmqba +⋅=+⇔mrq
mba +=
+
⊕ 0 1 2 3 4 5 60 0 1 2 3 4 5 61 1 2 3 4 5 6 02 2 3 4 5 6 0 13 3 4 5 6 0 1 24 4 5 6 0 1 2 35 5 6 0 1 2 3 46 6 0 1 2 3 4 5
Beispiel:MM = {0, 1, 2, 3, 4, 5, 6}und Modulo-7-Addition „⊕“.
Zur Veranschaulichung von Gl. (4.2a):
Gemäß Gl. (4.2b) liegt der Rest r wieder in MM. Die Menge MM ist bezüglich der Modulo-m-Addition abgeschlossen.
(4.2a)
(4.2b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.164
4.1 Algebraische Grundbegriffe für Codes
Beispiel mit p = 7:MM = {1, 2, 3, 4, 5, 6}undModulo-7-Multiplikation „⊗“.
⊗ 1 2 3 4 5 61 1 2 3 4 5 62 2 4 6 1 3 53 3 6 2 5 1 44 4 1 5 2 6 35 5 3 1 6 4 26 6 5 4 3 2 1
rpqba +⋅=⋅⇔prq
pba +=⋅
a ⋅ b ist nicht ohne Rest durch p teilbar, weil peine Primzahl ist. Der Rest ist wieder aus der Menge MM. Somit ist MM abgeschlossen.
Modulo-p-Multiplikation:Für eine Menge ganzer positiver Zahlen MM = {1, 2, 3, ... , p−1}, wobei peine Primzahl ist, sei die Modulo-p-Multiplikation „ ⊗“ derart definiert, dass für zwei Elemente a,b ∈ MM gilt:
a ⊗ b = r,wobei r der Rest der Division von a ⋅ b durch p ist.
Zur Veranschaulichung von Gl. (4.3a):
(4.3a)
(4.3b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.165
4.1.1 Gruppen4.1 Algebraische Grundbegriffe für Codes
Eine Menge GG und eine Verknüpfung ° werden als Gruppe (GG,°) bezeich-net, wenn für beliebige a,b,c ∈ GG die folgenden Bedingungen erfüllt sind:
– die Verknüpfung ° ist assoziativ,– die Menge GG ist abgeschlossen,– die Menge GG enthält ein neutrales Element e mit der Eigenschaft:
a ° e = e ° a = a mit e ∈ GG und– für jedes Element a existiert ein inverses Element a′ ∈ GG, so dass:
a ° a′ = a′ ° a = e.
Eine Gruppe wird als kommutative oder abelsche Gruppe bezeichnet, wenn für beliebige a,b ∈ GG die Gl. (4.1b) gilt.
Beispiel: Die Menge der ganzen Zahlen ZZ = {... −2, −1, 0, 1, 2, ...} bildet bezüglich der Addition eine kommutative Gruppe. Das neutrale Element ist 0. Zu einem Element a ist das inverse Element −a.Bezüglich der Multiplikation bildet ZZ keine Gruppe, da die inversen
Elemente nicht in ZZ enthalten sind.
(4.4a)
(4.4b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.166
4.1.1 Gruppen
Endliche Gruppe:Besitzt eine Gruppe endlich viele Elemente, so wird sie als endliche oder finite Gruppe bezeichnet.
Das neutrale Element einer Gruppe ist eindeutig.Beweis: Angenommen, es gibt zwei neutrale Elemente e1 und e2 mit der Eigenschaft (4.4a), so folgt daraus: e1 = e1 ° e2 = e2 ° e1 = e2.
Beispiele:Die binäre Menge BB = {0, 1}mit der Modulo-2-Addition „⊕“. Das neutrale Element ist 0 und die jeweiligen inversen Elemente:
a = 0 ⇒ a′ = 0,a = 1 ⇒ a′ = 1.
Die zu Beginn von Abschnitt 4.1 betrachteten Mengen mit der Modulo-m-Addition und Modulo-p-Multiplikation sind ebenfalls endliche Gruppen.
⊕ 0 10 0 11 1 0
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.167
4.1.1 Gruppen
Zyklische GruppenLassen sich bei einer multiplikativen Gruppe GG = {1, g1, g2, ... , gm−1} alle Elemente als Potenzen von mindestens einem Element gi darstellen, so heißt die Gruppe zyklisch. Dann heißt gi primitives Element der Gruppe von der Ordnung m. Für das Einselement gilt die Darstellung: 1 = gi
0. GG besteht dann aus m Elementen der Form gi
j, wobei 0 ≤ j ≤ m – 1:GG = {gi
0, gi1, gi
2, ... , gim−1}.
Für beliebige gk ∈ GG bezeichnet die Ordnung (gk) die Anzahl von Elementen, die durch gk
l gebildet werden können.
z z1 z2 z3 z4 Ordnung1 1 1 1 1 12 2 4 3 1 43 3 4 2 1 44 4 1 4 1 2
Beispiel:Multiplikative modulo-5-GruppeGG = {1, 2, 3, 4}.Die Elemente z1 = 2 und z2 = 3 sind
primitive Elemente.
(4.5)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.168
4.1.2 Ringe4.1 Algebraische Grundbegriffe für Codes
Eine Menge RR, auf der sowohl die Addition ⊕ als auch die Multiplikation ⊗definiert sind, ist ein Ring, wenn die folgenden Bedingungen erfüllt sind:
Beispiel eines kommutativen Rings mit neutralem Element:ganze Zahlen ZZ mit gewöhnlicher Addition und Multiplikation.
–– RR ist eine kommutative Gruppe bezüglich ⊕,–– RR ist bezüglich ⊗ abgeschlossen,–– RR ist bezüglich ⊗ assoziativ und – das Distributivgesetz gilt: a ⊗ (b ⊕ c) = (a ⊗ b) ⊕ (a ⊗ c) mit a,b,c ∈ RR.Ein kommutativer Ring besteht, wenn auch ⊗ kommutativ ist.Ein Ring mit neutralem Element besteht, wenn gilt:
a ⊗ 1 = 1 ⊗ a = a mit a ∈ RR.
Beispiel eines kommutativen Rings mit neutralem Element:ganze Zahlen ZZm = {0,1, 2, ... , m−1} mit modulo-m-Addition und modulo-m-Multiplikation. Dabei existiert ein eindeutiges neutrales Element nur,
wenn m eine Primzahl ist.
(4.6a)
(4.6b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.169
4.1.3 Körper4.1 Algebraische Grundbegriffe für Codes
Eine Menge KK, auf der die binären Verknüpfungen Addition ⊕ und Multiplikation ⊗ erklärt sind, ist ein Zahlenkörper bezüglich ⊕ und ⊗, wenn die folgenden Bedingungen erfüllt sind:–– KK ist eine kommutative Gruppe bezüglich ⊕ mit 0 als neutralem Element,–– KK ohne 0 ist eine kommutative Gruppe bezüglich ⊗ mit 1 als neutralem
Element und– das Distributivgesetz gilt: a ⊗ (b ⊕ c) = (a ⊗ b) ⊕ (a ⊗ c) mit a,b,c ∈ KK.
Galois-Feld:Ein Körper mit endlich vielen Elementen bildet ein Galois-Feld GFGF.
Beispiel: GFGF(2) ⊕ 0 10 0 11 1 0
⊗ 0 10 0 01 0 1
(4.7)
Die endliche Menge ZZm = {0,1, 2, ... , m−1} ganzer Zahlen ist ein Galois-Feld GFGF(m) = ZZm, wenn m Primzahl ist, d. h. m = p.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.170
4.1.3 Körper
Ohne Beweis sind hier einige Eigenschaften von Galois-Feldern aufgelistet:
Jedes Galois-Feld besitzt zumindest ein primitives Element.
a ⊗ 0 = 0 ⊗ a = 0,
Aus der Abgeschlossenheit der Multiplikation folgt, dass es keine Nullteiler gibt: a ≠ 0 und b ≠ 0 → a ⊗ b ≠ 0
a ⊗ b = 0 und a ≠ 0 → b = 0,
− (a ⊗ b) = (−a) ⊗ b = a ⊗ (−b),
a ⊗ b = a ⊗ c und a ≠ 0 → b = c,
1 ⊕ 1 ⊕ 1 ⊕ ... ⊕ 1 = 0,
m Summanden
(4.8a)
(4.8b)
(4.8c)
(4.8d)
(4.8e)
(4.8f)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.171
4.1.3 Körper
Beispiel: GFGF(5) ⊕ 0 1 2 3 40 0 1 2 3 41 1 2 3 4 02 2 3 4 0 13 3 4 0 1 24 4 0 1 2 3
⊗ 0 1 2 3 40 0 0 0 0 01 0 1 2 3 42 0 2 4 1 33 0 3 1 4 24 0 4 3 2 1
a 0 1 2 3 4−a 0 4 3 2 1a−1 – 1 3 2 4
Addition direkt mit Tabelle:1 + 2 = 3, 2 + 4 = 1, 4 + 4 = 3.
Inverse Elemente der Addition: a + (−a) = 0.Subtraktion mit inversen Elementen der Addition:
3 − 2 = 3 + (−2) = 3 + 3 = 1 1 − 4 = 1 + (−4) = 1 + 1 = 2
Multiplikation direkt mit Tabelle:1 ⋅ 2 = 2, 2 ⋅ 4 = 3, 4 ⋅ 4 = 1.
Inverse Elemente der Multiplikation: a ⋅ (a−1) = 1Division mit inversen Elementen der Multiplikation:
3 ÷ 2 = 3 ⋅ (2−1) = 3 ⋅ 3 = 4 1 ÷ 3 = 1 ⋅ (3−1) = 1 ⋅ 2 = 2
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.172
4.1.3 Körper
Beispiel:Lösen eines linearen Gleichungssystems in GFGF(5)
Gegeben ist das lineare GleichungssystemI: 2 x0 + x1 = 2II: 3 x1 + x2 = 3III: x0 + x1 + 2 x2 = 3
LösungsschritteI: 2 x0 = 2 − x1II: x2 = 3 − 3 x12 ⋅ III: (2 − x1) + 2 x1 + 4 (3 − 3 x1) = 2 ⋅ 3
⇒ 2 + 4 ⋅ 3 − 2 ⋅ 3 = x1(1 − 2 + 4 ⋅ 3) ⇒ 3 = x1⇒ x2 = 3 − 3 x1 = 4⇒ x0 = 2−1 (2 − x1) = 2
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.173
4.1.4 Erweiterungskörper4.1 Algebraische Grundbegriffe für Codes
Problemstellung:In 4.1.3 werden endliche Zahlenkörper konstruiert, die jedoch in der Anzahl ihrer Elemente auf Primzahlen begrenzt sind. So bildet z. B. GG = {0, 1, 2, 3} aufgrund der benötigten Modulo-4-Multiplikation kein Galois-Feld!
Eine viel allgemeinere und zugleich flexiblere Konstruktion von Galois-Feldern wird mit der Erweiterung auf pm Elemente erreicht. Diese werden als Polynome vom Grad < m mit Koeffizienten pi ∈ GFGF (p) dargestellt:
⊗ 0 1 2 30 0 0 0 01 0 1 2 32 0 2 0 23 0 3 2 1
p(x) = p0 + p1x + p2x2 + ... + pm−1xm−1 = mit pm-1 ≠ 0.∑−
=
1
0
m
i
ii xp
Diese insgesamt pm möglichen Polynome können unterschieden werden in:– aufspaltbare oder reduzible Polynome und– nicht aufspaltbare oder irreduzible Polynome.In der digitalen Nachrichtentechnik haben vor allem die Erweiterungskörper
GFGF(2m) eine große Bedeutung.
(4.9)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.174
4.1.4 Erweiterungskörper
Irreduzible Polynome:Ein Polynom p(x) mit Koeffizienten aus GFGF (p) heißt irreduzibel bezüglich GFGF (p), wenn es nicht als Produkt zweier Polynome pa(x), pb(x) ≠ 0, 1 kleineren Grades mit Koeffizienten aus GFGF (p) dargestellt werden kann.Damit haben irreduzible Polynome auch keine Nullstelle in GFGF (p).Irreduzible Polynome haben vergleichbare Eigenschaften wie Primzahlen.
Reduzible Polynome:Ein Polynom p(x) mit Koeffizienten aus GFGF (p) heißt reduzibel bezüglichGFGF (p), wenn es als Produkt zweier Polynome pa(x), pb(x) ≠ 0, 1 kleineren Grades mit Koeffizienten aus GFGF (p) zerlegt werden kann.
Beispiel: p(x) = x2 + x + 1 Testpolynome mit Grad 1: pa(x) = x, pb(x) = x + 1.
x1
11+x
(x2 + x + 1) ÷ x = x + 1 + ; (x2 + x + 1) ÷ (x + 1) = x + .
Beispiel: p(x) = (x + 1) (x2 + x + 1) = (x3 + x2 + x) + (x2 + x + 1) = x3 + 1.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.175
4.1.4 Erweiterungskörper
Wurzeln und Nullstellen:Ein irreduzibles Polynom p(x) vom Grad größer eins mit Koeffizienten aus GFGF (p) besitzt in GFGF (p) keine Nullstellen. Ein Element α ∈ GFGF(pm) des Erweiterungskörpers heißt Wurzel oder Nullstelle von p(x), wenn es die Bedingung erfüllt: p(α) = 0Es besteht eine Analogie zwischen der Erweiterung von Galois-Feldern und der Erweiterung von reellen Zahlen zu komplexen Zahlen.
1 ⇔⇔ 1;−=α2 −=α0!
12 =+α ⇔ 2mod12 += αα0!
12 =++αα
Definition komplexer Zahlen; eines erweiterten Galois-Feldes:RR → CC GFGF (2) → GFGF(22)
Keine Lösung von x2 + 1 = 0; x2 + x + 1 = 0für x ∈ RR; x ∈ GFGF (2)Körpererweiterung:
Definition komplexer Zahlen; der Elemente von GFGF(22):c = c0 + c1α mit c0, c1 ∈ RR; c = c0 + c1α mit c0, c1 ∈ GFGF (2).
(4.10)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.176
4.1.4 Erweiterungskörper
Primitive Polynome:Ein irreduzibles Polynom p(x) vom Grad m und mit den Koeffizientenpi ∈ GFGF (p) heißt primitiv, wenn es eine Wurzel α (p(α) = 0) mit der folgenden Eigenschaft besitzt:
αi mod p(α), für i = 0, 1, ..., pm − 2ergibt alle möglichen pm − 1 von 0 verschiedenen Elemente des Galois-Felds GFGF(pm). Das Element α ∈ GFGF(pm) heißt primitives Element, für das gilt:
α0 = αn = 1 für n = pm − 1 und
Primitive Polynome sind irreduzibel, die Umkehrung gilt im Allgemeinen nicht.Für jeden Primkörper GFGF(pm) und jedes m existiert mindestens ein primitives Polynom p(x). Existiert mehr als eins, ergeben sich bei der Konstruktion äquivalente Erweiterungskörper.
)1(mod −=mpkk αα
(4.11)
(4.13)(4.12)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.177
4.1.4 Erweiterungskörper
Primitive Polynome zur Konstruktion von Erweiterungskörpern GFGF(2m):
m primitives Polynom m primitives Polynom1 x + 1 9 x9 + x4 + 12 x2 + x + 1 10 x10 + x3 + 13 x3 + x + 1 11 x11 + x2 + 14 x4 + x + 1 12 x12 + x7 + x4 + x3 + 15 x5 + x2 + 1 13 x13 + x4 + x3 + x + 16 x6 + x + 1 14 x14 + x8 + x6 + x + 17 x7 + x + 1 15 x15 + x + 18 x8 + x6 + x5 + x4 + 1 16 x16 + x12 + x3 + x + 1
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.178
4.1.4 Erweiterungskörper
Es gibt drei Möglichkeiten, die Elemente eines Galois-Felds darzustellen:
Beispiel für GFGF(22):Die Elemente dieses Galois-Feldes in der Komponentendarstellung sind alle 22 = 4 Polynome vom Grad < 2, die sich mit den Koeffizienten aus GFGF(2) bilden lassen: GFGF(22) = {0, 1, α, 1+α}. 0 = α–∞
1 = α0
α = α1
1+α = α2
1 = α3 = α0
α = α4 = α1
1+α = α5 = α2
... ...
– Komponentendarstellung (Polynomschreibweise),– Exponentendarstellung (nach Gl. 4.11) und– Vektordarstellung (Darstellung der Koeffizienten).
Die alleinige Darstellung der Koeffizienten ergibt dieVektordarstellung: GFGF(22) = {00, 10, 01, 11}.Das Nullelement wird in der Exponentendarstellungsymbolisch als α–∞ dargestellt:GFGF(22) = {α–∞, α0, α1, α2}.Für die Exponentendarstellung gilt mit Gl. 4.13:
αk = αk mod 3.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.179
4.1.4 Erweiterungskörper
Additions- und Multiplikationstabellen für GFGF(22) in
⊕ 0 1 α 1+α0 0 1 α 1+α1 1 0 1+α αα α 1+α 0 1
1+α 1+α α 1 0
⊗ 0 1 α 1+α0 0 0 0 01 0 1 α 1+αα 0 α 1+α 1
1+α 0 1+α 1 α
⊕ 00 10 01 1100 00 10 01 1110 10 00 11 0101 01 11 00 1011 11 01 10 00
⊗ 00 10 01 1100 00 00 00 0010 00 10 01 1101 00 01 11 1011 00 11 10 01
⊕ 0 1 α α2
0 0 1 α α2
1 1 0 α2 αα α α2 0 1α2 α2 α 1 0
⊗ 0 1 α α2
0 0 0 0 01 0 1 α α2
α 0 α α2 1α2 0 α2 1 α
Komponenten-darstellung:
Vektor-darstellung:
Exponenten-darstellung:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.180
4.1.4 Erweiterungskörper
Polynomrestklasse:Die einzelnen Elemente der Galois-Felder lassen sich umgekehrt auch als Polynomreste einer Modulo-p(x)-Berechnung beschreiben, wobei p(x) ein primitives Polynom ist.
Beispiel in GFGF(22):Hierfür ist p(x) = x2 + x + 1 ein primitives Polynom. Die Bedingung
x2 + x + 1 = 0entspricht einer Berechnung modulo x2 + x + 1. Für ein beliebiges Produkt, z. B. (1 + α) ⋅ (1 + α) = 1 + α2 ergibt sich bei der Division durch p(x = α):
12 ++ααα
(α2 + 1) : (α2 +α + 1) = 1 ++ (α2 + α + 1)
α = r(α) (vgl. Komponentendarstellung von GFGF(22))GFGF(22) ist definiert durch alle möglichen Ergebnisse von beliebigenf(α) = p(α) modulo α2 + α + 1.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.181
4.1.4 Erweiterungskörper
Konjugiert komplexe Wurzeln:Sei p(x), mit grad p(x) = m und Koeffizienten pi ∈ GFGF(p), irreduzibel bezüglich GFGF(p), und sei α Wurzel von p(x), dann sind mit α auch
Wurzeln von p(x). Man nennt diese Wurzeln konjugiert komplex.
Eigenschaften sind:– für alle a ∈ GFGF(pm) gilt: a ∼ a,– für alle a, b ∈ GFGF(pm) gilt: a ∼ b ⇒ b ∼ a und– für alle a, b, c ∈ GFGF(pm) gilt: a ∼ b und b ∼ c ⇒ a ∼ c.
∏−
=−=
1
0)()(
m
i
pixxp α
pmα = αp2
α , ...,pα , pm–1α , wobei
Sind zwei Elemente a, b ∈ GFGF (pm) konjugiert komplex zueinander, so schreibt man auch: a ∼ b.
Durch die konjugierte Wurzel ist eine Linearfaktorzerlegung von p(x) gegeben:
(4.14)
(4.15)
(4.16a)(4.16b)(4.16c)
(4.17)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.182
4.1.4 Erweiterungskörper
Äquivalenzklassen:Die Zusammenfassung von zueinander konjugierten Elementen gemäß
[zi] = {zi, zj, zk, zl, ...} mit zi ∼ zj ∼ zk ∼ zl ...wird als Äquivalenzklassen bezeichnet und bildet disjunkte Zerlegungen von GFGF(pm).
1mit}1,,1,0|mod{ −=−=⋅= mij pnminpjK K
Kreisteilungsklassen:Kreisteilungsklassen Kj enthalten alle Exponenten der Elemente, die konjugiert zueinander sind:
Der Begriff Kreisteilung stammt aus den komplexen Zahlen, wo sich dien-te Einheitswurzel und das Einselement eines Galois-Felds ähnlich verhalten: ⇔ .Erweiterungskörper werden deshalb auch als Kreisteilungskörper
bezeichnet.
12j == πezn 101 ===− zzz npm
(4.18)
(4.19)
(4.20)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.183
4.1.4 Erweiterungskörper
Minimalpolynom:Zu jedem a ∈ GFGF(pm) gibt es ein eindeutig bestimmtes normiertes Polynom m[a](x) minimalen Grades mit Koeffizienten aus GFGF(p), das a als Nullstelle hat. Dieses Polynom heißt Minimalpolynom.m[a](x) ist irreduzibel.
Das Minimalpolynom berechnet sich mittels Gl. (4.17):
∏∏∈∈
−=−=][,][,
][ )()()(a
i
Kii
p
abba axbxxm
Zwei konjugierte Elemente haben das gleiche Minimalpolynom:a ∼ b ⇒ m[a](x) = m[b](x)
Der Grad des Minimalpolynoms zeigt die Mächtigkeit der Äquivalenzklasse.
(4.21)
(4.22)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.184
4.1.4 Erweiterungskörper
Das Produkt aller Minimalpolynome aus GFGF(pm) ergibt:
Kreisteilungsklasse MinimalpolynomK0 = {0} m0(x) = (x − z0) = x + 1K1 = {1,2,4,8} m1(x) = (x − z1) (x − z2) (x − z4) (x − z8) = x4 + x + 1K3 = {3,6,9,12} m3(x) = (x − z3) (x − z6) (x − z9) (x − z12) = x4 + x3 + x2 + x + 1K5 = {5,10} m5(x) = (x − z5) (x − z10) = x2 + x + 1K7 = {7,11,13,14} m7(x) = (x − z7) (x − z11) (x − z13) (x − z14) = x4 + x3 + 1
1)(][ −=∏ n
ia xxm
i
m0(x) ⋅ m1(x) ⋅ m3(x) ⋅ m5(x) ⋅ m7(x) = x15 − 1
Beispiel:GFGF(24) mit primitivem Polynom p(x) = x4 + x + 1 und primitivem Element z mit z4 + z + 1 = 0. Die Elemente in GFGF(24) sind:GFGF(24) = {0, z0, z1, z2, ... , zn−1} mit n = pm − 1 = 24 − 1 = 15.Im Exponenten erfolgt die Rechnung modulo n: zn = z0.
Dabei entspricht eines der Minimalpolynome demprimitiven Polynom. (4.23)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.185
4.1.5 Diskrete Fourier-Transformation4.1 Algebraische Grundbegriffe für Codes
Die diskrete Fourier-Transformation (DFT) bezeichnet allgemein eine Transformationsvorschrift. Für die Codierungstheorie bietet sie eine sehr übersichtliche Darstellungsform.Ausgehend von einem Galois-Feld GFGF(pm) mit dem primitiven Element zseien Polynome vom Grad ≤ n − 1 = pm − 2 mit Koeffizienten aus GFGF(pm) gegeben in der Form:
∑−
=− =⇔=
1
0110 )(),...,,(
n
i
iin xaxaaaaa
∑−
=− =⇔=
1
0110 )(),...,,(
n
j
jjn xAxAAAAA
∑−
=
⋅−− −=−=1
0)(
n
i
jii
jj zazaA ∑
−
=
⋅==1
0)(
n
j
jij
ii zAzAa
Dann lautet die Transformationsvorschrift:
(4.24a)
(4.24b)
(4.25a/b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.186
4.1.5 Diskrete Fourier-Transformation
Für die DFT gibt es die folgenden Schreibweisen:a(x) A(x)
a AZeitbereich Frequenzbereich
Die DFT besitzt die folgenden Eigenschaften:– die Transformation ist eineindeutig,– IDFT(DFT(a(x))) = a(x),– DFT(DFT(a(x))) = −a(x),– DFT(DFT(DFT(DFT(a(x))))) = a(x),– z−j ist Nullstelle von a(x) ⇔ Aj = 0,
),...,,0,,...,,(0)( 11110 −+−− =⇔= njj
j AAAAAza A
),...,,0,,...,,(0)( 11110 −+−=⇔= niii aaaaazA a
– zi ist Nullstelle von A(x) ⇔ ai = 0.
(4.26a)(4.26b)(4.26c)
(4.26d)
(4.26e)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.187
4.1.5 Diskrete Fourier-Transformation
Die Polynomtransformation nach Gl. (4.25a/b) kann für die Koeffizientenvektoren auch mittels Matrizen beschrieben werden:
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−
−−
− 1
210
)1()1(21
)1(242121
1
210
21
11
1111
nnnn
nn
n A
AAA
zzz
zzzzzz
a
aaa
ML
MOMMMLLL
M
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−−−−
−−−−−−−−
− 1
210
)1()1(2)1(
)1(242)1(21
1
210
21
11
1111
nnnn
nn
n a
aaa
zzz
zzzzzz
A
AAA
ML
MOMMMLLL
M
a A:
A a:
(4.27a)
(4.27b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.188
4.1.5 Diskrete Fourier-Transformation
Beispiel:Das Polynom A(x) = 4 + 5x mit Koeffizienten aus GFGF(7) soll transformiert werden. Als primitives Element wird z = 5 gewählt. Mit Gl. (4.27b) folgt:
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
543210
1234524024303034204254321
543210
11111
111111
AAAAAA
zzzzzzzzzzzzzzzzzzzzzzzzz
aaaaaa
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅+
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
506312
326451
5
111111
4
000054
546231421421616161241241326451111111
543210
aaaaaa
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.189
4.1.5 Diskrete Fourier-Transformation
Die Rücktransformation des auf der vorigen Seite berechneten Polynoms a(x) = 2 + x + 3x2 + 6x3 + 5x5 mit den Koeffizienten aus GFGF(7) wird mit Gl. (4.27a) durchgeführt. Das primitive Element z = 5 wird beibehalten.
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
−−−−−−−−−−−−−−−−−−−−−−−−−
543210
1234524024303034204254321
543210
11111
111111
aaaaaa
zzzzzzzzzzzzzzzzzzzzzzzzz
AAAAAA
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
543210
5432142042303032402412345
543210
11111
111111
aaaaaa
zzzzzzzzzzzzzzzzzzzzzzzzz
AAAAAA
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.190
4.1.5 Diskrete Fourier-Transformation
Rücktransformation (Fortsetzung):
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
000054
000023
506312
326451241241616161421421546231111111
543210
AAAAAA
A = (4,5,0,0,0,0) a = (2,1,3,6,0,5)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.191
4.1.5 Diskrete Fourier-Transformation
Eine Schieberegisterschaltung der DFT nach Gleichung (4.25a) zeigt die folgende Abbildung:
a0z−j⋅0
z0
a0
Σ Aj
a1z−j⋅1
z−1
a1
an−1z−j⋅(n−1)
z−(n−1)
an−1
−1Initialisierung
Speicherinhalt nach j Schritten
Abgebildet ist der j-te Schritt der Transformation zur Berechnung von A(x). Zu Beginn (j = 0) ist das Register mit den Zeitkomponenten a0, a1, ... an−1initialisiert, so dass gilt:
A0 = −(a0 + a1 + ... + an−1) mod pm. (4.28a)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.192
4.1.5 Diskrete Fourier-Transformation
Eine Schieberegisterschaltung der IDFT nach Gleichung (4.25b) zeigt die folgende Abbildung:
A0zi⋅0
z0
A0
Σ ai
A1zi⋅1
z1
A1
An−1zi⋅(n−1)
zn−1
An−1
Initialisierung
Speicherinhalt nach i Schritten
Abgebildet ist der i-te Schritt der Transformation zur Berechnung von a(x). Zu Beginn (i = 0) ist das Register mit den FrequenzkomponentenA0, A1, ... An−1 initialisiert, so dass gilt:
a0 = A0 + A1 + ... + An−1 mod pm. (4.28b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.193
4.1.5 Diskrete Fourier-Transformation
Abschließend sollen noch zwei Sätze der DFT betrachtet werden.
Das Produkt zweier Polynome entspricht der zyklischen Faltung der Koeffizienten:
)...()...()...( 1110
1110
1110
−−
−−
−− +++=+++⋅+++ n
nn
nn
n xcxccxbxbbxaxaa
∑−
=−
−−
−−−
⋅=
++++⋅=++++⋅=
1
0mod
211201101
112211000...
...
n
jnjiji
nn
nnn
abc
ababababcababababc
M
)1(mod)()( −⋅⇔∗ nxxbxaba
Es seien Polynome a(x), b(x), c(x) vom Grad ≤ n − 1 = pm − 2 mit Koeffizienten aus GFGF(pm), dessen primitives Element mit z bezeichnet sei, gegeben. Für beliebige x ∈ GFGF(pm) gilt xn = x0 = 1, d. h. Modulo-(xn − 1)-Rechnung. Für das Produkt zweier Polynome a(x) ⋅ b(x) = c(x) gilt dann:
(4.30)
(4.29)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.194
4.1.5 Diskrete Fourier-Transformation
Faltungssatz der DFT:
Verschiebungssatz der DFT:
Beweis von (4.31a): Mit Gl. (4.3b) ergibt sich für die Modulo-Rechnung die Darstellung c(x) = a(x) ⋅ b(x) − γ(x) ⋅ (xn−1)und somit Cj = − c(z−j) = − a(z−j) ⋅ b(z−j) + γ(z−j) ⋅ (z−jn−1).
−Aj =1−Bj
a(x) ⋅ b(x) mod (xn−1) − Aj ⋅ Bjai ⋅ bi A(x) ⋅ B(x) mod (xn−1)
mit a(x) A(x), b(x) B(x)
x ⋅ a(x) mod (xn−1) z−j ⋅ Ajzi ⋅ ai x ⋅ A(x) mod (xn−1)
mit a(x) A(x).Beweis: durch Einsetzen von b(x) = x bzw. B(x) = x in den Faltungssatz.
(4.31a/b)
(4.32a/b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.195
4.2 Reed-Solomon-Codes4 Bündelfehlerkorrigierende Blockcodes
Die Reed-Solomon-Codes (RS-Codes) wurden ca. 1960 entwickelt. Ihre Konstruktion ist geschlossen analytisch durchführbar. Die Mindestdistanz kann dabei vorgegeben werden, so dass ihre Gewichtsverteilung bekannt ist.Die RS-Codes erfüllen die Singleton-Schranke mit Gleichheit.Sie sind sehr leistungsfähig und von großer praktischer Bedeutung. U. a. werden sie in der Raumfahrzeugkommunikation, bei der CD (CompactDisk) und im Mobilfunk eingesetzt.RS-Codes sind symbolorientierte Codes, d. h. sie sind besonders geeignet zur Korrektur von Bündelfehlern. Dagegen können sie für die Korrektur von Einzelfehlern ineffizient sein, da immer ganze Symbole korrigiert werden müssen, wobei eine entsprechende Redundanz notwendig ist.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.196
4.2.1 Konstruktion von Reed-Solomon-Codes4.2 Reed-Solomon-Codes
Fundamentalsatz der linearen Algebra:Ein Polynom A(x) = A0 + A1 x + A2 x2 + ... + Ak−1 xk−1 vom Grad k − 1 mit Koeffizienten Ai ∈ GFGF(pm) und Ak−1 ≠ 0 hat höchstens k − 1 verschiedene Nullstellen.Der Beweis dieses Satzes zielt darauf, dass ein Polynom durch eine Anzahl von Linearfaktoren darstellbar ist, die durch seinen Grad beschränkt ist:
∏−
=− −⋅=
1
11 )()(
k
iik xxAxA
Hamming-Gewicht allgemeiner Vektoren:Das Hamming-Gewicht wH(c) eines Vektors c ist definiert als die Anzahl der Elemente von c, die nicht Null sind.Gl. (2.11), die das Gewicht eines binären Vektors berechnet, kann hier als Spezialfall angesehen werden, wenn die Elemente des Vektors aus GF GF (2)
stammen.
(4.33)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.197
4.2.1 Konstruktion von Reed-Solomon-Codes
Beweis:Gl. (4.26e) sagt aus, dass Nullstellen von A(zi) zu Elementen ai = 0 korrespondieren. Das Polynom A(x) hat höchstens k − 1 verschiedene Nullstellen, so dass der Vektor a mindestens n − (k − 1) = n − k + 1 ≥ d von Null verschiedene Stellen besitzt.
Satz zum Mindestgewicht von Vektoren:
Nach diesem Satz können Vektoren konstruiert werden, deren Gewicht nur vom Polynomgrad des transformierten Vektors abhängt. Diese besitzen ein
bestimmtes Mindestgewicht und damit eine bestimmte Mindestdistanz.
Sei A(x) = A0 + A1 x + A2 x2 + ... + Ak−1 xk−1 ein Polynom mit Koeffizienten Ai ∈ GFGF(pm), wobei sein Grad beschränkt ist durch:
grad A(x) = k − 1 ≤ n − d,dann gilt für das Gewicht eines Vektors a = (a0, a1, a2, .... , an−1) mit der Beziehung a(x) A(x):
wH(a) ≥ d.(4.34)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.198
4.2.1 Konstruktion von Reed-Solomon-Codes
Definition der Reed-Solomon-Codes:
Die RS-Codes erfüllen die Singleton-Schranke mit Gleichheit, da gilt:n − k = dmin − 1
Der günstigste Fall ist ein ungerades dmin, so dass gilt: t = (dmin − 1)/2.Und somit: n − k = 2 t
D. h., die Anzahl erkennbarer und korrigierbarer Fehler ist einstellbar.
Sei z ein primitives Element aus GFGF(pm), so ist a = (a0, a1, a2, .... , an−1) ein Codewort des RS-Codes C der Länge n = pm − 1, Dimension k = pm − d und Mindestdistanz d = n − k + 1, wenn gilt:
C = {a | ai = A(zi), grad A(x) ≤ k − 1 = n − d}.
Der Codevektor (A0, A1, A2, .... , Ak−1) entspricht der zu codierenden Information. Durch Auffüllen mit n − k = d − 1 Nullen (auch Prüfsymbole oder Prüffrequenzen genannt) ergibt sich das Codewort im FrequenzbereichA und durch IDFT das Codewort im Zeitbereich a:
a = (a0, a1, a2, .... , an−1) A = (A0, A1, A2, .... , Ak−1,0,0, ... ,0)
(4.36)
(4.37)
(4.35)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.199
4.2.1 Konstruktion von Reed-Solomon-Codes
Beispiel:Auswahl des Galois-Feldes GFGF(pm) mit p = 2 und m = 4 ⇒ GFGF(24).Die Codewortlänge ist dann: n = pm − 1 = 16 − 1 = 15.Die Zahl korrigierbarer Symbole sei t = 3 ⇒ n − k = dmin − 1 = 2 t = 6.Dann lautet das Codewort im Frequenzbereich allgemein:
Dieser Code kann sowohl als hexadezimaler (15,9)-RS-Code als auch als binärer (60,36)-RS-Code bezeichnet werden.
Dabei ist Aj ∈ {0, 1, z, z+1, z2, z2+1, z2+z, z2+z+1,z3, z3+1, z3+z, z3+z+1, z3+z2, z3+z2+1, z3+z2+z, z3+z2+z+1}.
Die Anzahl von Informationsstellen / -bits ist: k = 9 / k ⋅ m = 9 ⋅ 4 = 36;die Anzahl von Codewortstellen / -bits ist: n = 15 / n ⋅ m = 15 ⋅ 4 = 60.
A0 A1 A2 A3 A4 A5 A6 A7 A8 0 0 0 0 0 0
k = n − (dmin − 1) = 9 dmin − 1
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.200
4.2.1 Konstruktion von Reed-Solomon-Codes
Mögliche Fehlervektoren in (teil-)binärer Schreibweise mit 0 = (0000) sind:f = (0 0 0 1111 1111 1111 0 0 0 0 0 0 0 0 0) ist korrigierbar;f = (0 0 0001 1111 1111 1110 0 0 0 0 0 0 0 0 0) ist nicht korrigierbar;f = (0100 0 0 0 0001 0 0 0100 0 0 0 0 0 0010 0) ist nicht korrigierbar.
Beispiel (Fortsetzung):Mit der Korrekturfähigkeit von t = 3 Symbolen können maximaltb,max = 3 ⋅ 4 = 12 Bits und minimal tb,min = 3 ⋅ 1 = 3 Bits korrigiert werden.
Aus den Grenzfällen ist abzuleiten, dass mit Sicherheit 3 Einzelfehler oder 9 direkt aufeinander folgende Fehler korrigierbar sind.Damit sind Bündelfehler korrigierbar bis zu einer Länge von:
nd
ndn
nkR 11)1(
C−
−=−−
==Für die Coderate des RS-Codes gilt: .
tb,Bündel = m (t − 1) + 1 = m (d − 3) / 2 + 1
Beispiel: Für den (15,9)-RS-Code ist RC = k / n = 9 / 15 = 60 %.
(4.38)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.201
4.2.1 Konstruktion von Reed-Solomon-Codes
Generatorpolynom:Aufgrund der Gradbeschränkung des Codeworts A(x), für dass gilt:
Aj = 0 für j = k ... n − 1,und der DFT-Eigenschaft (4.26d) besitzt jedes Codewortpolynom a(x) die Nullstellen:
a(z−j) = 0 für j = k ... n − 1.Das Produkt aus allen Linearfaktoren, die sich aus den Nullstellen ergeben, bildet das Generatorpolynom des zugehörigen RS-Codes:
Jedes Codewortpolynom lässt sich dann darstellen als:a(x) = u(x) ⋅ g(x).
Da sich ein RS-Code durch ein Generatorpolynom darstellen lässt, handelt es sich um einen zyklischen Code.
∏∏−
=
−
=
− −=−=kn
j
jn
kj
j zxzxxg1
1)()()( (4.39)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.202
4.2.1 Konstruktion von Reed-Solomon-Codes
Prüfpolynom:Das Prüfpolynom h(x) ist das komplementäre Polynom zum Generatorpolynom und enthält als Nullstellen alle von Null verschiedenen Elemente, die nicht Nullstellen von g(x) sind:
Beweis:
∏∏+−=
−
=
− −=−=n
knj
jk
j
j zxzxxh1
1
0)()()(
)1(mod0)1()()()(
)()()()()(1
0−=−⋅=−⋅=
⋅⋅=⋅
∏−
=
nnn
i
i xxxuzxxu
xhxgxuxhxa
Für die Polynome g(x), u(x) und h(x) gelten die Beziehungen:grad(g(x)) = n − k; grad(u(x)) = k − 1; grad(g(x) ⋅ u(x)) = n − 1;grad(h(x)) = k.
(4.40)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.203
4.2.1 Konstruktion von Reed-Solomon-Codes
Beispiel:Für den (6,2)-RS-Code über GFGF(7) mit dem primitiven Element z = 5 ist das Generatorpolynom g(x):
Das Prüfpolynom h(x) berechnet sich dann zu:
43222
4
1
5
2
4652)65()56(
)2)(6()4)(5(
)5()5()(
xxxxxxxx
xxxx
xxxgi
i
i
i
++++=++⋅++=
−−⋅−−=
−=−= ∏∏==
−
)3)(1(334652
1)(
)(1)(
2432
6−−=++=
++++
−=
−=
xxxxxxxx
xxh
xgxxh
n
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.204
4.2.1 Konstruktion von Reed-Solomon-Codes
Generatormatrix:Der RS-Code ist ein zyklischer Code, dessen Generatormatrix G gemäßGl. 3.18 aus den Koeffizienten des Generatorpolynoms g(x) entwickelt werden kann.Beispiel mit g(x) = 2 + 5x + 6x2 + 4x3 + x4 (vgl. S. 203):
⎟⎠⎞⎜
⎝⎛= 146520
014652G
Systematisierung:Durch Umformung kann jede Generatormatrix systematisiert werden.Beispiel für die obige Generatormatrix: Die Systematisierungsschritte sind hier 1) Ersetzung der ersten Zeile durch die Summe der Zeilen und 2) Multiplizieren aller Elemente mit 4.
⎟⎠⎞⎜
⎝⎛= 146520
1534021G ⎟
⎠⎞⎜
⎝⎛= 423610
465201systGG ⇒ ⇒
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.205
4.2.1 Konstruktion von Reed-Solomon-Codes
Prüfmatrix:Die Prüfmatrix H lässt sich auf drei Arten bestimmen.1. Aufgrund der zyklischen Eigenschaft des RS-Codes mit Gl. 3.25bBeispiel mit h(x) = x2 + 3x + 3 (vgl. S. 203):
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
331000033100003310000331
1H
2. Über die systematische Generatormatrix: G = [Ik P] ⇒ H2 = [−PT In-k]Beispiel mit systematischer Generatormatrix Gsyst (vgl. S. 204):
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−−−−−−−−
=100033010051001042000115
100044010026001035000162
2H
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.206
4.2.1 Konstruktion von Reed-Solomon-Codes
3. Direkte Auswertung der Prüfgleichungen:−
0)( =−= −zaA jj 1für
1
0−=⋅−= ∑
=
− nkjzan
i
iji K
Die ausgeschriebenen Summen für alle j ergeben in Matrixform:
⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−
−−−−−−−
+−−+−+−
+−−+−+−
−−−−
0
000
1
111
1
2
1
0
)1()1(2)1(
)2)(1()2(2)2(
)1)(1()1(2)1(
)1(2
2MM
K
MMMMKKK
nnnn
knkk
knkk
knkk
a
aaa
zzz
zzzzzz
zzz
H3
Beispielmit z = 5in GFGF(7): ⎟
⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜
⎝
⎛
=−
−−−−−−−−−−−−−−−−
326451241241616161421421
1111
12345240243030342042
3
zzzzzzzzzzzzzzzzzzzz
H
(4.41)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.207
4.2.1 Konstruktion von Reed-Solomon-Codes
Syndromberechnung:Das Empfangssignal r lässt sich darstellen als
r = a + f R = A + Fbzw. r(x) = a(x) + f(x) R(x) = A(x) + F(x).
Das Syndrom ist im Frequenzbereich der Teil des Empfangsvektors, der an den Prüffrequenzen liegt:
Im Frequenzbereich leitet sich daraus ab:A(x) = A0x0 + A1x1 + ... + Ak−1xk−1
F(x) = F0x0 + F1x1 + ... + Fk−1xk−1 + Fkxk + ... + Fn−1xn−1
R(x) = R0x0 + R1x1 + ... + Rk−1xk−1 + Fkxk + ... + Fn−1xn−1
mit Rj = Aj + Fj Syndromkoeffizienten
S(x) = S0x0 + ... + Sn−k−1xn−k−1 = Fkx0 + ... + Fn−1xn−k−1 (4.42)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.208
4.2.1 Konstruktion von Reed-Solomon-Codes
In der Vektorschreibweise ist das SyndromS = (S0, S1, ... , Sn−k−1).
Das Syndrom lässt sich ebenfalls durch Multiplikation mit der Prüfmatrix berechnen:
S = r ⋅ H3T ⇔ ST = H3 ⋅ rT
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
−=
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−−−−
+−−+−+−+−−+−+−
−−−−
−− 1
210
)1()1(2)1(
)2)(1()2(2)2()1)(1()1(2)1(
)1(2
1
210
21
111
nnnn
knkkknkk
knkk
kn r
rrr
zzz
zzzzzz
zzz
S
SSS
M
K
MMMMKKK
M
Ausgeschrieben ergibt sich die Darstellung:
(4.43a)
(4.43b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.209
4.2.1 Konstruktion von Reed-Solomon-Codes
Allgemeiner RS-Code:Der RS-Code ist ein zyklischer Code. Zyklische Verschiebungen im Zeitbereich haben nach Gl. 4.32a keine Auswirkung auf die Prüffrequenzen:
a(x) = xk ⋅ b(x) mod (xn−1) z−j⋅k ⋅ Bj = Aj → Bj = 0 ⇒ Aj = 0.
Mit Gl. 4.26e und 4.32b steht andererseits fest, dass die zyklische Verschiebung eines Polynoms im Frequenzbereich keine Auswirkung auf das Gewicht und damit die Minimaldistanz der zugehörigen Codewörter im Zeitbereich hat.
Definition: Ein allgemeiner RS-Code der Länge n, Dimension k und Mindestdistanz d ist definiert durch:C = {a | ai = A(zi), A(x) = xk ⋅ B(x) mod (xn−1), grad B(x) ≤ k − 1 = n − d },
wobei k eine beliebige Zahl ist.(4.44)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.210
4.2.1 Konstruktion von Reed-Solomon-Codes
∑=
=n
i
ii zAzA
0)(
diiAi <≤
== 1für 00für 1
diqjiqi
nAdi
j
jdiji ≥⎟
⎠⎞⎜
⎝⎛ −−−⎟
⎠⎞⎜
⎝⎛= ∑
−
=
−− für 1)1()1(0
Zu den MDS-Codes (vgl. S. 100) gehören die RS-Codes.Der Beweis beruht auf kombinatorischen Überlegungen über wesentliche MDS-Eigenschaften der RS-Codes.
Gewichtsfunktion von MDS-Codes:Die Gewichtsfunktion A(z) kann für einen (n,k)-MDS-Code mit der Mindestdistanz d = n – k + 1 über dem GFGF(q = pm) wie folgt berechnet werden:
mit
(4.45)und
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.211
4.2.1 Konstruktion von Reed-Solomon-Codes
Beispiel: Gewichtsverteilung des (7,3)-RS-Codes über GFGF(q = 23) mit der Mindestdistanz d = (n − k) + 1 = 5.
1477217)!57(!5
!71757
5 =⋅=⋅−⋅
=⋅⋅⎟⎠⎞⎜
⎝⎛=A
147)58()!67(!6
!7)1158(76
76 =−⋅
−⋅=⋅⎟
⎠⎞⎜
⎝⎛−⋅⋅⎟
⎠⎞⎜
⎝⎛=A
217)154864(7)12681
68(777 2
7 =+−⋅=⋅⎟⎠⎞⎜
⎝⎛+⋅⎟
⎠⎞⎜
⎝⎛−⋅⋅⎟
⎠⎞⎜
⎝⎛=A
A0 = 1A1 = A2 = A3 = A4 = 0
Damit lautet die Gewichtsfunktion:
∑=
===+++=n
ii qA
0
33 85122171471471
765 2171471471)( zzzzA +++=
Kontrolle: .
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.212
4.2.2 Codierung von Reed-Solomon-Codes4.2 Reed-Solomon-Codes
Es ist das Nachrichtenwort u = (u0, u1, u2, .... , uk−1) bzw. Nachrichten-polynom u(x) = u0x0 + u1x1 + ... + uk−1xk−1 zu codieren. Im Folgenden werden drei mögliche Codiermethoden aufgezeigt:1. Codierung im Frequenzbereich, d. h. Rücktransformation von u mittels
IDFT (Gl. 4.25b):
2. Unsystematische Codierung im Zeitbereich, d. h. Multiplikation von u(x) mit Generatorpolynom:
3. Systematische Codierung im Zeitbereich, d. h. Multiplikation von u(x) mit xn−k: u(x) ⋅ xn−k = u0xn−k + u1xn−k+1 + ... + uk−1xn−1,Division von u(x) ⋅ xn−k durch g(x):u(x) ⋅ xn−k = q(x) ⋅ g(x) + r(x) mit r(x) = r0 + r1x + ... + rn−k−1xn−k−1 undAuflösen nach dem Codewort: − r(x) + u(x) ⋅ xn−k = q(x) ⋅ g(x) = a(x).
a = (−r0, −r1, −r2, ... , −rn−k−1, u0, u1, u2, ... , uk−1)
A = (u0, u1, u2, .... , uk−1,0,0, ... ,0) a = (a0, a1, a2, .... , an−1)
a(x) = u(x) ⋅ g(x)
(4.46c)
(4.46b)
(4.46a)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.213
4.2.2 Codierung von Reed-Solomon-Codes
Blockdiagramm zur Codierung im Frequenzbereich (Methode 1):
u0 A0 a0 c0
u1 A1 a1 c1
u2 A2 a2 c2
uk−1 Ak−1
0 Ak
0 Ak+1
0 An−1 an−1 cn−1
....
................
................
∑−
=⋅=
1
0
n
j
ijji zAa
IDFT....
....
....
Nach-richten-wort
Code-wort
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.214
4.2.2 Codierung von Reed-Solomon-Codes
Beispiel für die Codierung im Frequenzbereich (Methode 1):Betrachtet wird ein (6,2)-RS-Code über GFGF(7) mit dem primitiven Element z = 5. Es soll das Nachrichtenwort u = (3,3) codiert werden.
Mit B(x) = 1 + 1x ergibt sich das Codewort b zu B = (1,1,0,0,0,0) b = (2,6,5,0,3,4).
n = 6; k = 2 und A(x) = 3 + 3x. Mit ai = A(x = zi) (Gl. 4.25b) folgt:a0 = A(x = z0 = 50 = 1) = A0 + A1z0 = 3 + 3 ⋅ 1 = 6,a1 = A(x = z1 = 51 = 5) = A0 + A1z1 = 3 + 3 ⋅ 5 = 4,a2 = A(x = z2 = 52 = 4) = A0 + A1z2 = 3 + 3 ⋅ 4 = 1,a3 = A(x = z3 = 53 = 6) = A0 + A1z3 = 3 + 3 ⋅ 6 = 0,a4 = A(x = z4 = 54 = 2) = A0 + A1z4 = 3 + 3 ⋅ 2 = 2,a5 = A(x = z5 = 55 = 3) = A0 + A1z5 = 3 + 3 ⋅ 3 = 5.
Ergebnis: A = (3,3,0,0,0,0) a = (6,4,1,0,2,5).
Die Hamming-Distanz ist: dH(a,b) = dH((6,4,1,0,2,5),(2,6,5,0,3,4)) = 5.Zum Vergleich: dmin = n − k + 1 = 6 − 2 + 1 = 5.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.215
4.2.2 Codierung von Reed-Solomon-Codes
u = (3,4) ⇒ u(x) = 3 + 4x ⇒ u(x) ⋅ xn−k = 3x4 + 4x5.
Eine Alternative bietet die Codierung mit systematischer Generatormatrix:
)()(
xgxr
Beispiel für die systematische Codierung im Zeitbereich (Methode 3):Betrachtet wird ein (6,2)-RS-Code über GFGF(7) mit dem primitiven Element z = 5. Es soll das Nachrichtenwort u = (3,4) systematisch codiert werden.
( ) ( )0,5,6,2,4,34236104652014,3syst =⎟
⎠⎞⎜
⎝⎛⋅=⋅= Gub
Division von u(x) durch g(x) = 2 + 5x + 6x2 + 4x3 + x4 (vgl. S. 203):
(4x5 + 3x4) ÷ (1x4 + 4x3 + 6x2 + 5x + 2) = 4x + 1 +− (4x5 + 2x4 + 3x3 + 6x2 + 1x)
1x4 + 4x3 + 1x2 + 6x − (1x4 + 4x3 + 6x2 + 5x + 2)
2x2 + 1x + 5 = r(x)−r(x) + u(x) xn−k = 2 + 6x + 5x2 + 3x4 + 4x5 ⇒ a = (2, 6, 5, 0, 3, 4)
−r u
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.216
4.2.2 Codierung von Reed-Solomon-Codes
Das Generatorpolynom berechnet sich nach Gl. (4.39):g(x) = (x − z) (x − z2) (x − z3) (x − z4)
= (x2 + xz4 + z3) (x2 + xz6 + 1)= x4 + x3z3 + x2 + xz + z3.
Das Prüfpolynom berechnet sich nach Gl. (4.40):h(x) = (x − z5) (x − z6) (x − z7)
= x3z3 + x2z3 + xz2 + z4.
Beispiel für die systematische Codierung im Zeitbereich (Methode 3):Betrachtet wird ein (7,3)-RS-Code über GFGF(23). Das primitive Polynom ist p(x) = 1 + x + x3.Die Codewortlänge berechnet sich über n = pm − 1 = 8 − 1 = 7. Die Zahl korrigierbarer Symbole ist t = 2, weil n − k = 4 mit k = 3. Mit p(x) gilt für das primitive Element die Beziehung: 1 + z + z3 = 0.Die einzelnen Elemente in Exponenten- und Komponentendarstellung dieses Erweiterungskörpers sind in der Tabelle gegeben.
0 = 0z0 = 1z1 = zz2 = z2
z3 = 1 + zz4 = z + z2
z5 = 1 + z + z2
z6 1 + z2
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.217
4.2.2 Codierung von Reed-Solomon-Codes
Beispiel (Fortsetzung):Es soll das Nachrichtenwort u = (1, z, z2) systematisch codiert werden.u = (1, z, z2) ⇒ u(x) = 1 + xz + x2z2 ⇒ u(x) ⋅ xn−k = x4 + x5z + x6z2.Division von u(x) ⋅ xn−k durch g(x) = x4 + x3z3 + x2 + xz + z3:
)()(
xgxr
Die zugehörige Generatormatrix lautet: .⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
110001100011
3333
33
zzzzzz
zzzG
(x6z2 + x5z + x4) ÷ (x4 + x3z3 + x2 + xz + z3) = x2z2 + x + z3 + + (x6z2 + x5z5 +x4z2 + x3z3 + x2z5)
x5z6 + x4z6 + x3z3 + x2z5
+ (x5z6 + x4z2 + x3z6 + x2 + xz2)x4 + x3z4 + x2z4 + xz2
+ (x4 + x3z3 + x2 + xz + z3)x3z6 + x2z5 + xz4+ z3 = r(x)
−r(x) + u(x) xn−k = z3+xz4 +x2z5 +x3z6 +x4+x5z +x6z2 ⇒ a = (z3,z4,z5,z6,1,z,z2).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.218
4.2.3 Decodierung von Reed-Solomon-Codes4.2 Reed-Solomon-Codes
Die Decodierung von RS-Codes wird anhand spezieller Algorithmen algebraisch durchgeführt. Die Verwendung einer Syndromtabelle ist wegen des gewaltigen benötigten Speicherplatzes nicht möglich.Es wird von einem Empfangsvektor r ausgegangen, der aus der Überlagerung des ursprünglich gesendeten Codeworts a mit einem Fehlervektor f entstanden ist: r = a + f.Der RS-Code sei in der Lage, t Fehler zu korrigieren.Die Vorgehensweise bei der algebraischen Decodierung lässt sich dann aufteilen in die Schritte:1. Berechnung des Syndroms S(x) aus r2. Berechnung der Fehlerstellen aus S(x) mittels der sogenannten
Schlüsselgleichung3. Berechnung der Fehlerwerte von f, da RS-Codes keine binären Codes
sind4. Korrektur der Fehler mit der Beziehung a = r – f.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.219
4.2.3 Decodierung von Reed-Solomon-Codes
Berechnung des Syndroms:Laut Definition besitzt ein Codewort A im Frequenzbereich 2taufeinanderfolgende Koeffizienten, die Null sind. Diese Stellen des Vektors R werden als Syndromvektor oder kurz Syndrom bezeichnet. Es gilt:
Berechnung der Fehlerstellen:Hierzu wird die sogenannte Schlüsselgleichung hergeleitet, die einen Bezug zwischen dem Syndrom S(x) und dem Fehlerstellenpolynomc(x) C(x) herstellt, dessen Nullstellen die Fehlerorte markieren. c(x) wird so definiert, dass gilt: ci = 0 für fi ≠ 0, so dass dann gilt:
Syndrom S
r = a + f R = A + F = (A0+F0, A1+F1, ..., Ak–1+Fk–1, Fn–2t, ... , Fn–1).
ci ⋅ fi = 0 für i = 0, 1, ... , n − 1
∏≠
−=0,
)()(ifi
izxxCJede Fehlerstelle erzeugt somit eine Nullstelle / einen Linearfaktor in C(x):
(4.47)
(4.48)
(4.49)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.220
4.2.3 Decodierung von Reed-Solomon-Codes
Nach Gl. 4.31b und 4.26e gilt für die DFT des Produkts ci ⋅ fi :
2knte −
=≤
ee
fi
i xCxCxzxCi
+++=⋅−= ∏≠
− ...1)1()( 10,
ci ⋅ fi = 0 C(x) ⋅ F(x) = 0 mod (xn − 1)
Das Polynom C(x) ⋅ F(x) besitzt alle möglichen Nullstellen. Der Grad von C(x) ist gleich der Anzahl der Fehlerstellen e. Dies gilt unter der Annahme:
Mit Gl. (4.49) gilt für das Fehlerstellenpolynom C(x):C(x) = C0 + C1x + ... + Cexe
C(x) besitzt somit genau e + 1 Koeffizienten; von Interesse sind aber nur die e Nullstellen des Polynoms, somit ist ein Koeffizient Ci frei wählbar und kann auf 1 normiert werden. Nach Gl. (4.49) ist Ce = 1 gewählt. Wird C0 = 1 gewählt, so ist C(x) definiert durch:
(4.50)
(4.51)
(4.52)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.221
4.2.3 Decodierung von Reed-Solomon-Codes
Bevor die Schlüsselgleichung hergeleitet wird, sollen erst die Beziehungen zwischen den bisher betrachteten Polynomen zusammengefasst werden. Diese sind das gesendete Codewort a(x), das Fehlerpolynom f(x), das Empfangswort r(x) sowie das Fehlerstellenpolynom c(x) und die zugehörigen Darstellungen im Frequenzbereich:
a(x) xxxxxxxxxxxxxxxxxxxx A(x) xxxxxxxxxxxxxx000000
f(x) 00000x000x000000x000 F(x) xxxxxxxxxxxxxxxxxxxx
r(x) xxxxxxxxxxxxxxxxxxxx R(x) xxxxxxxxxxxxxxxxxxxx S(x)
c(x) xxxxx0xxx0xxxxxx0xxx C(x) xxxx0000000000000000
ci⋅fi = 0 C(x)⋅F(x) = 0 mod (xn−1)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.222
4.2.3 Decodierung von Reed-Solomon-Codes
Zur Bestimmung der Koeffizienten Ci durch Aufstellen und anschließendes Lösen der Schlüsselgleichung wird zunächst angenommen, dass gilt: e = t.Gl. (4.50) in der Form C(x) ⋅ F(x) = 0 mod (xn − 1) wird als Gleichungssystem geschrieben, wobei die Koeffizienten nach aufsteigenden Indexsummen modulo-n, d. h. nach Potenzen x0 bis xn–1 (xn = x0), geordnet werden:
00
000
00
13221102423120
1212110222110
12322110
1120110221100
=+++=++++
=++++=++++=++++
=++++=++++
−−−−−−−−−−
+−−−−+−−−−−−−
−−−−−−−−
+−−−−−
tntnnntntnnn
tnttntntntnttntntntnttntntn
tntntntnn
FCFCFCFCFCFCFCFC
FCFCFCFCFCFCFCFCFCFCFCFC
FCFCFCFCFCFCFCFC
KK
MMMMMKKK
MMMMMKK
(4.53)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.223
4.2.3 Decodierung von Reed-Solomon-Codes
Der eingerahmte Teil in Gl. (4.53) besitzt t Gleichungen mit t Unbekannten. Die Koeffizienten des Fehlerstellenpolynoms sind dort bekannt und entsprechen den Syndromkoeffizienten von S(x):
0
00
1322221120
112110022110
=++++
=++++=++++
−−−−
−+−−
ttttt
tttttttt
SCSCSCSC
SCSCSCSCSCSCSCSC
KMMMMM
KK
S0 = Fn−2t , S1 = Fn−2t+1 , .... , S2t−1 = Fn−1.Eingesetzt in den eingerahmten Teil von Gl. (4.53) ergibt sich:
Das lineare Gleichungssystem ist eindeutig lösbar. Der hierdurch erhaltene Zusammenhang zwischen den gesuchten Koeffizienten Ci und den bekannten Koeffizienten Si entspricht einer zyklischen Faltung und bildet mit der Normierung C0 = 1 die Schlüsselgleichung (auch Newton-Identität genannt):
∑=
− −==⋅+t
iijij ttjSCS
112,,für0 K
(4.54)
(4.55)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.224
4.2.3 Decodierung von Reed-Solomon-Codes
Im Allgemeinen ist die Anzahl der Fehler unbekannt. Dabei sind Fehler mit kleinem Gewicht wahrscheinlicher als Fehler mit großem Gewicht. Für e < tsind die gesuchten Koeffizienten C1, C2, ... , Ce. Die Zahl der Variablen ist e, die Zahl der Gleichungen dagegen t. Damit ist das Gleichungssystem überbestimmt und es werden unterschiedliche Ansätze für C(x) benötigt. Dazu wird die nicht normierte Schlüsselgleichung mit variabler Fehlerzahl betrachtet:
In der Matrixschreibweise ergibt sich die Darstellung:
tetejSCe
iiji ,,2,1für12,,für0
0KK =−==⋅∑
=−
te
CC
CC
SSSSSSSS
SSSSSSSS
ee
etetttetettt
eeee
,,2,1für1
10
122221222123222
121011
KM
KK
MMMMLL
==
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜
⎝
⎛
−−−−−−−−−−−−
+−
0
(4.57)
(4.56)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.225
4.2.3 Decodierung von Reed-Solomon-Codes
Die Suche nach den Koeffizienten des Fehlerstellenpolynoms wird mit dem wahrscheinlichsten Fehlerereignis e = 1 begonnen. Ist für diese Fehlerzahl keine Lösung gefunden worden, wird e sukzessive erhöht, bis e die Grenze von t erreicht. Ein Decodierversagen liegt dann vor, wenn kein Fehlerstellenpolynom gefunden wird.Zwei bekannte Algorithmen berechnen die Lösung der Schlüsselgleichungmit geringem Rechenaufwand, nämlich:– der Berlekamp-Massey-Algorithmus und– der Euklid’sche Divisionsalgorithmus.Ist eine Lösung für das Fehlerstellenpolynom gefunden, werden durch einfaches Durchprobieren aller möglichen Nullstellen (Chien search) die Fehlerstellen gesucht: C(x = zi) für 0 ≤ i ≤ n–1.Gilt für ein beliebiges j aus diesem Bereich
C(x = zj) = 0,so ist j eine Fehlerstelle.
(4.58)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.226
4.2.3 Decodierung von Reed-Solomon-Codes
Berechnung der Fehlerwerte:Gl. (4.50) entspricht einer zyklischen Faltung der Koeffizienten, die dargestellt werden kann als
n) mod(Index 1,,1,0für00
−==⋅∑=
− njFCe
iiji K
n) mod(Index 1,,1,0für01
0 −==⋅+ ∑=
− njFCFCe
iijij Kbzw.
n) mod(Index 1,,1,0für1
10 −=⋅⋅−= ∑
=−
− njFCCFe
iijij K
Nach Fj aufgelöst können die Fehlerwerte rekursiv berechnet werden:
mit C(x) = C0 + C1x + ... + Cexe
und F(x) = F0 + F1x + ... + Fk−1xk−1 + Fkxk + Fk+1xk+1 + ... + Tn−1xn−1
unbekannter Teil bekannter Teil (S)
(4.59a)
(4.59b)
(4.60)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.227
4.2.3 Decodierung von Reed-Solomon-Codes
Beispiel:Betrachtet wird der (6,2)-RS-Code über GFGF(7) mit dem primitiven Element z = 5. Die Parameter sind dann: n = 6, k = 2, d = dH,min = 5 und t = 2.Zu decodieren ist der Empfangsvektor r = (1,2,3,1,1,1).1. Berechnung des Syndroms (Gl. 4.47):
S
r = (r0,r1,r2,r3,r4,r5) = (1,2,3,1,1,1)R = (R0,R1,R2,R3,R4,R5) = (R0,R1,F2,F3,F4,F5) = (5,0,4,6,6,1)
⇒ S = (F2,F3,F4,F5) =(S0,S1,S2,S3) = (4,6,6,1).
Annahme der wahrscheinlichsten Fehlerzahl: e = 1 ⇒ C(x) = C0 + C1x.2. Berechnung der Fehlerstellen über Gl. (4.57):
⎟⎟⎠
⎞⎜⎜⎝
⎛=⎟
⎠⎞
⎜⎝⎛⋅⎟
⎟⎠
⎞⎜⎜⎝
⎛=⎟
⎠⎞
⎜⎝⎛⋅⎟
⎟
⎠
⎞
⎜⎜
⎝
⎛
000
1616646
010
231201 C
CC
SSSSSS
Normierung (beliebig): C1 = 1 ⇒
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.228
4.2.3 Decodierung von Reed-Solomon-Codes
Die einzelnen Gleichungen haben die Lösungen:6 C0 + 4 = 0 ⇒ C0 = 4,6 C0 + 6 = 0 ⇒ C0 = 6 und1 C0 + 6 = 0 ⇒ C0 = 1.
Dies ist ein Widerspruch, somit muss e erhöht werden:e = 2 ⇒ C(x) = C0 + C1x + C2x2.
I: 6 C0 + 6 C1 + 4 = 0II: 1 C0 + 6 C1 + 6 = 0I−II: 5 C0 − 2 = 0 ⇒ C0 = 2⋅5−1 = 6 II: 6 C1 + 5 = 0 ⇒ C1 = −5⋅6−1 = 5
⎟⎠⎞⎜
⎝⎛=⎟
⎟
⎠
⎞
⎜⎜
⎝
⎛⋅⎟
⎠⎞⎜
⎝⎛=⎟
⎟
⎠
⎞
⎜⎜
⎝
⎛⋅⎟
⎠⎞
⎜⎝⎛
00
1661466
10
210
123012 C
C
CCC
SSSSSSNormierung: C2 = 1 ⇒
Die Lösung des Gleichungssystems ergibt:
Das Fehlerstellenpolynom lautet somit: C(x) = 6 + 5 x + x2.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.229
4.2.3 Decodierung von Reed-Solomon-Codes
Die Suche der Nullstellen (Chien search) ergibt:C(x = z0 = 1) = 6 + 5 + 1 = 5,C(x = z1 = 5) = 6 + 4 + 4 = 0 ⇒ Nullstelle bei z1,C(x = z2 = 4) = 6 + 6 + 2 = 0 ⇒ Nullstelle bei z2,C(x = z3 = 6) = 6 + 2 + 1 = 2,C(x = z4 = 2) = 6 + 3 + 4 = 6 undC(x = z5 = 3) = 6 + 1 + 2 = 2.
Fehler wurden an der 1. und 2. Stelle des Empfangsvektors entdeckt (Index beginnt bei 0!).Probe: C(x) = (x − z1)⋅(x − z2) = 6 + 5 x + x2
3. Berechnung der Fehlerwerte (Gl. 4.60):Mit R = (R0,R1,F2,F3,F4,F5) = (5,0,4,6,6,1) und C(x) = 6 + 5 x + x2 ergibt sich:
F0 = −C0−1 ⋅ (C1 ⋅ F−1 + C2 ⋅ F-2)
= −C0−1 ⋅ (C1 ⋅ F5 + C2 ⋅ F4)
= −6−1 ⋅ (5 ⋅ 1 + 1 ⋅ 6) = 1 ⋅ (5 + 6) = 4
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.230
4.2.3 Decodierung von Reed-Solomon-Codes
undF1 = −C0
−1 ⋅ (C1 ⋅ F0 + C2 ⋅ F-1)= −C0
−1 ⋅ (C1 ⋅ F0 + C2 ⋅ F5)= −6−1 ⋅ (5 ⋅ 4 + 1 ⋅ 1) = 1 ⋅ (6 + 1) = 0.
Damit lautet der vollständige Fehlervektor im Frequenzbereich:F = (F0,F1,F2,F3,F4,F5) = (4,0,4,6,6,1).
Die Rücktransformation in den Zeitbereich ergibt:f = (f0,f1,f2,f3,f4,f5) = (0,1,2,0,0,0).
aDas Decodierergebnis lautet schließlich:
= r − f = (1,2,3,1,1,1) − (0,1,2,0,0,0) = (1,1,1,1,1,1).
Diese Stelle bietet eine gute Kontrollmöglichkeit, da in f nur die Stellen ungleich Null sein sollten, die bei der Fehlerstellensuche ermittelt wurden.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.231
4.3 Bose-Chaudhuri-Hocquenghem-Codes4 Bündelfehlerkorrigierende Blockcodes
Bose-Chaudhuri-Hocquenghem-Codes (BCH-Codes) gehören wie die RS-Codes zur Klasse der zyklischen Codes und stellen eine wichtige Erweiterung der Hamming-Codes dar. Sie sind besonders für die Korrektur mehrerer statistisch unabhängiger (Einzel-)Fehler geeignet. Dabei wird zwischen binären und nicht-binären BCH-Codes unterschieden, wobei die binären BCH-Codes als Spezialfall der RS-Codes betrachtet werden können, während die RS-Codes wieder als Spezialfall der nicht-binären BCH-Codes erklärt werden können. Hier sollen aber nur die binären BCH-Codes betrachtet werden.Ein binärer BCH-Code mit der Codewortlänge n = 2m–1 zeichnet sich dadurch aus, dass jedes Codewort a im Zeitbereich aus Komponentenai ∈ GFGF(2) besteht, während das Codewort im Frequenzbereich aus Komponenten Ai ∈ GFGF(2m) besteht.Die Definition eines binären BCH-Codes ist wie bei den RS-Codes im Frequenzbereich durch verschwindende benachbarte Prüfstellen oder im
Zeitbereich durch ein Generatorpolynom möglich.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.232
4.3 Bose-Chaudhuri-Hocquenghem-Codes
Für einen binären BCH-Code mit ai ∈ GFGF(2) vereinfachen sich die DFT-Transformationsgleichungen 4.25a/b zu
Ai = a(x = z−i) und aj = A(x = zj),obwohl Ai ∈ GFGF(2m) ist.Gilt Ai = 0, so besitzt das Polynom a(x) im Zeitbereich eine Wurzel z−i.D. h., a(x) enthält den Faktor (x − z−i):
Ai = 0 = a(x = z−i).
df
4.3.1 Ableitung der BCH-Codes im Frequenzbereich
Es gilt der Satz, dass ein Polynom f(x) in GFGF(2) die folgende wichtige Eigenschaft besitzt:
[f(x)]2 = f(x2)
Beweisidee über binomische Formel:(a + b)2 = a2 + 2ab + b2 = a2 + b2, da 2ab = 0 mod 2.
a und b können nun selber wieder Summenterme sein, deren einzelne Komponenten ebenfalls Summenterme sind usw. Ergebnis ist ein
unbegrenzt langer Summenterm mit der zu beweisenden Eigenschaft.
(4.61a/b)
(4.62)
(4.63)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.233
4.3.1 Ableitung der BCH-Codes im Frequenzbereich
Mit Gl. (4.63) gilt:A2i = a(x = z−2i) = a(x = (z−i)2) = [a(x = z−i)]2 = (Ai)2
A4i = a(x = z−4i) = a(x = (z−2i)2) = [a(x = z−2i)]2 = (A2i)2 = (Ai)4
A8i = a(x = z−8i) = a(x = (z−4i)2) = [a(x = z−4i)]2 = (A4i)2 = (Ai)8 usw.Der allgemeine Zusammenhang, dass die Bedingung ai ∈ GFGF(2) erfüllt ist, lautet somit:
Der binäre (primitive) BCH-Code C mit der Codewortlänge n = 2m − 1 und der konstruierten Mindestdistanz d ist bestimmt durch
C = {a | ai = A(zi), grad A(x) ≤ n − d, A(2 j⋅i) = (Ai)(2j), Ai ∈ GFGF(2m)}
mit dem primitiven Element z ∈ GFGF(2m).
( ) )2()2(
jj ii AA =⋅
Damit lautet die Definition:
(4.64)
(4.65)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.234
4.3.1 Ableitung der BCH-Codes im Frequenzbereich
Beispiel:Betrachtet wird ein BCH-Code über GFGF(23) mit n = 23 − 1 = 7 und t = 1, d.h. d = 3. Für die Komponenten des Codewortvektors
A = (A0,A1,A2,A3,A4,A5,A6) = (A0,A1,A2,A3,A4,0,0) gilt:für A0: A(2 j⋅ 0) = A0 = (A0)(2
j) ⇒ A0 ∈ GFGF(2)
für A1: A(2 j⋅ 1) = A(2 j) = (A1)(2j) ⇒ A2 = (A1)2 , A4 = (A1)4 ,
A8 mod 7 = A1 = (A1)8 ⇒ A1 ∈ GFGF(23)für A3: A(2 j⋅ 3) = (A3)(2
j) ⇒ A6 = (A3)2 , A12 = A5 = (A3)4, A24 = A3 = (A3)8
⇒ A3 ∈ GFGF(23)Mit A5 = A6 = 0 ist aber auch A3 = 0. D.h., obwohl 5 Stellen im FB zur Verfügung stehen, sind nur zwei Symbole bzw. 4 Bits (1 + 3) an Information pro Codewort übertragbar. Codierungsbeispiel:A0 = 1, A1 = z ⇒ A = (1,z,z2,0,z4,0,0), A(x) = 1 + z x + z2 x2 + z4 x4
a0 = A(z0) = 1+z1+z212+z414 = 1+z+z2+z4 = 1+z+z2+z+z2 = 1a1 = A(z1) = 1+zz+z2z2+z4z4 = 1+z2+z4+z8 = 1+z2+z+z2+z = 1 ...
⇒ a = (1,1,0,1,0,0,0) (vgl. zugehörige RS-Codierung auf S. 216f.)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.235
4.3.1 Ableitung der BCH-Codes im Frequenzbereich
Das vorangehendeBeispiel lässt sichmit der neben-stehenden Schaltungrealisieren.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.236
4.3.2 Ableitung der BCH-Codes im Zeitbereich4.3 Bose-Chaudhuri-Hocquenghem-Codes
Sind sowohl eine Komponente Ai eines Vektors A wie auch ihre konjugierten Komponenten Null, bildet das Produkt der zugehörigen Wurzeln (Nullstellen) im Zeitbereich ein Minimalpolynom mit Koeffizienten aus GFGF(2) gemäß Gl. (4.17) und (4.22). Besitzt A aufeinander folgende Komponenten Ai, Ai–1, ..., die identisch Null sind, so erzeugt das Produkt der Minimalpolynome das Generatorpolynom des binären BCH-Codes. Die Definition lautet dann:
Gibt es d − 1 aufeinander folgende Zahlen in M, so ist die konstruierte Mindestdistanz d. Die tatsächlich erreichte Mindestdistanz kann größer sein.
K⋅⋅=−= ∏∈
)()()()(21
xmxmzxxg jjMi
i
Kj sind die Kreisteilungsklassen bezüglich einer Zahl n = 2m − 1, z ein primitives Element in GFGF(2m) und M die Vereinigungsmenge der Kreisteilungsklassen: M = {Kj1
∪Kj2∪...}. Ein primitiver BCH-Code der
Länge n = 2m − 1 ist bestimmt durch das Generatorpolynom:
Der BCH-Code hat die Dimension k = n − grad (g(x)).
(4.66)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.237
4.3.2 Ableitung der BCH-Codes im Zeitbereich
Beispiel:Auf der Basis des GFGF(24), d.h. n = 24 − 1 = 15, werden Konstruktionen für verschiedene zu konstruierende Mindestdistanzen betrachtet (vgl. S. 184).
1)()()( 41
},{ 21
++==−= ∏∈
xxxmzxxgKKi
i
1)1()1(
)()()()(
46782344
31},,,{ 4321
++++=++++⋅++=
⋅=−= ∏∈
xxxxxxxxxx
xmxmzxxgKKKKi
i
I:
II:
Mit M = {K1,K2} = K1 = {1,2,4,8} ist die konstruierte Mindestdistanz d = 3, da d − 1 = 2 aufeinander folgende Zahlen in M enthalten sind.Die Dimension ist k = n − grad (g(x)) = 15 − 4 = 11.
Mit M = {K1∪K3} = {1,2,3,4,6,8,9,12} ist die konstruierte Mindestdistanzd = 5, da d − 1 = 4 aufeinander folgende Zahlen in M enthalten sind.Die Dimension ist k = n − grad (g(x)) = 15 − 8 = 7.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.238
4.3.2 Ableitung der BCH-Codes im Zeitbereich
III:
Bei der Zusammenfassung der Kreisteilungsklassen ist darauf zu achten, dass es sich um die Vereinigung von Mengen handelt, in der dasselbe Element nicht mehrfach vorkommt. Deswegen gilt z. B. für das erste Beispiel (I):
M = {K1∪K2} = K1, da K1 = K2.
1
)1()1()1(
)()()()()(
245810
22344
531},,,{ 621
++++++=
++⋅++++⋅++=
⋅⋅=−= ∏∈
xxxxxx
xxxxxxxx
xmxmxmzxxgKKKi
i
K
Mit M = {K1∪K3∪K5} = {1,2,3,4,5,6,8,9,10,12} ist die konstruierte Mindestdistanz d = 7, da d − 1 = 6 aufeinanderfolgende Zahlen in Menthalten sind.Die Dimension ist k = n − grad (g(x)) = 15 − 10 = 5.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.239
4.3.3 Aspekte der Codierung / Decodierung von BCH-Codes4.3 Bose-Chaudhuri-Hocquenghem-Codes
Der BCH-Code ist ein linearer zyklischer Code, der analog zu Abschnitt 3.3auf zwei Arten mit dem Generatorpolynom codiert werden kann:– unsystematisch durch Multiplikation mit dem Generatorpolynom und– systematisch durch Division durch das Generatorpolynom.Im Unterschied zu den RS-Codes hat die Verschiebung der Prüffrequenzen aufgrund der konjugiert komplexen Elemente Einfluss auf die Leistungsfähigkeit des BCH-Codes.Die Decodierung ist ähnlich wie bei den RS-Codes. Der Vorteil hier besteht darin, dass bei binären Codes keine Berechnung der Fehlerwerte notwendig ist.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.240
5 FaltungscodesCodierungstheorie
Die Faltungscodes bilden neben den Blockcodes die zweite wichtige Gruppe fehlerkorrigierender Codes. Anstelle einer blockweisen Erzeugung von Codewörtern werden die Codewörter durch Faltung einer Informationssequenz mit einem Satz von Generatorkoeffizienten erzeugt.Obwohl sie gegenüber den Blockcodes eine einfachere mathematische Struktur besitzen, existieren für sie keine analytischen Verfahren zur Konstruktion; sie werden durch Rechnersimulation gefunden.Allerdings können Faltungscodes Zuverlässigkeitsinformation von Codesymbolen einfacher verarbeiten als Blockcodes. Dafür sind sie stark empfindlich gegenüber Bündelfehlern. In der Regel sind die Codes binär.Erste Publikationen zu Faltungscodes erschienen 1955 von Elias. Praktisch konnten sie aber erst nach der Entwicklung von Decodierverfahren genutzt werden. Dazu zählt das Verfahren der sequentiellen Decodierung von Fano(1963) und der praktisch realisierbare Maximum-Likelihood-Decodieralgorithmus von Viterbi (1967).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.241
5 Faltungscodes
Soft- und Hard-Decision:Bei der Decodierung sind Faltungscodes in der Lage, sowohl Hard- als auch Soft-Decision-Symbole zu verwenden. Hard-Decision bedeutet, dass das kontinuierliche Empfangssignal nach der Demodulation durch einenSchwellenwert-Entscheider ineine Folge von möglichenSendesymbolen umgewandeltwird. Bei der Soft-Decisionwird entweder das analogeSignal weitergegeben oderQuantisierungswerte(Zwischenwerte) verwendet(s. Abbildung). Dadurch isteine zuverlässigereDecodierung möglich.
Zeit
Empf
angs
pege
l
HD-Entscheiderschwelle
Bitfehler!
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.242
5.1 Definition von Faltungscodes5 Faltungscodes
Analog zu den Blockcodes werden die Informations- bzw. Codesequenzen in Blöcke der Länge k bzw. n unterteilt, hier aber mit der Blocknummer rindiziert: ur = (ur,1,ur,2, ... ,ur,k), ar = (ar,1,ar,2, ... ,ar,n).
∑ ∑= =
−⋅=m k
rr uga0 1
,,,,μ κ
κμνμκν
Üblicherweise sind die Symbole binär: ai,j , ui,j ∈ GFGF(2) = {0,1}.
ar = ar(ur, ur−1, ... , ur−m)Der Codierer ist linear (vgl. Abschnitt 5.4), d. h. die Codebits ergeben sich als Linearkombinationen der Informationsbits. Die formale Beschreibung erfolgt mit Generatorkoeffizienten gκ,μ,ν ∈ GFGF(2) mit 1 ≤ κ ≤ k, 0 ≤ μ ≤ mund 1 ≤ ν ≤ n, so dass sich die Codebit-Teilfolgen als Faltungen der Informationsbitfolgen mit den Generatorkoeffizienten ergeben:
Die Zuordnung von ar zu ur ist im Gegensatz zu den Blockcodes nicht gedächtnislos. Der aktuelle Codeblock wird durch den aktuellen Informationsblock und durch m vorangegangene bestimmt:
(5.1a/b)
(5.2)
(5.3)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.243
5.1 Definition von Faltungscodes
Die Coderate des Faltungscodes ist: .nkR =C
Die Größe m wird als Gedächtnislänge bezeichnet und L = m + 1 als Einflusslänge (constraint length). Sie prägt neben der Coderate sowohl die Leistungsfähigkeit wie auch den Aufwand bei der Decodierung. Rein formal sind Blockcodes ein Sonderfall der Faltungscodes mit m = 0.Während bei Blockcodes k und n üblicherweise groß sind, sind bei Faltungscodes typische Werte: k = 1, 2; n = 2, 3, 4; m ≤ 8.Für die Realisierung des Gedächtnisses sind k ⋅ (m + 1) Speicherstellen notwendig (vgl. Abbildung nächste Seite). In der Literatur existieren auch Darstellungen, die die Informationsfolge ur direkt auf die Additionsglieder ohne die Zwischenspeicherung legen. In dem Fall beträgt die Anzahl der Speicherstellen nur k ⋅ m.
(5.4)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.244
5.1 Definition von Faltungscodes
Blockschaltbild eines allgemeinen (n,k,m)-Faltungscodierers:
Eine Verbindungentspricht einem gκ,μ,ν.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.245
5.1 Definition von Faltungscodes
Beispiel: (2,1,2)-Faltungscodierer
Die Parameter sind:n = 2, k = 1, m = 2,RC = 1/2.
Die Codebits berechnen sich aus:ar,1 = ur + ur−1 + ur−2;ar,2 = ur + ur−2.
Ein Beispiel für eine Codiersequenz ist:u = (1,1,0,1,0,0,...);a = (11,01,01,00,10,11,...).
Auf dieses Beispiel wird in diesem Kapitel noch des Öfteren verwiesen.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.246
5.1 Definition von Faltungscodes
Beispiel: (3,2,2)-Faltungscodierer
Die Parameter lauten:n = 3, k = 2, m = 2,RC = 2/3.
Die Codebits berechnen sich aus:ar,1 = ur,2 + ur−1,1 + ur−2,2;ar,2 = ur,1 + ur−1,1 + ur−1,2;ar,3 = ur,2.
Ein Beispiel für eine Codesequenz ist:u = (11,10,00,11,01,...);a = (111,110,010,111,001,...).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.247
5.1 Definition von Faltungscodes
Polynombeschreibung:Hier soll die Einschränkung k = 1 gelten. Dadurch ergeben sich enorme Vereinfachungen in der Beschreibung.Den Generatorkoeffizienten gk,v werden die Generatorpolynome
∑=
⋅=m
xgxg0
,)(μ
μνμν
zugeordnet. Die Informationsbitfolge wird durch eine Potenzreihe und die Codeblockfolge durch einen Potenzreihenvektor charakterisiert:
∑∞
==
0)(
r
rr xuxu
( ) ∑∞
===
0,21 )(mit)(,),(),()(
r
rrn xaxaxaxaxax ννKa
und
(5.5)
(5.6)
(5.7a/b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.248
5.1 Definition von Faltungscodes
Die Faltungscodierung entspricht einer Polynom-Multiplikation gemäß:
⇔ a(x) = u(x) ⋅ G(x)
Für die Gedächtnislänge gilt:
nxgxuxa ,,1für)()()( K=⋅= ννν
( ) ( ))(,),(),()()(,),(),( 2121 xgxgxgxuxaxaxa nn KK ⋅=
( ))(,),(),()( 21 xgxgxgx nK=G
))((gradmax1
xgmn
νν ≤≤
=
mit der Generatormatrix:
Dann lautet die Definition der Faltungscodes mit der Polynom-Multiplikation:
⎭⎬⎫
⎩⎨⎧
∈=⋅= ∑∞
=0
}1,0{,)(|)()(r
rr
r uxuxuxGxuC
(5.8a)
(5.8b)
(5.8c)(5.9)
(5.10)
(5.11)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.249
5.1 Definition von Faltungscodes
Beispiel:
Dann ergibt sich die Codesequenz im Vektorformat durch Sortieren der Koeffizienten:
Für den (2,1,2)-Faltungscodierer auf Seite 245 gilt:G(x) = (g1(x),g2(x)) = (1 + x + x2, 1 + x2).
Das Codierbeispiel lässt sich darstellen als:u = (1,1,0,1,0,0,...) ⇔ u(x) = 1 + x + x3 + ...
und a(x) = (a1(x),a2(x)) = u(x) G(x)= ((1 + x + x3)(1 + x + x2),(1 + x + x3)(1 + x2))= (1 + x4 + x5,1 + x + x2 + x5)= (a0,1x0 + a1,1x1 + a2,1x2 + a3,1x3 + a4,1x4 + a5,1x5,
a0,2x0 + a1,2x1 + a2,2x2 + a3,2x3 + a4,2x4 + a5,2x5).
Ergebnis: a = (11,01,01,00,10,11).a = (a0,1a0,2, a1,1a1,2, a2,1a2,2, a3,1a3,2, a4,1a4,2, a5,1a5,2).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.250
5.2 Spezielle Codeklassen5 Faltungscodes
Systematische Faltungscodes:Die Informationsbits werden direkt in die Codebits übernommen.Blockschaltbild eines allgemeinen systematischen Faltungscodierers:
Nichtsystematische Faltungscodes haben in der Regel günstigere Eigenschaften.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.251
5.2 Spezielle Codeklassen
Terminierte Faltungscodes:Nach L Informationsblöcken werden m bekannte Blöcke (tail bits -üblicherweise Nullen) eingefügt. Dadurch wird das Codewort abgeschlossen (Terminierung) und das Gedächtnis auf den Nullzustand gesetzt. Dies entspricht einer Blockstruktur (Blockcode). Die Coderate ist dann:
Achtung: nicht die L zusammengefassten Blöcke für die Terminierung mit der Einflusslänge (s. S. 243) verwechseln!
nmLkLR
⋅+⋅
=)(terminiertC, (5.12)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.252
5.2 Spezielle Codeklassen
Punktierte Faltungscodes:Es werden P Codeblöcke (P heißt Punktierungslänge) zusammengefasst, wovon l Codebits gemäß einem Punktierungsschema (Punktierungsmatrix P) gestrichen werden. Dann ist die Coderate gegeben durch:
Es muss gelten: RC,punktiert < 1 ⇒ l < P ⋅ (n − k). lnP
kPR−⋅
⋅=punktiertC,
In der Regel werden sie bei Informationsblöcken der Länge k = 1 eingesetzt.Sie sind nur geringfügig weniger leistungsfähig als nicht punktierte Faltungscodes bei gleicher Coderate und k > 1. Der Decodierungsaufwand ändert sich gegenüber den nicht punktierten Faltungscodes kaum. Das Umschalten ist ohne großen Mehraufwand möglich.Von großer praktischer Bedeutung sind insbesondere die RCPC-Codes (rate compatible punctured convolutional codes). Deren Codefamilien sind derart aus einem Muttercode (unpunktierter Faltungscode) abgeleitet, dass die
höherratigen Codes in den niederratigen enthalten sind.
(5.13)
(5.14)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.253
5.2 Spezielle Codeklassen
Beispiel:Es ist l = 1.
⎟⎠⎞⎜
⎝⎛= 11
01P
Das Codebeispiel lautet:u = (1,1,0,1,0,0,...)a = (11,01,01,00,10,11,...) apunkt = (11,0x,01,0x,10,1x,...).
‚x‘ markiert die Stellen, die gelöscht wurden:apunkt = (11,0,01,0,10,1,...).
32
12212
punktiertC, =−⋅
⋅=RCoderate:
Es handelt sich hier NICHT um eineMatrizenmultiplikation!
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.254
5.3 Darstellung von Faltungscodes5 Faltungscodes
Neben der Darstellung über die Schieberegisterschaltung oder über die Generatorpolynome und die Polynom-Multiplikation als Faltung sind die folgenden drei Darstellungsweisen geläufig:– Codebaum– Zustandsdiagramm– Netzdiagramm (Trellisdiagramm)
Codebaum:Der Code wird als Baum aufgespannt, wobei die Knoten den möglichen Gedächtniszuständen entsprechen. Von jedem Knoten gehen 2k Zweige ab, an denen die Informations- und entsprechenden Codebits angetragen sind.Der Nachteil dieser Darstellungsweise ist, dass mit jedem Codierschritt die Anzahl der Knoten exponentiell wächst.Die Anzahl möglicher Pfade ist nämlich: ( ) BlockBlock 22Pfade
NkNkN ⋅==mit NBlock gleich der Anzahl der verarbeiteten Blöcke und somit Tiefe des
Baumes.
(5.15)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.255
5.3 Darstellung von Faltungscodes
Beispiel: Codebaum für den (2,1,2)-Faltungscodierer (s. S. 245).Ein Pfad entspricht einer Informations- bzw. Codesequenz. Hier ist markiert: u = (1 1 0 1 ...), a = (11 01 01 00 ...).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.256
5.3 Darstellung von Faltungscodes
Zustandsdiagramm:Hierbei handelt es sich (im Gegensatz zu dem Codebaum) um eine wiederholungsfreie Beschreibung des Faltungscodes. Die zeitlicheInformation fehlt beim Zustandsdiagramm.Der Ausgangsblock ist dabei abhängig von dem Eingangsblock und dem Gedächtnisinhalt, während der neue Gedächtnisinhalt vom Eingangsblock und dem altem Gedächtnisinhalt abhängt.Hierbei ist die minimale Anzahl von Codierschritten ablesbar, um vom Zustand A zum Zustand B zu gelangen. Die Anzahl von Zuständen ist dabei:
( ) mkmkN ⋅== 22ZustandAn jedem Zustand existieren 2k Übergänge, so dass es insgesamt
NZustand · 2k = 2k·m · 2k = 2k·(m+1)
Übergänge gibt. Bei großen Parameterwerten kann diese Darstellung auchwieder unübersichtlich werden.
(5.17)
(5.16)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.257
5.3 Darstellung von Faltungscodes
Beispiel: (2,1,2)-Faltungscodierer(s. S. 245).
Die Parameter sind:n = 2, k = 1, m = 2,RC = 1/2.
Die verwendeten Notationen sind:
Gedächtnis-inhalt =Zustand
= ur−1 ur−2
Eingangsbits (Ausgangsbits)= ur (ar,1 ar,2)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.258
5.3 Darstellung von Faltungscodes
Beispiel: (3,2,2)-Faltungscodierer(s. S. 246).
Die Parameter sind:n = 3, k = 2, m = 2,RC = 2/3.
Dieses Beispiel zeigt dieProblematik bei ungünstigenParameterwerten. Zwar sind allePfeile angetragen, aber auf die Information über die Eingangs- undAusgangsbits wurde verzichtet.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.259
5.3 Darstellung von Faltungscodes
Netzdiagramm − Trellisdiagramm:Es entspricht einem Zustandsdiagrammmit zeitlicher Komponente und stelltdie Grundlage für die Decodierung dar.Eine Empfangssequenz kann nämlichblockweise mit allen möglichenPfaden verglichen werden und sodie wahrscheinlichste Codesequenzzu einem Empfangswort bestimmtwerden.
Beispiel:Trellis-Segment mit allen möglichenÜbergängen für den(2,1,2)-Faltungscodierer (s. S. 245).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.260
5.3 Darstellung von Faltungscodes
Beispiel:Trellis-Diagramm für den (2,1,2)-Faltungscodierer (s. S. 245) mit einem Codierungsbeispiel für die Terminierung.Das terminierte Codewort lautet: a = (11,01,01,00,10,11,00,00).
Terminierung
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.261
5.4 Eigenschaften von Faltungscodes5 Faltungscodes
Linearität:Die Faltung ist eine lineare Operation. Somit ist der Faltungscode linear.
⎭⎬⎫
⎩⎨⎧
≠=⋅= ∑∞
=0Hf 0)(,)(|))()((min
i
ii xuxuxuxxuwd G
Minimale und freie Distanz:Entsprechend der Beurteilung von Blockcodes ist die minimale Distanz für Faltungscodes ungeeignet, weil Codewörter von Faltungscodes keine definierte Länge besitzen. Stattdessen wird eine sogenannte freie Distanz dfdefiniert. Sie soll die minimale Hamming-Distanz zwischen beliebigen Codefolgen bei unterschiedlichen Informationsfolgen darstellen:
df = min {dH(a1,a2)| u1 ≠ u2}Weil der Faltungscode ein linearer Code ist, reicht die Distanz zur Nullfolge für die Berechnung aus. Damit entspricht df dem minimalen Gewicht aller möglichen Codefolgen:
(5.18a)
(5.18b)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.262
5.4 Eigenschaften von Faltungscodes
Fundamentalweg, Distanzfunktion und Distanzprofil:Ein Pfad, der den Nullzustand verlässt und wieder auf den Nullzustand zurückkehrt, ohne diesen zwischenzeitlich zu berühren, heißt Fundamentalweg. Dabei existiert mindestens ein Pfad, der eine Codesequenz mit minimalem Gewicht bildet.Die Pfade können über das Trellis- oder das Zustandsdiagramm ermittelt werden. Für letzteres bietet sich das Auftrennen am Nullzustand an.Beispiel (s. nächste Seite): der kürzeste Pfad von 00 nach 00 ist:
00 → 10 → 01 → 00 ⇒ wH = 5.(11) (10) (11)
Zwei Pfade können für wH = 6 gefunden werden:
00 → 10 → 11 → 01 → 00 ⇒ wH = 6;
00 → 10 → 01 → 10 → 01 → 00 ⇒ wH = 6.
(11) (01) (01) (11)
(11) (10) (00) (10) (11)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.263
5.4 Eigenschaften von Faltungscodes
Am Nullzustand aufgetrenntes Zustandsdiagrammfür den (2,1,2)-Faltungscodierer (s. S. 245):Für das weitere Vorgehen werden zwei Parameter eingeführt.
Die Zustände werden durch den formalen Parameter Zibeschrieben.
Für die Beschreibung der Distanz wird der formale Parameter D eingeführt, dessen Potenz die Anzahl der von Null verschiedenen Stellen angibt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.264
5.4 Eigenschaften von Faltungscodes
Mittels der eingeführten Parameter lässt sich folgendes Gleichungssystem aufstellen: Zb = D2Za + D0Zc; Zc = D1Zb + D1Zd;
Zd = D1Zb + D1Zd; Ze = D2Zc.Die Auflösung des Gleichungssystems liefert die Distanzfunktion:
Mit der Potenzreihenentwicklung
ist das Ergebnis:
DD
ZZDT
a
e21
)(5
−==
1für11
1 432 <+++++=−
xxxxxx
K
K+++++=−
⋅= 987655 16842211)( DDDDD
DDDT
Das Ergebnis zeigt den Pfad mit dem minimalen Gewicht 5, so dass die freie Distanz df = 5 ist. Weiterhin sind die beiden Pfade mit dem Gewicht 6 ablesbar (s. S. 262). Es gibt weitere 4 Pfade mit dem Gewicht 7, 8 Pfade mit
dem Gewicht 8, 16 Pfade mit dem Gewicht 9 usw.
(5.19)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.265
5.4 Eigenschaften von Faltungscodes
Die Mindestdistanz dmin ist von der Anzahl der Codierschritte i abhängig. Betrachtet man dmin als Funktion von i, erhält man das Distanzprofil eines Faltungscodes. Interessant ist dabei die Aussage, wie viele Codierschritte notwendig sind, damit ein Codewort die freie Distanz auf alle Fälle erreicht.
Beispiel: (2,1,2)-Faltungscode (s. S. 245)Nach höchstens i = 6 Schritten ist die freie Distanz erreicht (vgl. Fundamental-weg mit dem geringsten Gewicht, wo nur drei Schritte die freie Distanz bilden; S. 262).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.266
5.4 Eigenschaften von Faltungscodes
Optimaler Faltungscode:Ein Code mit maximaler freier Distanz bei vorgegebener Coderate und Gedächtnislänge ist ein optimaler Code.
m df g1(x) g2(x) g3(x)2 5 1 + x + x2 1 + x2
3 6 1 + x + x3 1 + x + x2 + x3
4 7 1 + x3 + x4 1 + x + x2 + x4
5 8 1 + x2 + x4 + x5 1 + x + x2 + x3 + x5
6 10 1 + x2 + x3 + x5 + x6 1 + x + x2 + x3 + x6
2 8 1 + x + x2 1 + x2 1 + x + x2
3 10 1 + x + x3 1 + x + x2 + x3 1 + x2 + x3
4 12 1 + x2 + x4 1 + x + x3 + x4 1 + x + x2 + x3 + x4
5 13 1 + x2 + x4 + x5 1 + x + x2 + x3 + x5 1 + x3 + x4 + x5
6 15 1 + x2 + x3 + x5 + x6 1 + x + x4 + x6 1 + x + x2 + x3 + x4 + x6
Tabelle optimaler Faltungscodes:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.267
5.4 Eigenschaften von Faltungscodes
Katastrophaler Codierer:Wenn eine endliche Anzahl an Übertragungsfehlern eine unendliche Anzahl an Decodierfehlern zur Folge hat, spricht man von katastrophalerFehlerfortpflanzung. Dies passiert, wenn sich zwei Ausgangsfolgen eines Coders nur in wenigen Bits unterscheiden, obwohl die Eingangsfolgen ganz unterschiedlich sind. So können wenige Übertragungsfehler in diesen Stellen zu einer Verfälschung des einen Codeworts in das andere führen.
Für den Fall k = 1 lässt sich ein katastrophaler Codierer vermeiden, wenn die Generatorpolynome keinen gemeinsamen Teiler besitzen (vgl. Beispiel):
ggT(g1(x), g2(x), ... , gn(x)) = 1.
Dies ist immer dann möglich, wenn mindestens zwei Gedächtniszustände existieren, die bei jeweils gleichbleibender Information nicht verlassen werden und dabei identische Codefolgen erzeugen. Dies ist gleichzeitig ein Kriterium zum Erkennen eines katastrophalen Codierers und leicht aus einem Zustandsdiagramm ablesbar (s. Beispiel nächste Seite).
(5.20)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.268
5.4 Eigenschaften von Faltungscodes
Beispiel:
Aus den Generatorpolynomen lässt sich dieselbeAussage ableiten, da g1(x) ein Teiler von g2(x) ist:
Die beiden Zustände (00)und (11) werden bei gleich-bleibender Information nicht verlassen und erzeugen die gleichen Codesequenzen. Damit handelt es sich um einen katastrophalen Codierer.
g1(x) = 1 + x;g2(x) = 1 + x2 = (1 + x) ⋅ (1 + x).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.269
5.5 Decodierung mit dem Viterbi-Algorithmus5 Faltungscodes
Die Viterbi-Decodierung ist ein aufwandsgünstiges Verfahren, mit dem technisch Gedächtnistiefen bis m ≈ 10 realisierbar sind. Sie bietet eine Maximum-Likelihood-Decodierung und ist somit optimal.Für die Herleitung des Verfahrens soll eine terminierte Codefolge a der Länge N und eine Empfangsfolge r bekannt sein. Das Ziel des Decodierers besteht dann darin, eine Codefolge zu schätzen, die mit der Sendefolge amöglichst übereinstimmt, d. h. die Likelihood-Funktion p(r|a) maximiert:
a
Alternativ wird nach dem Maximum der Log-Likelihood-Funktion log p(r|a) gesucht, so dass für den gedächtnislosen Kanal die Übergangswahr-scheinlichkeit p(r|a) durch eine Summe der Übergangswahrscheinlichkeiten der einzelnen Symbole p(ri|ai) ersetzt werden kann:
∑−
==
1
0)|(log)|(log
N
iii arpp ar
∏−
==
1
0)|()|(
N
iii arpp ar (5.21)
(5.22)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.270
5.5 Decodierung mit dem Viterbi-Algorithmus
Damit entspricht die Maximum-Likelihood-Detektion der Maximierung einer Metrik mit der allgemeinen Form:
( ) ∑∑
∑
−
=
−
=
−
=
=+⋅=
+⋅=
1
0
1
0
1
0
)|()|(log
)|(log)|(
N
iii
N
iiii
N
iii
ararp
arpM
μβα
βαar
mit dem Metrik-Inkrement .)|( ii arμ
⎩⎨⎧
−=+=−=
⎩⎨⎧
≠=−=
1für1für1
fürfür1)|(
errerr
errerr
iiii
iiii
ii
raprap
rapraparp
{ } { }1,1, 21 +−=∈ xxai { } { }1,1, 21 +−=∈ yyriBeispiel: Mit undgilt für den symmetrischen Binärkanal:
(5.23)
(5.24)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.271
5.5 Decodierung mit dem Viterbi-Algorithmus
Wählt man für die freien Parameter α und βi die Werte
so lautet das Metrik-Inkrement einfach:
errerr
err log1und1log/2 pp
pi αβα −−=
−=
iiiiii
ii rararaar =
⎭⎬⎫
⎩⎨⎧
−=−+=+= 1für1
1für1)|(μ
ist äquivalent zu einer Minimierung der Hamming-Distanz oder einer Maximierung der Anzahl der Übereinstimmungen.Dies ist aber nur eine mögliche Vorgehensweise. Andere Definitionen von Metren sind möglich.
iiii raar =)|(μ
Die Maximierung der Viterbi-Metrik
(5.25a/b)
(5.26b)
(5.26a)
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.272
5.5 Decodierung mit dem Viterbi-Algorithmus
Viterbi-Algorithmus:Die Decodierung geschieht mit Hilfe des Trellis-Diagramms. Ziel ist es, alle möglichen Codefolgen mit der Empfangsfolge zu vergleichen. Bei diesem Algorithmus geschieht dies über die Berechnung der Viterbi-Metrik.
Vorgehen: Am Anfangszustand wird die Metrik auf 0 gesetzt. Dann wird in jedem Schritt jedem der über die Pfadstücke erreichten Zustände eine Metrik z zugeordnet, die sich aus der Addition der Metrik des vorhergehenden Zustands und einem Metrik-Inkrement berechnet.Von allen 2k ankommenden Pfaden an einem Zustand wird nur der Pfad beibehalten, der die größte Metrik aufweist. Alle anderen 2k − 1 Pfade werden verworfen, da sie nie eine größere Metrik erzielen können. Sind mehrere Pfade mit gleicher Metrik vorhanden, muss eine Zufallsauswahl erfolgen. Das Decodierergebnis am Ende ist der Pfad mit der größten Metrik.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.273
5.5 Decodierung mit dem Viterbi-Algorithmus
Während der Decodierung muss eine bestimmte Anzahl an Pfaden gespeichert werden. Da die Anzahl der zu speichernden Pfade sehr großwerden kann (bevor nur einer übrig bleibt; siehe folgendes Beispiel), beschränkt man die Länge der zu speichernden Pfade auf 5 ⋅ k ⋅ m. Diese Beschränkung stellt einen Erfahrungswert dar. Der Speicherplatzbedarf ist dabei ungefähr das Produkt aus der Anzahl der Zustände und der Pfadlänge (2k ⋅ m ⋅ 5 ⋅ k ⋅ m bit).
Die Regel für das Metrik-Inkrement ist im Grunde frei wählbar. Bei der Hard-Decision-Decodierung wird normalerweise Gl. (5.26b) verwendet oder einfach die Anzahl der Übereinstimmungen zwischen der Codesequenz eines Pfadstücks und dem zugehörigen Empfangsblock gewählt. Bei der Soft-Decision-Decodierung kann z. B. der Abstand eines Empfangswerts zu den Codesymbolen gewählt werden, wobei diese Methode zuverlässiger ist als die Hard-Decision-Decodierung (vgl. S. 241). Dabei ist vorteilhaft, dass die Wahrscheinlichkeit für gleiche Metren an einem Zustand geringer ist.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.274
5.5 Decodierung mit dem Viterbi-Algorithmus
Beispiel: (2,1,2)-Faltungscode (s. S. 245)
Die einzelnen Decodierschritte der insgesamt 9 bekannten Sequenzen werden im Folgenden ausführlich dargestellt. In Lila werden die Pfade mit der größten Metrik hervorgehoben.
Der Informationsvektor seiu = (1,1,0,1,0,0,0,1,0,...).
Daraus ergibt sich ein Codefolgevektora = (11,01,01,00,10,11,00,11,10,...).
Bei der Übertragung tritt der Fehlervektorf = (00,10,00,00,01,00,00,00,00,...)
auf, so dass der Empfangsvektor lautet:r = (11,11,01,00,11,11,00,11,10,...).
Der Empfangsvektor soll mit dem Viterbi-Algorithmus decodiert werden. Dabei soll eine Hard-Decision-Decodierung vorgenommen und als Metrik die Summe der Übereinstimmungen verwendet werden.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.275
5.5 Decodierung mit dem Viterbi-Algorithmus
1. Schritt:
Am Anfang ist die Metrik 0 und erhöht sich pro Schritt mit der Anzahl der Übereinstimmungen der Empfangsfolge mit den möglichen Codesequenzen.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.276
5.5 Decodierung mit dem Viterbi-Algorithmus
2. Schritt:
Nach m = 2 Schritten sind alle Zustände erreicht. Mit dem nächsten Schritt wird jeder Zustand über mehr als einen Pfad erreicht (s. nächste Seite).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.277
5.5 Decodierung mit dem Viterbi-Algorithmus
3. Schritt:
Pro ankommendem Pfad gibt es eine Metrik, wobei die obere Metrik zum oberen Pfad und die untere Metrik zum unteren Pfad gehört. Jeweils der
Pfad mit der geringeren Metrik kann gelöscht werden.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.278
5.5 Decodierung mit dem Viterbi-Algorithmus
4. Schritt:
Durch das Löschen der Pfade wird die Darstellung übersichtlicher. In diesem Schritt haben die unteren beiden Zustände jeweils dieselben Metren,
so dass per Zufall jeweils ein Pfad gelöscht wird (vgl. nächste Seite).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.279
5.5 Decodierung mit dem Viterbi-Algorithmus
5. Schritt:
Die bisherigen Pfadauslöschungen führen dazu, dass nur ein einziger Übergang vom 0. Zustand in den 1. Zustand übrig bleibt, d. h. am
wahrscheinlichsten ist. Diese eine Sequenz ist somit schon decodiert. →
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.280
5.5 Decodierung mit dem Viterbi-Algorithmus
6. Schritt:
Praktisch kann die Codefolge (11) bzw. die zugehörige Informationsfolge (1) vom Decodierer ausgegeben werden und die Darstellung um einen
Zustand weiterrücken. In diesem Beispiel wird sie noch beibehalten.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.281
5.5 Decodierung mit dem Viterbi-Algorithmus
7. Schritt:
Aus der maximalen Metrik ist ersichtlich, wie viele Fehler bisher minimal aufgetreten sein müssen (hier jetzt maximal 14 Übereinstimmungen möglich,
12 maximal vorhanden, somit minimal 2 Fehler; vgl. Fehlervektor).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.282
5.5 Decodierung mit dem Viterbi-Algorithmus
8. Schritt:
Im Falle eines terminierten Codes würde die Anzahl der Zustände zum Ende hin wieder geringer werden (Endbereich), bis nach dem letzten Schritt nur
noch der Anfangszustand übrig bleibt (vgl. S. 260).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.283
5.5 Decodierung mit dem Viterbi-Algorithmus
9. Schritt:
Das Ende der bekannten Sequenz ist erreicht. Bis zum 4. Zustand kann das Ergebnis ausgegeben werden, bis zum letzten nur, wenn die Empfangsfolge
zu Ende wäre. Praktisch geht sie aber weiter!
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.284
6 Spezielle CodierungstechnikenCodierungstheorie
Im Laufe der Vorlesung wurden im Bereich der Kanalcodierung Grundlagen und grundlegende Codes vertieft behandelt. In der Praxis sind diese auch weit verbreitet, allerdings oft in Form komplizierter Konstrukte. Dazu zählen vor allem verkettete Codes mit Interleavern, dessen Prinzipien hier kurz vorgestellt werden sollen.
Diese „Grundlagencodes“ sind natürlich nicht die einzigen Codes, die in den letzten 40 Jahren entwickelt wurden. Seit Beginn der 1990er Jahre werden in erster Linie zwei Codes erforscht, die in der Lage sind, mit ihrer Korrekturfähigkeit sehr nahe an die Shannon-Grenze zu kommen (weniger als 1 dB). Das sind zum einen die Turbo-Codes, die praktisch aus Experimenten hergeleitet wurden, und zum anderen die Low-Density-Parity-Check-Codes (LDPC-Codes), die bereits in den 1960ern aufgetaucht sind, wegen ihrer Komplexität für den damaligen technischen Stand aber bis zu Beginn der 1990er nicht weiter beachtet wurden. Das Prinzip dieser beiden Codes soll kurz angerissen werden.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.285
6 Spezielle Codierungstechniken
Verkettung von Codes:Bei der Codeverkettung werden 2 oder mehrere Codes in Reihe geschaltet (s. Abbildung nächste Seite). Die Motivation für diese Konstruktion besteht in der Ausnutzung unterschiedlicher komplementärer Codeeigenschaften,z. B. zur Fehlerkorrektur und Fehlererkennung oder zur Einzel- und Bündelfehlerkorrektur.
Ein klassisches Beispiel besteht darin, dass der innere Code Einzelfehler korrigiert, während der äußere Code Bündelfehler korrigiert. Ein Verfahren dieser Art wird z. B. in europäischen Mobilfunksystemen wie GSM eingesetzt. Durch Verkettung lassen sich sehr leistungsfähige Codes konstruieren. In vielen Anwendungsbeispielen ist der innere Code durch einen Faltungscode für die Einzelfehlerkorrektur und der äußere Code durch einen Reed-Solomon-Code für die Bündelfehlerkorrektur realisiert.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.286
6 Spezielle Codierungstechniken
Prinzip verketteter Codes:
Das Prinzip des Interleavers wird auf den folgenden Seiten beschrieben.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.287
6 Spezielle Codierungstechniken
Interleaving: Auf einem Übertragungskanal können Bündelfehler auftreten, die die Korrekturfähigkeit des verwendeten Kanalcodes übersteigen. Der Interleaver hat die Aufgabe, die zu sendende Codewortreihenfolge umzusortieren, so dass am Empfänger nach dem Deinterleaver aus einem Bündelfehler mehrere Quasi-Einzelfehler werden, die dann auf mehrere Codewörter verteilt sind und korrigiert werden können.Das Beispiel (s. nächste Seite) veranschaulicht das Verfahren als Matrix, in der die Codewörter zeilenweise angeordnet, jedoch spaltenweise übertragen werden. Der in der 4. Spalte aufgetretene Bündelfehler verteilt sich somit als Einzelfehler auf mehrere Codewörter.Der Nachteil des Interleavers besteht darin, dass durch die Zwischenspeicherung der Codewörter eine weitere Zeitverzögerung entsteht, die mit der Größe des Interleavers wächst. Am problematischsten ist das bei zeitkritischen Systemen wie der Sprachübertragung.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.288
6 Spezielle Codierungstechniken
Block-Interleaver:
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.289
6 Spezielle Codierungstechniken
Codierung der Signalisierungsinformation bei GSM (BCCH-Kanal):Der äußere Codierer besteht aus einem (224,184)-Blockcode, an den 4 Tailbits für die terminierte (2,1,4)-Faltungscodierung (innerer Codierer) angehängt werden. Die Tailbits werden vom Faltungscode als Information
interpretiert; deshalb eine Coderate von 1/2. Die 456 Bits werden nach Interleaving in Bursts
zerschnitten und übertragen.
Signalisierungsinformation 184 Bits
Signalisierungsinformation184 Bits
184 Bits 40 Bits 4
• • • 456 Bits • • •
TDMA-Rahmen: 4,6 ms
normale Bursts
• Interleaving• Burst-Bildung
Faltungscode zur Fehlerkorrektur: Rate 1/2
insgesamt: 228 Bits
Blockcode + 4 Tailbits
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.290
6 Spezielle Codierungstechniken
Turbo-Codes:Die erste Veröffentlichung erschien 1993 von den beiden französischen Elektrotechnik-Ingenieuren Claude Berrou und Alain Glavieux. Die ursprüngliche Idee, die zu den Turbo-Codes führte, war die Einsetzung der in der Elektrotechnik geläufigen Rückkopplung von Signalen (z. B. bei Verstärkern). Turbo-Codes zeichnen sich durch ihre Fehlerkorrektureigenschaft aus, die nahe der Shannon-Grenze liegt (ungefähr 0,5 – 0,7 dB).Die Turbo-Codes wurden experimentell und nicht über mathematisch-theoretische Ansätze entwickelt, so dass ihre Leistungsfähigkeit jahrelang kritisch überprüft wurde, bevor sie für den Einsatz in neueren Systemen Berücksichtigung fanden. Heute sind sie z. B. Bestandteil von UMTS bei der Datenübertragung. Für die Sprachübertragung sind Turbo-Codes aber aufgrund der Verzögerungszeit nicht anwendbar. Dort wird auf Faltungscodes zurückgegriffen. In der Raumfahrtkommunikation dagegen
werden sie neuerdings eingesetzt.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.291
6 Spezielle Codierungstechniken
Prinzip der Codierung bei Turbo-Codes:
Die Informationsbits werden dreifach über den Kanal übertragen: einmal ohne Fehlerschutz (i) und zweimal mit dem Fehlerschutz eines Faltungscodes (c1 und c2), wobei einer der Codierblöcke eine durch einen Interleaver zerwürfelte Informationssequenz als Eingang erhält. Der Multiplexer fügt dann die drei Signale zu einem zusammen.
Faltungscode 1
Faltungscode 2Interleaver
Multiplexer
Informationssymbole
Ausgangssignali
c1
c2
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.292
6 Spezielle Codierungstechniken
Prinzip der Decodierung bei Turbo-Codes:
Das Empfangssignal, bestehend aus den drei gesendeten Anteilen, wird aufgespalten und an die Decodierblöcke weitergeleitet, wobei sie ihre zu decodierenden Signale als Soft-Decision-Information sowie eine Kopie des uncodierten Signals erhalten. Daraus werden Vorschläge für die richtig decodierten Bits abgeleitet, die über die Signale e1 und e2 an den jeweils anderen Block weitergegeben werden. Erst wenn beide Blöcke mit ihren Vorschlägen übereinstimmen (iteratives Verfahren), ist die Decodierung am Ende angelangt. Die Anzahl der Iterationsschritte liegt erfahrungsgemäß
zwischen 4 und 10.
Decoder 1 Decoder 2Deinterleaver
EmpfangssignalDeinterleaver
Interleaver
s, c1, c2
s, c2
s, c1
e2
e1
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.293
6 Spezielle Codierungstechniken
Low-Densitiy-Parity-Check-Codes (LDPC-Codes):1960 veröffentlichte Robert G. Gallager im Rahmen seiner Doktorarbeit die Idee der LDPC-Codes. Aufgrund ihrer Komplexität (u. a. war die iterative Decodierung damals nur mit Großrechnern möglich) wurden sie für praktische Anwendungen lange Zeit nicht beachtet. Die kommerzielle Implementierung von entsprechend hoch integrierten Coderschaltungen für leistungsfähige Codes ist erst seit wenigen Jahren technologisch möglich.1995 wurden die LDPC-Codes von MacKay und Neal wiederentdeckt. Bei einer Coderate von 0,5 und einer Blocklänge von 10.000.000 nähert sich der Code bis auf 0,04 dB an die Shannon-Grenze an. Dieses eher akademisch zu sehende Beispiel zeigt zumindest das Potential der LDPC-Codes. Das Auffinden von geeigneten Konstruktionsmethoden für leistungsfähige Codes (speziell kurzer Blocklängen) ist daher zurzeit ein großes Forschungsthema. Dennoch werden diese Codes bereits praktisch eingebunden. Im ETSI-Standard für DVB-S2 wird zum Beispiel eine Verkettung der LDPC-Codes
mit einem BCH-Code zur Kanalcodierung verwendet.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.294
6 Spezielle Codierungstechniken
Datenrate und Shannon-Grenze beim digitalen Satellitenfernsehen: Varianten von DVB-S2
0,00
0,50
1,00
1,50
2,00
2,50
3,00
3,50
4,00
4,50
-3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
R u[bi
t/s] p
er u
nit R
s
QPSK
8PSK
16APSK
32APSK
DVB-S
modulation constrained Shannon limit
18 dB
4.5
0.5
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.295
6 Spezielle Codierungstechniken
Definition der LDPC-Codes über einem beliebigen Alphabet A:Ein LDPC-Code ist ein linearer Blockcode der Blocklänge n, dessen Prüfmatrix H die folgenden Eigenschaften besitzt:1. Die Prüfmatrix H ist dünnbesetzt, d. h. ein großer Teil der Elemente hml
hat den Wert 0.2. Jede Spalte l der Matrix H besitzt eine kleine Anzahl von Nl Symbolen
aus A mit Nl > 1.3. Jede Zeile m der Matrix H besitzt eine kleine Anzahl von Nm Symbolen
aus A mit Nm > 1.Von besonderem praktischen Interesse sind LDPC-Codes über A = GFGF(2b).Da LDPC-Codes zu der Klasse linearer Blockcodes gehören, besitzen sie auch alle ihre Eigenschaften. Dazu zählt die Darstellung über eine Generatormatrix, die Codierung über eine Matrix-Vektor-Multiplikation, die Umwandlungsmöglichkeit von nicht-systematischen in systematische LDPC-Codes, die Bestimmung der Minimaldistanz über das minimale
Hamming-Gewicht usw. (s. Kapitel 3).
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.296
6 Spezielle Codierungstechniken
Die Abbildung zeigt die dünnbesetzte (900×1200)-Prüfmatrix eines binären LDPC-Codes mit 3600 Einsen. Die (300×1200)-Generatormatrix des äquivalenten systematischen LDPC-Codes besitzt dagegen 135.000 Einsen!
Prüfmatrix;3600 Einsen
Generatormatrix;135.000 Einsen
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.297
6 Spezielle Codierungstechniken
Obwohl ein Codewort über die Beziehung c = u⋅G berechnet werden kann, wird dies praktisch nicht gern eingesetzt. Im Gegensatz zur Prüfmatrix ist die Generatormatrix bei LDPC-Codes im Allgemeinen nicht dünnbesetzt, was die Codierung nach diesem Verfahren aufwendig macht, da LDPC-Codes zurzeit erst für große Blocklängen ihre Stärken zeigen. Für die Implementierung werden daher meist spezielle LDPC-Codes (z. B. zyklische Codes mit linearem Codierungsaufwand) verwendet.Was für die Codierung schon nicht einfach ist, ist es erst recht nicht für die Decodierung. Eine Maximum-Likelihood-Decodierung ist aufgrund ihrer exponentiellen Aufwandsabhängigkeit von der Blocklänge n nicht umsetzbar. Eine Reihe von suboptimalen Verfahren existiert bereits, wobei die iterativen Verfahren die beste Performance bieten. Ihrer Implementierung sind aufgrund der Komplexität aber Grenzen gesetzt.Zusammenfassend stellen die LDPC-Codes die größte Konkurrenz zu den Turbo-Codes dar. Allerdings zeigen sie ebenfalls die Probleme bezüglich
der Zeitverzögerung aufgrund ihrer Komplexität.
Prof. Dr.-Ing. Thomas Kürner · Institut für Nachrichtentechnik · Technische Universität Braunschweig Codierungstheorie WS 2008/2009
S.298
... also bleibt nur noch zu sagen:Ende der Vorlesung...
Viel Erfolg bei der Klausur!