Grundlagen der Technischen Informatik 2. Übung Christian Knell Keine Garantie für Korrekt-/Vollständigkeit
2. Übungsblatt Themen Aufgabe 1: Aufgabe 2: Aufgabe 3: Aufgabe 4: Hamming-Distanz Fehlererkennung Blocksicherung Fehlerkorrektur
2. Übungsblatt Aufgabe 1 Das nebenstehende Bild zeigt ein Diagramm, das die Nachbarschafsbeziehungen für einen Code mit drei Binärstellen darstellt. a) Welche (minimale) Hamming-Distanz müssen die gültigen Codeworte aufweisen, damit Einzelfehler erkannt werden können? Wie viele Zeichen können so mit drei Binärstellen maximal codiert werden?
2. Übungsblatt Aufgabe 1 a) Welche (minimale) Hamming-Distanz müssen die gültigen Codeworte aufweisen, damit Einzelfehler erkannt werden können? Wie viele Zeichen können so mit 3 Binärstellen maximal codiert werden? HD min (x) = d (d-1) Fehler erkennbar e = ((d - 1) / 2) Fehler korrigierbar HD min (x) = 2 Maximal vier codierbare Zeichen (z.b.: 000, 011, 110, 101)
2. Übungsblatt Aufgabe 1 b) Welche (minimale) Hamming-Distanz müssen die gültigen Codeworte aufweisen, damit die Korrektur von Einzelfehlern möglich ist? Wie viele Zeichen können jetzt maximal codiert werden? HD min (x) = d (d-1) Fehler erkennbar e = ((d - 1) / 2) Fehler korrigierbar e = 1 d = 3 HD min (x) = 3 maximal 2 codierbare Zeichen
2. Übungsblatt Aufgabe 1 c) Die beiden Zeichen A und B sollen so codiert werden, dass Einzelfehler korrigierbar sind. Wie viele Lösungen sind für die Codierung der beiden Zeichen mit drei Binärstellen möglich? Geben Sie eine Lösung an. Es sind insgesamt 8 Lösungen möglich. Lösungen: A 000 001 010 011 100 101 110 111 B 111 110 101 100 011 010 001 000
2. Übungsblatt Aufgabe 1 d) Bei der Datenübertragung mit einer Codierung nach c) wurde genau eine Binärstelle falsch übertragen. Die folgenden Daten wurden empfangen: 0 1 1 1 1 0 0 0 1 1 1 0. Korrigieren Sie den Fehler. Anordnung ergibt: 011 110 001 110 Man sieht schnell, dass 011 falsch übertragen wurde korrigierte Daten: 001 110 001 110
2. Übungsblatt Aufgabe 2 Am Ende einer längeren Übertragungsstrecke wird die folgende Nachricht Im ASCII-Code empfangen: Es ist bekannt, dass der Sender die sieben Bits des ASCII-Codes um ein sog. Paritätsbits (ganz links) ergänzt hat. Empfangener Code ASCII-Zeichen 0 100 1000 H 1 111 1001 y 1 101 0100 T 0 101 1010 Z 1 100 0101 E 1 100 0110 F 1 101 0010 R 1 100 0001 A 1 100 1001 I 0 010 0001!
2. Übungsblatt Aufgabe 2 a) Welches Zeichen wurde offensichtlich falsch übertragen? Das Zeichen A wurde falsch übertragen, da die Parität ungerade ist
2. Übungsblatt Aufgabe 2 b) Der erste Teil des Wortes lautete vor der Übertragung HITZE und nicht HyTZE. Warum ist der von der Übertragungsstrecke verursachte Fehler nicht erkennbar? I = 1 100 1001 y = 1 111 1001 Es handelt sich um einen Zweifachfehler Zweifachfehler sind mit einfacher Paritätssicherung nicht erkennbar.
2. Übungsblatt Aufgabe 3 Bei der Übertragung wichtiger Daten im ASCII-Code wird eine Blocksicherung durchgeführt. Die Prüfbits werden so erzeugt, dass eine gerade Parität entsteht. Die folgende Tabelle zeigt die empfangenen Daten. Offensichtlich wurden nicht alle Daten richtig übermittelt. Block 1 Block 2 Binärcode Prüfbit Hex ASCII 101 0010 1 52 R 100 1001 1 49 I 101 0011 1 53 S 010 1000 0 48 H 111 0000 1 Prüfsumme Binärcode Prüfbit Hex ASCII 101 0000 1 50 P 100 1001 1 49 I 100 0111 0 47 G 010 0001 0 21! 111 1011 0 Prüfsumme
2. Übungsblatt Aufgabe 3 a) Welche Fehler (Anzahl, Einfach-/Mehrfachfehler) sind korrigierbar? Bei einer Blocksicherung mit Paritätsbit sind nur Einzelfehler korrigierbar. Voraussetzung: ein Fehler pro Block
2. Übungsblatt Aufgabe 3 a) Welche Fehler (Anzahl, Einfach-/Mehrfachfehler) sind korrigierbar? Voraussetzung: ein Fehler pro Block b) Die aufgetretenen Fehler seien korrigierbar. Korrigieren Sie die entsprechenden Binärstellen in der Tabelle. Bestimmen Sie für die korrigierten Codewörter das zugehörige ASCII-Zeichen. Binärcode Prüfbit Hex ASCII Block 1, 3. Zeile 100 0011 1 43 C Block 2, 1. Zeile 101 0100 1 54 T
2. Übungsblatt Aufgabe 4 Sei ein nicht fehlertolerantes Kommunikationssystem, das in der Lage ist, einstellige Hexadezimalzahlen zu übertragen. Es soll nun dahingehend erweitert werden, dass es mittels eines Hamming-Codes Zweifachfehler erkennen oder Einfachfehler korrigieren kann.
2. Übungsblatt Aufgabe 4 a) Wie viele Bits werden benötigt, um jeweils die Informationen und die Paritätsbits nach Hamming zu codieren? Wie lang wird das gesamte zu übertragende Codewort? Ein Hexwert ist mit 4 Bit darstellbar (2 4 = 16), also m = 4. #Prüfbits: k 1 ld( m) 3 Das Codewort ist m + k = 7 Bit lang ([x 4, x 3, x 2, x 1, y 3, y 2, y 1 ])
2. Übungsblatt Aufgabe 4 b) Erstellen Sie nun den Hamming-Code Aufbau der Codeworte soll wie folgt aussehen: x m,, x 1, y k,, y 1. Vorgehensweise: 1. Aufstellen der Tabelle (m + k + 1 Spalten, #Informationen + 1 Zeilen) 2. Hochzählen der x m,, x 1 3. Aufstellen der Paritätsmatrix 4. Hochzählen der Spalten 5. Beschriften der Spalten (y-spalte für 2 x ) 6. XOR der beteiligten x-spalten 7. Eintragen der y-spalten
2. Übungsblatt Aufgabe 4 b) Erstellen Sie nun den Hamming-Code und ordnen Sie den Codeworten die entsprechenden Hexadezimalwerte zu, die der Wertigkeit der Informationsstellen entsprechen sollen. Der Aufbau der Codeworte soll wie folgt aussehen: x m,, x 1, y k,, y 1. P x 4 x 3 x 2 y 3 x 1 y 2 y 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 y 3 = x 4 x 3 x 2 y 2 = x 4 x 3 x 1 y 1 = x 4 x 2 x 1 x 1 is checked by [y 1, y 2 ] x 2 is checked by [y 1, y 3 ] x 3 is checked by [y 2, y 3 ] x 4 is checked by [y 1, y 2, y 3 ]
2. Übungsblatt Aufgabe 4 b) Erstellen Sie nun den Hamming-Code Aufbau der Codeworte soll wie folgt aussehen: x m,, x 1, y k,, y 1. x 4 x 3 x 2 x 1 y 3 y 2 y 1 Hex 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 1 2 0 0 1 1 1 1 0 3 0 1 0 0 1 1 0 4 0 1 0 1 1 0 1 5 0 1 1 0 0 1 1 6 0 1 1 1 0 0 0 7 x 4 x 3 x 2 x 1 y 3 y 2 y 1 Hex 1 0 0 0 1 1 1 8 1 0 0 1 1 0 0 9 1 0 1 0 0 1 0 A 1 0 1 1 0 0 1 B 1 1 0 0 0 0 1 C 1 1 0 1 0 1 0 D 1 1 1 0 1 0 0 E 1 1 1 1 1 1 1 F
2. Übungsblatt Aufgabe 4 c) Bei einer Übertragung mit diesem Kommunikationssystem wurde folgende Binärfolge empfangen: 01010000100100100110011101111110100 Überprüfen Sie anhand Ihrer Code-Tabelle, ob der Empfang der Codeworde fehlerfrei erfolgt ist und führen Sie falls notwendig eine Korrektur durch.
2. Übungsblatt Aufgabe 4 c) 01010000100100100110011101111110100 Anmerkung: 1. 1 Prüfbit falsch => Prüfbit falsch 2. Mehrere Prüfbit falsch => x i falsch Anordnung ergibt: 0101 000 => 0101 101 => 2 Prüfbits falsch x 1 is checked by [y 1, y 2 ] x 2 is checked by [y 1, y 3 ] x 3 is checked by [y 2, y 3 ] x 4 is checked by [y 1, y 2, y 3 ]
2. Übungsblatt Aufgabe 4 c) 01010000100100100110011101111110100 Anmerkung: 1. 1 Prüfbit falsch => Prüfbit falsch 2. Mehrere Prüfbit falsch => x i falsch Anordnung ergibt: 0101 000 => 0101 101 => 0111 000 (7) 0100 100 => 0100 110 => 1 Prüfbit falsch x 1 is checked by [y 1, y 2 ] x 2 is checked by [y 1, y 3 ] x 3 is checked by [y 2, y 3 ] x 4 is checked by [y 1, y 2, y 3 ]
2. Übungsblatt Aufgabe 4 c) 01010000100100100110011101111110100 Anmerkung: 1. 1 Prüfbit falsch => Prüfbit falsch 2. Mehrere Prüfbit falsch => x i falsch Anordnung ergibt: 0101 000 => 0101 101 => 0111 000 (7) 0100 100 => 0100 110 => 0100 110 (4) 1001 100 => OK (9) 1110 111 => 1110 100 => 2 Prüfbits falsch x 1 is checked by [y 1, y 2 ] x 2 is checked by [y 1, y 3 ] x 3 is checked by [y 2, y 3 ] x 4 is checked by [y 1, y 2, y 3 ]
2. Übungsblatt Aufgabe 4 c) 01010000100100100110011101111110100 Anmerkung: 1. 1 Prüfbit falsch => Prüfbit falsch 2. Mehrere Prüfbit falsch => x i falsch Anordnung ergibt: 0101 000 => 0101 101 => 0111 000 (7) 0100 100 => 0100 110 => 0100 110 (4) 1001 100 => OK (9) 1110 111 => 1110 100 => 1111 111 (F) 1110 100 => OK (E) x 1 is checked by [y 1, y 2 ] x 2 is checked by [y 1, y 3 ] x 3 is checked by [y 2, y 3 ] x 4 is checked by [y 1, y 2, y 3 ]
2. Übungsblatt Danke für die Aufmerksamkeit