7.2 Kanalkodierung

Kodierung:

Die Kanalkodierung ist eine Kodierung zur Erkennung und / oder Korrektur von Übertragungsfehlern durch einen gestörten Kanal.


PIC
Abbildung 7.2.1: Kommunikationsstrecke mit Kanalkodierung

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.

Strategien:

Es gibt 2 sich ergänzende Strategien:

  1. Bei der Forward Error Correction (FEC) erfolgt eine Fehlerkorrektur im Empfänger.

    Echtzeit, z.B. UDP für Voice over IP

  2. Beim Automatic Repeat Request (ARQ) erfolgt auf eine Fehlererkennung im Empfänger eine Wiederholungsanforderung an den Sender.

    Datenübertragung, z.B. TCP beim FTP

Qualität:

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.

Kosten:

Kompromiss zwischen: Komplexität (Kosten) — Datendurchsatz — Fehlererkennungs- und -korrekturvermögen.

Klassen:

Bei binären Kodes ist das Rechnen in so genannten Restklassenkörpern erforderlich

Beispiel:

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






Parity:

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

       ⊕     ⊕     ⊕
sp = s1    s2   ...    sn
(7.2.1)

Kontrolle beim Empfänger mit

           e ⊕   e ⊕  ...⊕   e ⊕  s   =
  ⊕     ⊕   1⊕    2⊕     ⊕    n⊕   p
e1   s1    e2    s2   ...   en    sn  =   0            (7.2.2)
◟--◝◜-◞    ◟--◝◜--◞         ◟---◝◜--◞
   0          0                 0

Eigenschaften:

Frage:

Wie kann das Verfahren erweitert werden, um 1 Bit Übertragunsfehler korrigieren zu können? Geht das überhaupt?

Block:

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 .


PIC
  • 1-Bit-Fehler im Block lokalisierbar
  • Prüfbit P ist Parity für Datenblock
  • Prüfbitfehler sind feststellbar

Abbildung 7.2.2: Prinzipieller Aufbau eines Parity-Blockkodes

Eigenschaften:

Sicherheit:

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.

Minimum:

Die Hammingdistanz h des Kodes ist das Minimum der Abstände dmin zwischen zwei beliebigen Kodewörtern eines Kodes.

Beispiel 7.2.1
(ISBN-13)

  1. Berechnen Sie für den ISBN (International Standard Book Number) Prüfziffernkode11 die Prüfziffer für den ISBN-13 Kanalkodierung12
          (     (                )       )
              1∑2      (i+1)mod2
x13 =  10 −      xi ⋅ 3        mod10   mod10
              i=1
    (7.2.3)

    für die 13-stellige ISBN-Nummer13 9◟7◝8◜◞1 ◟3◝◜◞2 8◟66◝8◜0◞3 1◟9◝2◜◞4 ◟?◝◜◞5

    Der Kode erkennt einen Fehler an einer beliebigen Stelle (Hammingdistanz h = 2) und zudem noch Zahlendreher an zwei benachbarten Stellen .

  2. Berechnen Sie dann für den 13-stelligen Code die Prüfziffer nach demgleichen Verfahren!

Lösung:

Die Lösung wird in der Vorlesung erarbeitet. Zahlenwerte sind:

  1. Prüfziffer für ISBN 978-3-86680-192-?
    x13  =   9-
  2. Prüfziffer für ISBN 978-3-86680-192-9
    x13  =   0-
Praxis:

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:

  1. Die (n+1) Bits des Datenwortes W(x) sind die Koeffizienten des Polynoms PW(x) des Grades n.
  2. Durch Multiplikation PW(x) = PW(x) xr wird W(x) um r Nullen ergänzt.
  3. Wird PW(x) durch das Generatorpolynom PG(X) vom Grad r mod-2-dividiert ergibt sich das Restpolynoms PR(x).
  4. Als Kodewort wird S(x) = W(x) R(x) über den Übertragungskanal zum Empfänger geschickt.
  5. Der Empfänger mod-2-dividiert diese Daten durch das Generatorpolynom und erhält den Restfehler PS(x) = 0 bei fehlerfreier Übertragung.

Beispiel 7.2.2
(CRC)

Berechnen Sie die folgenden beiden Polynomdivisionen:

  1. Polynomdivision14 im Sender liefert das Sendewort
    R (x)  =  [W ′(x)∕G (x)]mod2

       =  [101000110000 ∕11001 ]mod2                (7.2.4)
  2. Polynomdivision im Empfänger liefert den Übertragunsfehler
      ′            ′
S (x)  =   [(W  (x) − R (x))∕G (x )]mod2
       =   [101000111010  ∕11001 ]mod2                 (7.2.5)

Lösung:

Die Lösung wird in der Vorlesung erarbeitet. Zahlenwerte sind:

  1. Polynomdivision:

    101000110000/11001=11001010
    1010= Res t
  2. Polynomdivision:

    101000111010/11001=11001010
    00= Res t
Kodeklassen:

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 = (∑        )
   9i=1 i⋅ximod11 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).