Verwirrende Angabe
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
1. Miniklausur vom 19.11.2009, Aufgabe 3c und 3d
Hallo zusammen!
Bei der Bearbeitung der Aufgabe 3c kommt bei mir die folgende Tabelle heraus:
x7 x6 x5 y4 x4 x3 x2 y3 x1 y2 y1
1 1 1 1 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0
1 1 0 0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0 1 0 1
Bei der Aufgabe 3d kann ich in der Tabelle jedoch nirgends das Wort 0100110 entdecken. Meine Vorgehensweise: Das Datenwort wird ja “rückwärts” kodiert (x7, x6, … x1) und anschließend um (y4, y3, y2, y1) ergänzt. Also drehe ich 0100110 um und erhalte 0110010. Aber das ist ebenfalls nicht in der Tabelle zu finden. Falsche Angabe oder ein Denkfehler meinerseits?
Die Tabelle sagt dir nur wie die Prüfbits zu generieren sind. Siehe Hamming-Codes Seite 13 ff.
Die Prüfbits errechnen sich wie folgt:
y1=x1 xor x2 xor x4 xor x5 xor x7
y2=x1 xor x3 xor x4 xor x6 xor x7
y3=x2 xor x3 xor x4
y4=x5 xor x6 xor x7
Damit ergibt sich für 0100110: 1001
Das mit den Prüfbits ist klar, aber könntest du Schritt für Schritt erklären, wie ich nun aus 0100110 die 1001 erhalte? Stehe gerade auf dem Schlauch…
Edit: Vielleicht habe ich es doch kapiert. Schaust du mal bitte, ob’s richtig ist (natürlichsprachliche Beschreibung)?
y4 ist ja für x5, x6 und x7 verantwortlich. Darum schau ich nach, welche Werte diese Bits in meinem Codewort haben. x5=0, x6=1, x7=0 => also nur eine einzige 1. Deshalb muss das Paritätsbit y4 auch eine 1 sein (weil gerade Parität).
y3 ist für x2, x3 und x4 verantwortlich. x2=1, x3=1, x4=0 => also zwei 1. Deshalb muss das Paritätsbit eine 0 sein (ebenso, weil die Parität gerade ist).
usw.
Falls ich richtig liege: Woher weiß ich, dass die Parität gerade ist?
Edit 2: Weil sie in der Tabelle auch gerade ist, oder?
Unterstelle dir einfach mal, dass du es nicht durchgelesen hast
Aber nein nix Paritätsbit. In der Tabelle aus 3c sind keine Codwörter enthalten.
Doch, sonst wäre ich nicht mal so weit gekommen. Allerdings fällt mir das Verstehen schwer, da es in den Folien doch sehr knapp formuliert ist. Ich versuch’s noch mal:
Im Codewort 0100110 sind die Stellen x6, x3 und x2 gleich 1.
Für x6 sind y2 und y4 verantwortlich.
Für x3 sind y2 und y3 verantwortlich.
Für x2 sind y1 und y3 verantwortlich.
y2 kommt doppelt vor, also hebt es sich sozusagen auf. Dasselbe für y3. Bleiben also nur noch y1 und y4 mit übrig, daher: 1001 (absteigend). Jetzt richtig?
Ferner: Heben sich nur gerade Anzahlen von y auf? Sprich: Käme y2 nicht doppelt, sondern dreifach vor, dann würde es sich nicht aufheben, oder?
Ich kenn die genaue Aufgabe zwar nicht, aber in meinen Übungs-Folien ist das mit den Hamming-Codes ausführlich beschrieben:
Folien zur Übung 2 Die Aufgabe 2c/2d dreht sich genau um solche Hamming-Codes. Vielleicht hilfts.
x7 x6 x5 x4 x3 x2 x1
0 1 0 0 1 1 0
y1=x1 xor x2 xor x4 xor x5 xor x7 (y1 überdeckt x1,x2,x4,x5,x7)
y2=x1 xor x3 xor x4 xor x6 xor x7 (y2 überdeckt x1,x3,x4,x6,x7)
y3=x2 xor x3 xor x4 (y3 überdeckt x2,x3,x4)
y4=x5 xor x6 xor x7 (y4 überdeckt x5,x6,x7)
x1 wird überprüft von: y1, y2
x2 wird überprüft von: y1, y3
x3 wird überprüft von: y2, y3
x4 wird überprüft von: y1, y2, y3
x5 wird überprüft von: y1, y4
x6 wird überprüft von: y2, y4
x7 wird überprüft von: y1, y2, y4
y1 = 0 xor 1 xor 0 xor 0 xor 0 = 1 xor 0 xor 0 xor 0 = 1 xor 0 xor 0 = 1 xor 0 = 1
y2 = 0 xor 1 xor 0 xor 1 xor 0 = 1 xor 0 xor 1 xor 0 = 1 xor 1 xor 0 = 0 xor 0 = 0
y3 = 1 xor 1 xor 0 = 0 xor 0 = 0
y4 = 0 xor 1 xor 0 = 1 xor 0 = 1
Damit ergibt sich folgendes Codewort mit Prüfbits:
x7 x6 x5 x4 x3 x2 x1 y4 y3 y2 y1
0 1 0 0 1 1 0 1 0 0 1
Super, danke euch beiden!