2016-04-15 3 views
0

Dire que je dois vérifier l'erreur un message de quelques long.I 120 bits ont deux alternatives pour les systèmes de contrôle:Lequel est le meilleur système CRC?

  1. message Split à 5 chaînes 24 bits et append chacun avec un champ de CRC8

  2. Append l'ensemble du message avec un champ CRC32

Quel système a une probabilité de détection d'erreur plus élevée, et pourquoi? Supposons aucune connaissance préalable de la distribution des modèles d'erreur.


MISE À JOUR:

si le système a un mode naturel de défaillance qui est un peu effacé reçu à la place d'un bit de jeu (par exemple, "1" a été Tx-ed mais "0" était Rx-ed), et le contraire ne se produit pas? Dans ce cas, la probabilité de longues rafales de bits d'erreur est beaucoup plus faible, en supposant que les données valides ont une distribution uniforme de "0" et "1", de sorte que la rafale la plus longue sera liée par le plus long chaîne de "1" dans le message.

Répondre

0

Le CRC32 bien sûr. Il détectera les erreurs d'ordre entre les cinq segments, ainsi que 2 autant de détection d'erreur.

+0

Merci. Eh bien, 8x5 donne 40 bits de checksum, vs 32 bits, donc pour moi, le "bien sûr" n'était pas si évident. Ce qui me rend moins sûr, c'est qu'avec l'option (1), j'ai 2^(32-8) = 2^(24) messages par valeur CRC (en moyenne) alors qu'avec l'option (2) j'ai 2^(152- 32) = 2^(120) messages par valeur CRC. Donc, on pourrait penser que la probabilité d'avoir 2 messages mappés sur le même CRC est beaucoup plus élevée avec l'option (2) et donc sa force est plus faible. – ysap

1

Vous devez faire une supposition sur les modèles d'erreur. Si vous avez une distribution uniforme sur toutes les erreurs possibles, alors cinq CRC de 8 bits détecteront plus d'erreurs qu'un CRC de 32 bits, simplement parce que le premier a 40 bits de redondance.

Cependant, je peux construire de nombreux modèles d'erreurs de 24 bits qui trompent un CRC de 8 bits, et utiliser une combinaison de cinq d'entre eux pour obtenir aucune erreur sur tous les CRC de 8 bits. Pourtant, presque tous seront capturés par le CRC 32 bits.

+0

Merci Mark. Oui, ce que vous dites est en ligne avec mon instinct (voir mon commentaire sur @EJP). Évidemment, il est facile de trouver des modèles d'erreur qui tromperont le CRC8 mais seront détectés par CRC32. La façon dont je le vois, c'est une question de probabilité d'un échec. Une question naturelle est alors, et si l'alternative était CRC40 au lieu de CRC32. Dans ce cas, nous avons la même redondance totale, mais nous avons toujours 2^(160-40) = 2^(120) messages par CRC en moyenne. Comment pouvons-nous prouver que le CRC40 est un meilleur schéma que 5 x CRC8? – ysap

+0

Veuillez voir la mise à jour à la question. – ysap