Я попытался выяснить, как рассчитать возможности обнаружения ошибок для любых полиномов CRC.Проверка возможностей обнаружения ошибок полиномов CRC
Я знаю, что существуют различные возможности обнаружения ошибок, которые могут (или не могут) применяться к произвольному полиномом:
Обнаружение одной битовой ошибки: Все ЗПК могут сделать это, так как это требует только ширина CRC> = 1.
Обнаружение ошибок пакета: Все CRC могут обнаруживать ошибки пакетов до размера, равного их ширине.
Обнаружение нечетных чисел ошибок в битах: CRC с полиномами с четным числом членов (что означает четное число 1-битов в полном двоичном полиноме).
Обнаружение случайных ошибок в битах (в зависимости от размера кадра): У меня есть готовый к использованию алгоритм C, который позволяет рассчитывать максимальный размер кадра для данного HD и poylnomial. Я не понял его полностью, но он работает.
Предположим, что 16-кратный многочлен CRC x¹⁶ + x¹² + x⁵ + 1 = 0x11021. Этот полином может:
- обнаружение всех ошибок одного бита (независимый размер данных).
- обнаруживает все пакетные ошибки шириной до 16 бит (независимый размер данных).
- обнаруживает все нечетные числа битовых ошибок (так как имеет 4 полиномиальных члена, независимый размер данных).
- обнаруживает 3-разрядные ошибки (HD4) до 32571 бит.
Правильно ли это?
Есть ли дополнительные возможности обнаружения ошибок CRC? Если да, то как я могу проверить (без глубоких математических знаний), если их поддерживает полином?
Этот вопрос довольно интересный. Это может быть лучше для cs.stackexchange.com – Nayuki
@ Наюки: Возможно, вы правы. Сначала давайте посмотрим, что здесь происходит ... – Silicomancer