fehlererkennende codes l.
Skip this Video
Loading SlideShow in 5 Seconds..
Fehlererkennende Codes PowerPoint Presentation
Download Presentation
Fehlererkennende Codes

play fullscreen
1 / 25
Download Presentation

Fehlererkennende Codes - PowerPoint PPT Presentation

lyris
273 Views
Download Presentation

Fehlererkennende Codes

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Fehlererkennende Codes Paritätsprüfung • Paritätsbit / Prüfbits • Ergänzt Bitsumme zu gerader (even) oder ungerader (odd) Anzahl unterschiedliche Paritätsprotokolle • Ungerade Anzahl von Bitfehlern kann erkannt, aber nicht behoben werden • Weiterentwicklungen: Hamming-Code, ECC Beispiel (even) 10011101| P = 1 (5 Einsen) 10100110 | P = 0 (4 Einsen) 1 0

  2. Fehlererkennende Codes Hamming-Distanz • Richard W. Hamming (1915 – 1998) • Hamming-Distanz zweier binärer Blöcke gleicher Länge ergibt sich aus Anzahl der Nicht-Übereinstimmungen im bitweisen Vergleich( Einsen bei XOR-Operation) • Hamming-Distanz eines Codes aus Wörtern gleicher Länge: Minimum der paarweisen Hamming-Distanzen

  3. Fehlererkennende Codes Hamming-Distanz • kleine Hamming-Distanz  Fehlerkorrektur schwieriger • Allgemein: um r Bitfehler korrigieren zu können, muss für die Hamming-Distanz h eines Codesgelten: h ≤ 2r + 1 Beispielh = 3, c = {010, 101} alle ungültigen Code- wörter können erkannt und korrigiert werden {000, 110, 011} für 010

  4. Fehlererkennende Codes Hamming-Code • Fehlerkorrigierender Code mit Mindest-Hammingabstand von 3 • (7,4) ist einfachster Hamming-Code: 4 Bit Nutzdaten, 3 Prüfbits • Hamming-Codes sind perfekt, d.h. jedes Wort ist entweder Codewort oder hat Hamming-Abstand von 1 zu gültigen Codewort • Bits werden durchnummeriert, Positionen mit Zweierpotenz werden Prüfbits • Paritäten für Reihen von Einzelbits bestimmen( jedes Bit kann in mehrere Prüfbits eingehen) • Erstellung der Kontrollmatrix, Bestimmung der Prüfbits

  5. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  6. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  7. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  8. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  9. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  10. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  11. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1 usw.

  12. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  13. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1  gerade Anzahl

  14. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  15. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1

  16. Fehlererkennende Codes Hamming-Code – Beispiel • (15,11)-Code: 00 01 01 11 00 1 • P0 = 1, P1 = 1, P2 = 0, P3 = 1

  17. Fehlererkennende Codes Hamming-Code – Beispiel (Erkennung) • (15,11)-Code: 000 101 110 000 111 Fehler bei P0, P1 und P2 Fehler an Stelle 20 + 21 + 22 = 1 + 2 + 4 = 7

  18. Fehlererkennende Codes CRC – zyklische Redundanzprüfung • CRC beruht auf Polynomdivision, d.h. Folge von zu übertragenden Bits wird als Polynom betrachtet • Ablauf • Bitfolge wird um Grad(G(x)) Nullen ergänzt und durch festgelegtes Polynom G(x) (Generatorpolynom) geteilt (mit Rest!) • Rest wird bei Übertragung an Datenblock angehängt • Empfangener Datenblock wird wieder durch Generatorpolynom geteilt, bei fehlerfreier Übertragung bleibt Rest 0

  19. Fehlererkennende Codes CRC – Beispiel Datenframe: 1101011011 Generator: G(x) = x4 + x + 1 (10011) 1101011011

  20. Fehlererkennende Codes CRC – Beispiel Datenframe: 1101011011 Generator: G(x) = x4 + x + 1 (10011) 11010110110000

  21. Fehlererkennende Codes CRC – Beispiel Datenframe: 1101011011 Generator: G(x) = x4 + x + 1 (10011) 11010110110000 10011 10011

  22. Fehlererkennende Codes CRC – Beispiel Datenframe: 1101011011 Generator: G(x) = x4 + x + 1 (10011) 11010110110000 10011 10011 10011 10110

  23. Fehlererkennende Codes CRC – Beispiel Datenframe: 1101011011 Generator: G(x) = x4 + x + 1 (10011) 11010110110000 10011 10011 10011 10110 10011 10100

  24. Fehlererkennende Codes CRC – Beispiel Datenframe: 1101011011 Generator: G(x) = x4 + x + 1 (10011) 11010110110000 10011 10011 10011 10110 10011 10100 10011 1110

  25. Fehlererkennende Codes CRC – Beispiel Datenframe: 1101011011 Generator: G(x) = x4 + x + 1 (10011) 11010110110000 10011 10011 10011 10110 10011 10100 10011 1110 Anmerkung Bestimmte Generatorpolynome empirisch besser geeignet CRC-32 CRC-16