18684

Коды Хемминга с исправлением одиночной и обнаружением двойной ошибки

Доклад

Информатика, кибернетика и программирование

Коды Хемминга с исправлением одиночной и обнаружением двойной ошибки. Обычный код Хемминга исправляет одиночную ошибку.Необходимо знать сколько потребуется контрольных символов и куда их поставить. m число информационных символов k число контрольных символов ...

Русский

2013-07-08

38.47 KB

88 чел.

Коды Хемминга с исправлением одиночной и обнаружением двойной ошибки.

Обычный код Хемминга исправляет одиночную ошибку.
Необходимо знать сколько потребуется контрольных символов и куда их поставить.

m - число информационных символов

k - число контрольных символов

Система для кода Хемминга:

 (1)

 (2)

Система (2) позволяет найти контрольные символы.

Система (1) позволяет осуществлять декодирование.

a=1011 (a1=1, a2=0, a3=1, a4=1)

b=1110011

f=1100011

проверяем по системе (1):

- ошибка в 3ей позиции (a1).

Исправляем: 1100011.

Чтобы код Хемминга мог обнаруживать двойную ошибку, надо ввести еще одно уравнение для общей проверки на четность:

a=1001 (a1=1, a2=0, a3=0, a4=1)

a=10011001

b=10011000

При получении вектора f выполняем общую проверку на четность. Если она дает 0, то либо ошибок нет, либо есть двойная ошибка. Для этого нужна дополнительная проверка по трем уравнениям (1).

Если она будет нулевая, то ошибок нет. Если она ненулевая, то имеет место двойная ошибка (при этом она не указывает ни на какую позицию).

Если общая проверка нечетна, то имеется одиночная ошибка, место которой определяют 3 проверки по системе (1).

, одиночная ошибка.

, ошибка в 7ой позиции, исправляет 7ой разряд.

Введем двойную ошибку:

10011100

Общая проверка:

Проверяем по системе (1):

Следовательно, имеется двойная ошибка.