Примитивность полиномов CRC - PullRequest
0 голосов
/ 01 марта 2019

Я обнаружил в сети следующее о производительности CRC:

Примитивный полином.Это имеет оптимальную длину для HD = 3 и хорошую производительность HD = 2 выше этой длины.

Я не понимаю.Оптимальная длина для HD = 3 понятна;но что значит хорошая производительность HD = 2?AFAIK все CRC имеют бесконечную длину данных при HD = 2.

Так что же означает «хорошая производительность HD = 2 выше этой длины» для примитивных полиномов?

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Автор сказал: «Обычно примитивные полиномы имеют тенденцию иметь довольно хорошие (то есть, низкие) веса при HD = 2 по сравнению со многими другими полиномами. С тех пор, как я посмотрел, прошло некоторое время, но я думаю, что во всех случаях прямо вышеHD = 2 точка останова, полином с наименьшим весом всегда был примитивным. "

Для некоторых реализаций алгоритма малый вес может обеспечить более быстрое вычисление.

0 голосов
/ 01 марта 2019

... имеет оптимальную длину для 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» (способны обнаруживать ошибки в одном бите).

...