CRC-8: Startwertproblem

OP #941851
Hallo CRC-Spezialisten!
Ich, als eine Anfängerin auf diesem Gebiet, brauche schon wieder Eure 
Hilfe.
Es geht  um CRC-8 mit dem Generator-Polynom:  x^8+x^4+x^3+x^2+x+1.
Meine Frage ist: wie hoch ist die Wahrscheinlichkeit, dass ein Fehler 
bei der Datenübertragung nicht erkannt wird, wenn man als Startwert 
nicht konstant immer den Wert 0x00 oder den Wert  0xFF nimmt, sondern 
durch den Zufallsgenerator einen Startwert ermittelt und entsprechend 
für jede CRC-Berechnung einen Wert von den 256 Möglichkeiten nimmt? Hat 
die Auswahl von Startwerten überhaupt irgend ein Einfluß darauf, dass 
ein Fehler bei der Übertragung nicht erkannt wird?
Kann man es irgendwie zeigen oder die Wahrscheinlichkeit  für die 
einzelne Startwerte  ausrechnen? Oder läßt sich das nur durch das Testen 
und Simulieren bestimmen (was für mich nicht erwünscht ist!!!)?

Besten Dank im Voraus!!!
@A. B. (alfa)

>durch den Zufallsgenerator einen Startwert ermittelt und entsprechend
>für jede CRC-Berechnung einen Wert von den 256 Möglichkeiten nimmt? Hat

Ein Zufallswert als Startwert ist nciht sinnvoll, denn den müsste man ja 
zusätzlich übertragen, damit der Empfänger ihn zur CRC Prüfung nutzen 
kann.
Praktisch wird man oft 0xFF wählen, damit der CRC "Mischjvorgang" sofort 
startet. Das kann nämlich bei 0x00 und 00x00 am Anfang des Datenblocks 
nicht starten, und somit wird die CRC "schwächer".

Siehe auch die Links im Artikel CRC

MFG
Falk
Gast
Der Startwert ist ziemlich egal. Bereits nachdem das erste Byte in die 
CRC-Summe eingegangen ist, können in der Zwischensumme 256 möglichen 
Werte drinstehen.
Gast
Der Startwert ist ziemlich egal. Bereits nachdem das erste Byte in die
CRC-Summe eingegangen ist, können in der Zwischensumme alle 256 
möglichen
Werte drinstehen.
Gast
@Falk

Ein schöner Text. Das Argument darin ist folgendes: Theoretisch (das 
heißt bei gleichverteilten Nutzdaten) ist der Startwert egal. Das war 
auch, was ich meinte. Praktisch hat man oft den Fall,  dass die Zeichen 
in den Nutzdaten nicht gleichverteilt sind. Man hat z. B. 
überproportional viele Nullen. Es lohnt sich in diesem Fall, den 
Startwert auf die Nutzzeichenverteilung anzupassen. 0xFF ist für 
überproportional häufige Nullen ein besserer Startwert als 0.

Den optimalen Startwert könnte man bei bekannter Nutzdatenverteilung 
ausrechnen, wenn man auch für die Fehler ein mathematisches Modell 
bereitstellt. Einfacher ist ein Monte Carlo Algorithmus, der soweit 
möglich realistische Nutzdaten mit den erwarteten Fehlern stört für alle 
Startwerte durchlaufen zu lassen. Mein Tip ist, dass auch 0xff in den 
meisten Fällen ein suboptimaler (obgleich besser als 0) Startwert ist.

Schöne Grüße, Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.