Код Хэмминга

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 87.117.36.1 (обсуждение) в 08:22, 10 марта 2007 (оформление). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Коды Хемминга — простейшие линейные коды с минимальным расстоянием 3, то есть способные исправить одну ошибку. В коде Хемминга вводится понятие кодового расстояния (расстояния между двумя кодами), равного числу разрядов с неодинаковыми значениями. Возможности исправления ошибок связаны с минимальным кодовым расстоянием . Исправляются ошибки кратности и обнаруживаются ошибки кратности (здесь ent означает «целая часть»). Так, при контроле на нечетность и обнаруживаются одиночные ошибки. В коде Хемминга . Дополнительно к информационным разрядам вводится избыточных контролирующих разрядов, где  — число информационных разрядов, округляется до ближайшего большего целого значения. - разрядный контролирующий код есть инвертированный результат поразрядного сложения (то есть сложения по модулю 2) номеров тех информационных разрядов, значения которых равны 1.

П р и м е р 1. Пусть имеем основной код 100110, то есть К = 6. Следовательно, L = 3 и дополнительный код равен

010 # 011 # 110 = 111,

где # — символ операции поразрядного сложения, и после инвертирования имеем 000. Теперь вместе с основным кодом будет передан и дополнительный. На приемном конце вновь рассчитывается дополнительный код и сравнивается с переданным. Фиксируется код сравнения (поразрядная операция отрицания равнозначности), и если он отличен от нуля, то его значение есть номер ошибочно принятого разряда основного кода. Так, если принят код 100010, то рассчитанный в приемнике дополнительный код равен инверсии от 010 # 110 = 100, то есть 011, что означает ошибку в 3-м разряде.

П р и м е р 2. Основной код 1100000, дополнительный код 110 (результат инверсии кода 110 # 111 = 001). Пусть принятый код 1101000, его дополнительный код 010, код сравнения 100, то есть ошибка в четвертом разряде.