Block-Code-Beispiel: Zyklische Codes
Eigenschaft: wenn c
0c
1… c
n-2c
n-1ein gültiges Code-Wort ist, dann ist auch c
n-1c
0c
1… c
n-2eines
Realisierung analog zu den CRC-Fehlererkennungs-Codes (vgl.
Vorlesung Grundlagen der Rechnernetze) möglich
Theoretische Grundlage ist die Polynom-Division in der Modulo-2- Arithmetik:
Zahlenraum: {0,1}
XOR ist die Addition: 0+0=0, 0+1=1, 1+0=1, 1+1=0
AND ist die Multiplikation: 0¢0=0, 0¢1=0, 1¢0=0, 1¢1=1
Polynome: P(X) = A
k¢ X
k+ A
k-1¢ X
k-1+ ... + A
1¢ X
1+ A
0¢ X
0Die Idee von CRC-Codes
An der Tafel
Ein (7,4)-Code-Beispiel
William Stallings, Wireless Communications & Networks, 2nd edition, Prentice Hall, 2005
Generator-Polynom: P(X) = X
3+ X
2+ 1
Bemerkung:
• Es ist 7 = 2^3-1, also nach voriger Überlegung sind alle 1-Bit-Fehler korrigierbar
• Beachte auch d
minder Codewörter ist 3, also
in der Tat alle 1-Bit-Fehler korrigierbar
Wie implementiert man eigentlich die Polynom-Division?
Beispiel: Block-Syndrom Generator für X
n-k+ A
n-k-1x
n-k-1+ ... + A
2X
2+ A
1X + 1
Mittels Linear-Feedback-Shift-Register (LFSR)
Konkrete CRC-Beispiele
Bose-Chaudhuri-Hocquenhem (BCH)
Hier keine genauen Details wie diese konstruiert werden
Nur generell: es können für gegebene m und t geeignete binäre (n,k)-BCH-Codes mit folgenden Parametern konstruiert werden
Blocklänge: n = 2m– 1
Anzahl Check-Bits: n – k <= m * t
Minimale Distanz der Codewörter: dmin >= 2t + 1
Code kann dann alle Kombinationen von t oder weniger fehlerhaften Bits korigieren
Beispiele von BCH-Generator-Polynomen
Reed-Solomon-Codes (RS) sind eine BCH-Subklasse (hier sei nur der Code-Name genannt; keine weiteren Details)
William Stallings, Wireless Communications & Networks, 2nd edition, Prentice Hall, 2005