Несколько проверок Small CRC или одна большая проверка CRC?

Предположим, у меня есть L = 1024 бит для защиты с помощью проверки CRC с использованием 16 дополнительных бит. У меня есть выбор: использовать либо 16 CRC-1 (однократная проверка четности), либо одна проверка CRC-16. Какой вариант лучше с точки зрения возможности обнаружения ошибок?

Для 16 CRC-1 наша ошибка будет объявлена ​​в случае сбоя какой-либо CRC-1. Другими словами, чтобы пройти проверку CRC, должны быть пройдены все проверки CRC-1; в противном случае будет объявлена ​​ошибка.

Система множественного CRC-1 реализована следующим образом. 1024 бита делятся на 16 групп по 64 бита в каждой, и к каждой 16-битной группе добавляется один бит четности.


person ubaabd    schedule 14.09.2012    source источник


Ответы (1)


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

CRC-16, с другой стороны, будет, например, обнаруживать от 1 до 16 однобитовых ошибок, которые возникают в пакете в пределах 16 бит.

person Mark Adler    schedule 14.09.2012
comment
CRC-16 может обнаруживать одиночный пакет длиной до 16 бит. Некоторые 4 или более битовых комбинаций ошибок не будут обнаружены. 3 или любое нечетное количество ошибочных битов может быть обнаружено, если CRC-16 состоит из двух факторов, один из которых (x + 1) действует как проверка на четность. Например, CRC, использующий шестнадцатеричный код 0x11021, имеет простые множители 0xF01F и 0x3 (при этом 0x3 действует как проверка на четность). - person rcgldr; 17.09.2018