Что такое расстояние Хэмминга и как его определить для схемы CRC?

во время обучения для класса в компьютерных сетях профессор говорил о расстоянии Хэмминга между 2 допустимыми кодовыми словами в примере кода. Я читал о расстоянии Хэмминга, и это имеет смысл с точки зрения определения расстояния между двумя строками. Например:

Code Word 1 = 10110 

отправитель отправляет кодовое слово 1, и появляется ошибка, и получатель получает 10100. Итак, вы видите, что 4-й бит был поврежден. Это привело бы к хэммингу расстояние 1, потому что:

Valid Code Word: 10110
Error Code Word: 10100
                 -----
XOR              00010

XOR из 2 строк приводит к одному 1, поэтому расстояние Хэмминга равно 1. До этого момента я все понимал. Но тут профессор спрашивает:--3-->

  • Каково расстояние Хэмминга стандартного протокола CRC-16 бит?
  • Каково расстояние Хэмминга стандартного протокола CRC-32 бит?

Я немного смущен, и мне было интересно, может ли кто-нибудь помочь. Спасибо.

1 ответов


вы, вероятно, уже поняли это, но то, что он попросил, было, скорее всего, минимальным количеством битовых ошибок, которые код CRC не обнаружил бы. Ответ зависит от ширины, многочлена и длины сообщения. Например, самый известный полином CRC-32 (0x1EDC6F41) имеет расстояние Хэмминга 6 или лучше для сообщений до 5,275 бит (Castaglioni, Bräuer, Herrmann: оптимизация циклических кодов избыточности с 24 и 32 битами четности, транзакции IEEE на Communications, vol 41 no 6, June 1993), что означает, что гарантируется обнаружение до 5 перевернутых битов в одном сообщении 5,275 бит или меньше.

кстати, кодовое слово включает контрольную сумму, поэтому ваш пример неверен.