Grundlagen der Technischen Informatik
2. Übung
Christian Knell
Keine Garantie für Korrekt-/Vollständigkeit
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Themen
Aufgabe 1: Hamming-Distanz
Aufgabe 2: Fehlererkennung, Paritätsbit
Aufgabe 3: Blocksicherung
Aufgabe 4: Fehlerkorrektur, Hamming-Distanz,
Hamming-Code
Aufgabe 5: Huffman-Code, optimale Codierung
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 1
Das Bild zeigt ein Diagramm, dass die
Nachbarschafsbeziehungen für
einen Code mit 3 Binärstellen darstellt.
a) Welche 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?
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 1
Übung zu Grundlagen der Technischen Informatik
a) Welche 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?
HDmin(x) = d
→ (d-1) Fehler erkennbar
→ e = ((d - 1) / 2) Fehler korrigierbar
→ HDmin(x) = 2
→ Maximal 4 codierbare Zeichen (z.B.: 000, 011, 110, 101)
2. Übungsblatt – Aufgabe 1
b) Welche 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?
HDmin(x) = 3
→ maximal 2 codierbare Zeichen
Übung zu Grundlagen der Technischen Informatik
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 3 Binärstellen möglich?
Geben Sie eine Lösung an.
Es sind insgesamt 8 Lösungen möglich.
Lösungen:
Übung zu Grundlagen der Technischen Informatik
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
Übung zu Grundlagen der Technischen Informatik
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 7 Bits des
ASCII-Codes um ein
Paritätsbits (ganz links)
ergänzt hat.
Übung zu Grundlagen der Technischen Informatik
Empfangener Code ASCII-Zeichen
0 100 0111 ‘G‘
1 101 0100 ‘T‘
1 100 1001 ‘I‘
1 010 0100 ‘$‘
0 110 1001 ‘I‘
1 111 0011 ‘S‘
1 101 0100 ‘T‘
1 010 0000 ‘ ‘
1 111 0110 ‘V‘
0 110 1111 ‘O‘
0 110 1100 ‘L‘
0 110 1100 ‘L‘
2. Übungsblatt – Aufgabe 2
a) Welches Zeichen wurde offensichtlich falsch übertragen?
Das Zeichen ‘$‘ wurde falsch übertragen, da die Parität
ungerade ist
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 2
b) Das letzte Wort lautete vor der Übertragung „toll“ und nicht
„voll“. Warum ist der von der Übertragungsstrecke
verursachte Fehler nicht erkennbar?
‘T‘ = 0 111 0100 ‘V‘ = 1 111 0110
→ Es handelt sich um einen Zweifachfehler
→ Zweifachfehler sind mit einfacher Paritätssicherung nicht
erkennbar.
Übung zu Grundlagen der Technischen Informatik
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.
Übung zu Grundlagen der Technischen Informatik
Binärcode Prüfbit Hex ASCII
Block 1
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
Block 2
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
Übung zu Grundlagen der Technischen Informatik
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.
Übung zu Grundlagen der Technischen Informatik
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
Gegeben sei ein nicht fehlertolerantes Kommunikationssystem,
welches in der Lage ist, einstellige Codeworde in hexadezimaler
Darstellung zu übertragen. Es soll nun dahingehend erweitert
werden, dass es mittels eines Hamming-Codes Zweifachfehler
erkennen oder Einfachfehler korrigieren kann.
a) Welche Hamming-Distanz (HD) wird benötigt, um die
geforderte Fehlertoleranz zu erreichen?
HDmin(x) = 3
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 4
b) Wie viele Bits werden nun jeweils benötigt, um 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 (24 = 16), also m = 4.
#Prüfbits:
→ Das Codewort ist m + k = 7 Bit lang
([x4, x3, x2, x1, y3, y2, y1])
Übung zu Grundlagen der Technischen Informatik
3)(1 mldk
2. Übungsblatt – Aufgabe 4
c) 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:
xm, …, x1, yk, …, y1.
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 4
c) Erstellen Sie nun den Hamming-Code … Aufbau der
Codeworte soll wie folgt aussehen: xm, …, x1, yk, …, y1.
Vorgehensweise:
1. Aufstellen der Tabelle
(m + k + 1 Spalten, #Informationen + 1 Zeilen)
2. „Hochzählen“ der xm, …, x1
3. Aufstellen der Paritätsmatrix
4. „Hochzählen“ der Spalten
5. Beschriften der Spalten (y-Spalte für 2x)
6. XOR der beteiligten x-Spalten
7. Eintragen der y-Spalten
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 4
c) Erstellen Sie nun den Hamming-Code … Aufbau der
Codeworte soll wie folgt aussehen: xm, …, x1, yk, …, y1.
Übung zu Grundlagen der Technischen Informatik
x4 x3 x2 x1 y3 y2 y1 Hex
0 0 0 0 ? ? ? 0
0 0 0 1 ? ? ? 1
0 0 1 0 ? ? ? 2
0 0 1 1 ? ? ? 3
0 1 0 0 ? ? ? 4
0 1 0 1 ? ? ? 5
0 1 1 0 ? ? ? 6
0 1 1 1 ? ? ? 7
x4 x3 x2 x1 y3 y2 y1 Hex
1 0 0 0 ? ? ? 8
1 0 0 1 ? ? ? 9
1 0 1 0 ? ? ? A
1 0 1 1 ? ? ? B
1 1 0 0 ? ? ? C
1 1 0 1 ? ? ? D
1 1 1 0 ? ? ? E
1 1 1 1 ? ? ? F
c) 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:
xm, …, x1, yk, …, y1.
x4 x3 x2 y3 x1 y2 y1
y3 = x4 x3 x2
y2 = x4 x3 x1
y1 = x4 x2 x1
1010101
0110011
0001111
P
2. Übungsblatt – Aufgabe 4
Übung zu Grundlagen der Technischen Informatik
A B XOR
0 0 0
0 1 1
1 0 1
1 1 0
c) 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:
xm, …, x1, yk, …, y1.
x4 x3 x2 y3 x1 y2 y1
y3 = x4 x3 x2
y2 = x4 x3 x1
y1 = x4 x2 x1
1010101
0110011
0001111
P
2. Übungsblatt – Aufgabe 4
Übung zu Grundlagen der Technischen Informatik
x1 is checked by [y1, y2]
x2 is checked by [y1, y3]
x3 is checked by [y2, y3]
x4 is checked by [y1, y2, y3]
x4 x3 x2 x1 y3 y2 y1 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
x4 x3 x2 x1 y3 y2 y1 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
2. Übungsblatt – Aufgabe 4
c) Erstellen Sie nun den Hamming-Code … Aufbau der
Codeworte soll wie folgt aussehen: xm, …, x1, yk, …, y1.
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 4
d) Bei einer Übertragung mit dem Kommunikationssystem aus
c) 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.
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 4
d) … 01010000100100100110011101111110100 …
Anmerkung:
1. 1 Prüfbit falsch => Prüfbit falsch
2. Mehrere Prüfbit falsch => xi 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)
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 5
a) Erstellen Sie den Huffman-Codierungsbaum für die folgende
Zeichenkette: ABRAKADABRASIMSALABIM
Vorgehensweise:
1. Tabelle mit Häufigkeiten der Buchstaben erstellen
2. while (noch nicht zusammengefasste Elemente)
do Fasse kleinste Elemente zu neuem zusammen
Übung zu Grundlagen der Technischen Informatik
Buchstabe K D L R S I M B A
Anzahl 1 1 1 2 2 2 2 3 7
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
a) Erstellen Sie den Huffman-Codierungsbaum für die folgende
Zeichenkette: ABRAKADABRASIMSALABIM
K und D zusammenfassen => neues Element der Größe 2
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
a) Erstellen Sie den Huffman-Codierungsbaum für die folgende
Zeichenkette: ABRAKADABRASIMSALABIM
L und KD zusammenfassen => neues Element der Größe 3
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
a) Erstellen Sie den Huffman-Codierungsbaum für die folgende
Zeichenkette: ABRAKADABRASIMSALABIM
R und S & I und M zusammenfassen
=> 2 neue Elemente der Größe 4
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
a) Erstellen Sie den Huffman-Codierungsbaum für die folgende
Zeichenkette: ABRAKADABRASIMSALABIM
LKD und B zusammenfassen => neues Element der Größe 6
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
a) Erstellen Sie den Huffman-Codierungsbaum für die folgende
Zeichenkette: ABRAKADABRASIMSALABIM
RS und IM zusammenfassen => neues Element der Größe 8
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
a) Erstellen Sie den Huffman-Codierungsbaum für die folgende
Zeichenkette: ABRAKADABRASIMSALABIM
2. Übungsblatt – Aufgabe 5
b) Wie viel Bits werden durch diese Codierung im Vergleich zu
einer Codierung mit einer festen Codewort-Länge
eingespart?
Bei Codierung mit fester Codewort-Länge:
Es gibt 9 verschiedene Zeichen deren Codierung mindestens
je 4 Bit erfordern. Bei 21 Zeichen sind das 84 Bit.
Übung zu Grundlagen der Technischen Informatik
2. Übungsblatt – Aufgabe 5
b) Wie viel Bits werden durch diese Codierung im Vergleich zu
einer Codierung mit einer festen Codewort-Länge
eingespart?
Rechts sieht
man das Ergebnis der
Huffman-Codierung.
Übung zu Grundlagen der Technischen Informatik
Zeichen Code Länge * Anzahl
A 11 14
B 101 9
R 000 6
K 10010 5
D 10011 5
S 001 6
I 010 6
M 011 6
L 1000 4
Summe: 61
2. Übungsblatt – Aufgabe 5
b) Wie viel Bits werden durch diese Codierung im Vergleich zu
einer Codierung mit einer festen Codewort-Länge
eingespart?
Ergebnis: Man spart
84 Bit - 61 Bit = 23 Bit.
Übung zu Grundlagen der Technischen Informatik
Zeichen Code Länge * Anzahl
A 11 14
B 101 9
R 000 6
K 10010 5
D 10011 5
S 001 6
I 010 6
M 011 6
L 1000 4
Summe: 61
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
Anzahl rel. Anteil Bitlänge
7 0,333 1,59
3 0,143 2,81
2 0,095 3,39
1 0,048 4,39
c) Wie viel Bits sind minimal nötig?
Die minimale Bitlänge ist: )#
(henzahlGesamtzeic
sdesZeichenld
Zeichen Anzahl Bitlänge
A 7 1,59
B 3 2,81
S 2 3,39
R 2 3,39
M 2 3,39
I 2 3,39
L 1 4,39
D 1 4,39
K 1 4,39
c) Wie viel Bits sind minimal nötig?
Die minimale Bitlänge ist:
Multipliziert man die Bitlänge mit der
Summe der Zeichen gleicher Anzahl,
so erhält man die jeweiligen
Summenbitlängen. Die Summe
davon ist die minimale Anzahl Bits
die zur Codierung benötigt werden.
1,59 * 7 + 2,81 * 3 + 3,39 * 8 + 4,39 * 3 = 59,83
2. Übungsblatt – Aufgabe 5
Übung zu Grundlagen der Technischen Informatik
Anzahl Bitlänge
7 1,59
3 2,81
2 3,39
1 4,39
)#
(henzahlGesamtzeic
sdesZeichenld
2. Übungsblatt – Aufgabe 5
c) Wie viel Prozent schlechter ist der Huffman-Code?
→ Der Huffman-Code ist 2,041% schlechter als die
Optimale Codierung
Übung zu Grundlagen der Technischen Informatik
02041,061
78,591
2. Übungsblatt
Danke für die
Aufmerksamkeit
Übung zu Grundlagen der Technischen Informatik