2011-02-24 2 views
1

Когда передача данных подделана 1 бит или 2 бита, может ли приемник правильно ее исправить?Имеет ли CRC следующую функцию

+0

Какой алгоритм CRC? Сколько бит? Этот вопрос действительно довольно расплывчатый. Прочтите ссылку [wikipedia link] (http://en.wikipedia.org/wiki/Cyclic_redundancy_check) для получения дополнительной информации. –

+0

Чувак есть этот удивительный сайт, я думаю, его называют «wikipeida» или что-то в этом роде. Идк, вы должны это проверить. – rook

ответ

6

Нет, CRC является кодом обнаружения ошибок, а не кодом с исправлением ошибок.

Подробнее here

0

CRC в основном используется в качестве кода обнаружения ошибок с. Если общее количество бит (в том числе в CRC) меньше, чем период CRC, тем не менее, можно исправить однобитовые ошибки, вычислив синдром (xor вычисленный и полученный CRC). Каждый бит, если будет изменен индивидуально, генерирует уникальный синдром. Можно выполнить итерацию алгоритма CRC, чтобы найти синдром, который будет связан с каждым битом; если вы обнаружите синдром, связанный с каждым битом, его можно перевернуть и исправить однобитовую ошибку.

Одна из основных опасностей при этом заключается в том, что CRC будет гораздо менее полезен для отказа от фиктивных данных. Если вы используете 8-битный CRC в пакете с 15 байтами данных, только один из 256 случайных пакетов прошел бы срок действия, но половина всех случайных пакетов могла бы быть «скорректирована», перевернув один бит.

+0

Для этого CRC должен иметь возможность обнаруживать все ошибки 1 и 2 бит. – philcolbourn

+0

@philcolbourn: Если CRC имеет период N, единственными двухбитными ошибками, которые он не сможет обнаружить для ввода произвольной длины, будут те, где ошибки несколько кратно N бит друг от друга. Если входной поток равен N битам или короче, все двухбитовые ошибки будут обнаружены. – supercat

+0

Да, это звучит правильно. Я думаю, что N очень большой - больше, чем у большинства пакетов или фреймов для 16 и 32-битных CRC. Но для 8-битных CRC это может быть проблемой - не так ли? – philcolbourn

Смежные вопросы