... имеет оптимальную длину для HD = 3 и хорошую производительность HD = 2 выше этой длины.
Это утверждение сформулировано плохо.Я нахожу его в нижней части этой веб-страницы под «Обозначение:»
https://users.ece.cmu.edu/~koopman/crc
В этой и других статьях, которые я нахожу, аббревиатура «HD» представляет минимальное расстояние Хэмминга дляCRC: для HD = k + 1, CRC может обнаружить любой шаблон из k битовых ошибок в сообщении вплоть до некоторой длины (как показано в таблицах).Как вы сказали, «все CRC имеют бесконечную длину данных при HD = 2».
Использование фразы «хорошая производительность HD = 2 выше этой длины» сбивает с толку.Вышеуказанный веб-сайт ссылается на приведенный ниже веб-сайт, который содержит выражение «Длина HD = 2 всегда бесконечна и поэтому всегда исключается из этого списка».
https://users.ece.cmu.edu/~koopman/crc/notes.html
Вики Хемминга объясняет связь между обнаружением битовых ошибок и расстоянием Хэмминга: «код С называется k обнаружением ошибок, если и только если минимальное расстояние Хемминга между любыми двумя из его кодовых слов равнопо крайней мере, k + 1 «Как вы сказали,« все CRC имеют бесконечную длину данных при HD = 2 », что означает, что все CRC могут обнаруживать любую ошибку в одном бите независимо от длины сообщения.
Что касается «оптимальной длины для HD = 3», что означает возможность обнаружения 2-битной ошибки, рассмотрим регистр сдвига с линейной обратной связью на основе полинома CRC, инициализированный любым не-нулевое значение, если вы будете циклически повторять регистр достаточно времени, он вернется к исходному значению.Для битового CRC, основанного на n + 1-битном примитивном полиноме, регистр будет циклически перебирать все 2 ^ n - 1 ненулевых значений перед повторением.Максимальная длина сообщения (то есть длина данных плюс длина CRC), при которой невозможно обнаружить 2-битную ошибку, составляет 2 ^ n - 1. Для сообщения длиной 2 ^ n или больше, тогда длялюбое «i», если бит [0 + i] и бит [(2 ^ n) -1 + i] имеют ошибку, примитивный CRC не сможет обнаружить 2-битную ошибку.Если полином CRC не является примитивным, максимальная длина для обнаружения неисправного бита ошибки 2 будет уменьшена, а не "оптимальной".
Для регистра сдвига с линейной обратной связью на основе любого полинома CRC, инициализированного для любого не- нулевое значение, независимо от того, сколько раз оно повторялось, оно никогда не будет содержать нулевого значения.Это один из способов объяснить, почему «все CRC имеют бесконечную длину данных при HD = 2» (способны обнаруживать ошибки в одном бите).