Großes Verständnisproblem - Prüfbit / BCD-Code (Hamming)

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.

Großes Verständnisproblem - Prüfbit / BCD-Code (Hamming)
Hallo, es geht um das Thema Technische Informatik und ich habe
ein großes Problem beim Verständnis mit dem Prüfbit. Ich spreche im
folgendem vom sogenannten BCD-Code, bei dem man einen 4-stelligen
Binär-Code hat (zB 0010) und dann eine Prüfziffer hinzufügt die die 1en
im bisherigen Code auf Geradzahligkeit überprüft (zB 0010 da wäre die
Prüfziffer 1 und der gesamt zu sendende Code somit 00101 /// bei 0011
wäre die Prüfziffer 0 ->00110). Der Sender erledigt so wie ich das verstanden habe, hierbei die Aufgaben der Umwandlung von Dezimalziffer in Dualzahl (zb 3 wird zu 0011) und er ergänzt das Prüfbit. Danach schickt er die Nachricht weiter an den Empfänger.

Nun soll es angeblich so sein, dass der Empfänger dieser Nachricht so
herausfinden kann, ob bei der Übertragung ein Fehler vorliegt. Wenn zB
der Code 00100 bei ihm angekommt, sieht er die 1en sind nicht
geradzahlig, da muss ein Fehler vorliegen. Soweit so gut.

Aber wie um
Himmels Willen will man da denn einen Fehler ablesen, der den
ursprünglichen Binär-Code betrifft. Für mich wäre dann nur klar, dass
bei der Prüfziffer ein Fehler gemacht wurde und nicht korrekt auf
Geradzahligkeit überprüft wurde. Denn theorethisch wäre doch möglich,
dass der Sender sprich derjenige der die Dezimalziffer in eine Dualzahl umgewandelt hat
(zB 2 wird zu 0010) da einen Fehler gemacht hat.

Angenommen er sagt fälschlicherweise 2 wird zu 0100. Danach fügt er
das Prüfbit 1 (->01001) hinzu und alles wäre in den Augen des Empfängers
korrekt??? Weil es ja geradzahlig wäre, wie soll der Empfänger sehen,
dass der Sender beim Umwandeln einen Fehler gemacht haben könnte??? Und erst recht, wie soll der Empfänger dann erkennen, dass die Zahl falsch in Binärcode umgewandelt wurde? Ich stehe wirklich komplett auf dem Schlauch :frowning:

Gleiches gilt im Übrigens bei dem Hamming-Code. Auch da verstehe ich
nicht, wenn ein falscher Code (keine geradzahligen 1en) angekommen ist,
wie man dann darauf rückschließen soll, dass bei der Übertragung ein
Fehler gemacht wurde. Es kann doch nur sein, dass bei der Prüfziffer
nicht genau überprüft wurde…

Ich hoffe irgendjemand hat Ahnung von der Materie und versteht mein Problem :smiley:


Es koennen keine Fehler erkannt werden, die beim Erzeugen der Pruefziffer schon vorhanden sind oder die beim Erzeugen der Pruefziffer passieren. Ebenso sind Fehler die beim Pruefen der Pruefziffer passieren meistens nicht erkennbar. Es wird nur der Uebertragungsweg, ab der Erzeugung und bis zur Pruefung gesichert, und der auch nur bis zu einer bestimmten Anzahl und Art der Fehler (je nach verwendeter Codierung).

Edit: Achja, und BCD ist binary coded decimal, das hat nichts mit Pruefziffern zu tun. Gerade/Ungerade-Pruefziffern nennt man “Paritaetsbits”. Und Hamming-Code ist nochmal was ganz anderes, den verwendet man um Probleme an Taktflanken zu vermeiden, Fehlerkorrektur und -erkennung macht der nicht.


[quote=arw]Und Hamming-Code ist nochmal was ganz anderes, den verwendet man um Probleme an Taktflanken zu vermeiden, Fehlerkorrektur und -erkennung macht der nicht.
[/quote]

Ich glaub hier denkst du an Gray-Codes? Hamming-Code ist schon zur Fehlererkennung- und Korrektur.


Naja, wenn du nicht davon ausgehen kannst, dass dein Sender korrekt umrechnet, brauchst du ja gleich keine Prüfsummen o.ä. Fehlervermeidung. Dann wärs vielleicht sinnvoller, du schreibst nen Brief oder schickst ne Taube.

Für die von dir geschilderten Fälle musst du also voraussetzen, dass die zu übertragenden Daten erst einmal korrekt sind, also einschließlich Codierung und Prüfsummen. Dann kannst du dir auch Gedanken drüber machen, wie du das Zeug sauber durch einen Übertragungskanal bekommst.


Ups, ja, Gray-Code war das mit der Hamming-Distanz von 1, sorry fuer meine Verwirrung :slight_smile: