Die Kanalkodierung ist eine Kodierung zur Erkennung und / oder Korrektur von Übertragungsfehlern durch einen gestörten Kanal.
→ Im englischen heisst es besser Error Control Coding, was die Beherrschung der Fehler ausdrückt — ein Vermeiden von Übertragungsfehlern ist nicht möglich.
→ Erhöhung der Redundanz, d.h. Übertragung zusätzlicher Daten, die keine Nutzdaten enthalten.
Es gibt 2 sich ergänzende Strategien:
Das Qualitätsmaß einer digitalen Übertragung ist die (gemessene) Bitfehlerrate (BER, Bit Error Rate) oder die (theoretische) Bitfehlerwahrscheinlichkeit.
→ Der Kodierungsgewinn durch die Kanalkodierung ermöglicht theoretisch eine beliebig kleine Bitfehlerrate.
Kompromiss zwischen: Komplexität (Kosten) — Datendurchsatz — Fehlererkennungs- und -korrekturvermögen.
Bei binären Kodes ist das Rechnen in so genannten Restklassenkörpern erforderlich
Für p = 2 erhalten wir G = {0, 1} mit den Operationen XOR für die Addition und AND für die Multiplikation:9
| XOR: ⊕
| AND: ⊗
| ||
| 0 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 1 |
Bei der Paritätsprüfung (Parity Check) werden Paritätsbits zusätzlich eingefügt, die die Anzahl der Einsen (oder Nullen) ergänzen, zur Erkennung von 1-Bit-Fehlern
| (7.2.1) |
Kontrolle beim Empfänger mit
Eigenschaften:
Wie kann das Verfahren erweitert werden, um 1 Bit Übertragunsfehler korrigieren zu können? Geht das überhaupt?
Zur Erkennung und Korrektur von 1-Bit-Fehlern wird ein Datenblock aus n Zeilen mit je m Datenbits je Zeile mit einem Prüfbit mit einer zusätzlichen Prüfzeile für die m Spalten gesichert, wie es in Abb. 7.2.2 dargestellt ist .
Eigenschaften:
Ein Maß für die Störsicherheit eines Kodes ist die Hammingdistanz des Kodes.
Mit der (Hamming-) Distanz (oder dem Abstand) d = d(x,y) wird die Anzahl unterschiedlicher Zeichen der Kodewörter x und y bezeichnet.
Die Hammingdistanz h des Kodes ist das Minimum der Abstände dmin zwischen zwei beliebigen Kodewörtern eines Kodes.
| (7.2.3) |
für die 13-stellige ISBN-Nummer13 1 −2 −3 −4 −5
→ Der Kode erkennt einen Fehler an einer beliebigen Stelle (Hammingdistanz h = 2) und zudem noch Zahlendreher an zwei benachbarten Stellen .
Die Lösung wird in der Vorlesung erarbeitet. Zahlenwerte sind:
Bei den Cyclic-Redundancy-Check-Kodes (CRC) werden die (n+1) Bits ai der Nachricht als Koeffizienten aixi eines Polynoms n-ten Grades aufgefasst. Die Modulo-2-Division durch ein Generatorpolynom vom Grad r ergibt die Prüfbits.
CRC-Algorithmus:
Berechnen Sie die folgenden beiden Polynomdivisionen:
Die Lösung wird in der Vorlesung erarbeitet. Zahlenwerte sind:
1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | / | 1 | 1 | 0 | 0 | 1 | = | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | |
1 | 0 | 1 | 0 | = | R | e | s | t | |||||||||||||||||||
1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | / | 1 | 1 | 0 | 0 | 1 | = | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | |
0 | 0 | = | R | e | s | t | |||||||||||||||||||||
→ Binäry Kodes Decimal (BCD-Kode) mit 4 binären Zeichen für jede der 10 Dezimalziffern.
→ 2-aus-5-Kode: 0 → 00011, 1 → 00101, …15
→ 1-aus-10-Kode: 0 → 0000000001, 1 → 0000000010, …16
→ Vierstelliger Gray-Kode für die Ziffern 0… 9, z.B. wird aus der 6 (1111) die 5 (1110), die 7 (1101) oder ein Fehler (0111 und 1011).
→ Cyclic Reduncy Check Kodes (CRC, auch Frame Check Sequence, FCS), die mit einem (genormten) Generatorpolynom aus einem primitiven Polynom P(x) erzeugt werden: G(x) = (x + 1) ⋅ P(x). Zwei genormte Generatorpolynome sind z.B.17
Kode | Generatorpolynom G(X) | Anwendung |
CRC-4 | x4 + x1 + x0 = x4 + x + 1 | ISDN |
CRC-8 | (x + 1)(x7 + x6 + x5 + x4 + x3 + x2 + 1) | ATM |
= x8 + x2 + x + 1 | ||
8Vektorraum, Galois-Körper mit Methoden der linearen Algebra
9Da 1⊕ 1 = 0 ist folgt −1 = 1. Es gibt also keine Vorzeichenfehler!
10Ausnahme: Redundanz in den Kodeworten, z.B. ungültige Kodeworte beim BCD-Kode.
11Beim EAN-13 (European Article Number) Produktkode wird dieselbe Kanalkodierung verwendet!
12Prüfziffer für ISBN-10 ist x10 = mod11 mit X = 10 für Rest 10.
13(1) Präfix bei ISBN-13, (2) Gruppe, z.B.: 3 deutschsprachig, (3) Verlag, (4) Titel, (5) Prüfziffer
14Mit Hilfe der Modulo-2-Subtraktion. Die Polynomdivision wird in der Praxis durch ein IIR-Filter als rückgekoppeltes Schiebregister realisiert.
15Es gibt „5-über-2“ = 5! / (5-2)! 2! = 10 mögliche Kodewörter.
16Es gibt „10-über-1“ = 10! / (10-1)! 1! = 10 mögliche Kodewörter.
17Bei CRC-4 sind 4 aufeinanderfolgende Bündelfehler detektierbar, bei CRC-8 entsprechend 8 Bündelfehler (Fehler in aufeinander folgenden Bits).