2016-04-15 2 views
0

Скажем, у меня есть ошибки проверьте сообщение некоторых 120-бит long.I имеют две альтернативы для схем контрольных сумм:Какая из них лучшая схема CRC?

  1. Split сообщение на 5 24-битовых строк и присоединять друг с полем CRC8

  2. Append все сообщение с полем CRC32

Какая схема имеет более высокую вероятность обнаружения ошибок, и почему? Предположим, что мы не знаем о распределении шаблонов ошибок.


UPDATE:

Что делать, если система имеет естественный режим отказа, который принимаемый очищается бит вместо набора бит (то есть, «1» была Tx-эд но «0» был Rx-ed), а наоборот не получается?

В этом случае вероятность длинных всплесков бит ошибок намного меньше, если предположить, что действительные данные имеют равномерное распределение «0» и «1», поэтому самый длинный пакет будет связан самым длинным строка сообщения «1» в сообщении.

ответ

0

CRC32 конечно. Он обнаружит ошибки порядка между пятью сегментами, а также даст вам 2 как можно больше ошибок.

+0

Спасибо. Ну, 8x5 дает 40-битную контрольную сумму, против 32-бит, поэтому для меня «конечно» было не так очевидно. Что делает меня не столь уверенным в том, что с опцией (1) у меня есть 2^(32-8) = 2^(24) сообщения за значение CRC (в среднем), а с опцией (2) у меня есть 2^(152- 32) = 2^(120) сообщений за значение CRC. Таким образом, можно подумать, что вероятность наличия 2 сообщений, сопоставленных с одним и тем же CRC, намного выше с опцией (2), и, следовательно, ее сила ниже. – ysap

1

Вы должны сделать некоторые предположения об ошибках. Если у вас есть равномерное распределение по всем возможным ошибкам, то пять 8-битных CRC обнаруживают больше ошибок, чем один 32-разрядный CRC, просто потому, что у первого есть 40 бит избыточности.

Однако я могу построить много 24-битных шаблонов ошибок, которые обманывают 8-битный CRC и используют любую комбинацию из пяти из них, чтобы не получить ошибок по всем 8-битным CRC. Тем не менее, почти все они будут пойманы 32-битным CRC.

+0

Спасибо, Марк. Да, то, что вы говорите, соответствует моему ощущению кишки (см. Мой комментарий к @EJP). Очевидно, что легко найти шаблоны ошибок, которые обманут CRC8, но будут обнаружены CRC32. То, как я это вижу, это вопрос вероятности неудачи. Естественный вопрос тогда, что, если альтернативой был CRC40 вместо CRC32. В этом случае мы имеем ту же общую избыточность, но у нас все еще есть 2^(160-40) = 2^(120) сообщений на CRC в среднем. Как мы можем доказать, что CRC40 является лучшей схемой, что 5 x CRC8? – ysap

+0

Пожалуйста, уточните вопрос. – ysap