Frage von Nerawa, 75

Frage bezüglich CRC (Cyclic redundancy check / Zyklische Redundanzprüfung)?

Hallo liebe Community,

ich interessiere mich für das Thema CRC, habe aber bisher keine sonderlich große Ahnung davon. Die Vorgehensweise mithilfe der Polynom-Division verstehe ich, allerdings weiß ich nicht, was ich mit dem unten übrig bleibenden Rest machen soll. Zudem verstehe ich nicht, was redundante Bits schlussendlich sind.

Habe ich eine zu übermittelnde Nachricht, kann ich diese ohne Probleme per Polynom-Division auflösen, allerdings bin ich nicht in der Lage, diesen Schritt rückwärts auszuführen. Sei eine gesendete Nachricht vorhanden, habe ich keine Ahnung, wie ich diese zurück wandeln kann.

Ich hoffe, ihr könnt mir helfen.

Vielen Dank!

Antwort
von DoTheBounce, 48

Der Rest der Division wird an die Nachricht angehängt (mit einer festgegebenen Länge, also evtl. mit 0ern aufgefüllt - ist auf Wiki eigentlich ganz anschaulich erklärt).

Redundante Bits sind Bits, die - bei korrekter Übertragung - keine Information enthalten. Stell dir vor, du verschickst einen Brief 2x. Der zweite Brief wäre redundant. Wenn beide ankommen, dann ist der zweite nutzlos. Geht aber der erste verloren, dann hilft dir der zweite, so dass du trotzdem noch die Nachricht erhälst.

Am Empfänger wird gar nichts zurück gewandelt. Es wird einfach nur wieder eine Polynomdivision durchgeführt. Kommt dort Rest 0 raus, kann man davon ausgehen, dass die Nachricht korrekt ist.

Kommentar von Nerawa ,

Hallo DoTheBounce,

vielen Dank für deine Antwort! Wenn ich den Rest der Division mit dem Generatorpolynom herausgefunden habe, wird dieser also an die Ursprungs-Nachricht angehangen? Sollte beispielsweise 10110011 heraus kommen und ein Rest von 0100, lautet die Nachricht, die zu übertragen ist, also 101100110100? Oder muss ich den Rest hinter das Ergebnis der Polynomdivision schreiben?

Kommentar von DoTheBounce ,

Es wird einfach angehängt, korrekt

Antwort
von eddiefox, 55

Hallo,

ich kenne das Thema nicht, finde es aber interessant.

Falls Du den Artikel noch nicht gelesen haben solltest: 

im Wikipedia-Artikel wird ein Beispiel durchgechnet von (Erstellung des Polynoms ausgehend von einer zu übertragenden Bitfolge) -> (Berechnung des Rests) -> (Kontrollrechnung nach Übertragung der Bitfolge samt Restpolynom).

https://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung

Grüsse

Expertenantwort
von TeeTier, Community-Experte für programmieren, 16

Wenn dich das Thema der Fehler-Erkennung und -Korrektur interessiert, dann guck dir auch Adler an! CRC ist für meine Begriffe recht "aufgeblasen", aber liefert natürlich bessere Resultate als Adler.

Guck dir bitte auch unbedingt das hier an:

https://de.wikipedia.org/wiki/Golay-Code

Der Golay-Code ist eine absolute Perle auf diesem Gebiet. (wenn auch nur bedingt mit CRC & Co vergleichbar)

Ansonsten sind die Wikipedia-Einträge zu diesen Themen ganz akzeptabel als Einstieg. Wenn du mehr wissen willst, such bei Google mal nach entsprechenden Seiten, die tiefer in die Materie eintauchen.

Reicht auch das nicht, kommst du um Mathematikbücher vermutlich nicht drum rum. :)

Viel Spaß! :)

Keine passende Antwort gefunden?

Fragen Sie die Community