Телекоммуникационные технологии. Том 1



         

Коррекция ошибок - часть 2


В данном случае это 11, 10, 9, 5 и 3. Вычислим контрольную сумму:
11 =1011
10 =1010
09 =1001
05 =0101
03 =0011

s =

1110

Таким образом, приемник получит код:

Позиция бита:1110987654321
Значение бита:11110011110

Просуммируем снова коды позиций ненулевых битов и получим нуль.

11 =1011
10 =1010
09 =1001
08 =1000
05 =0101
04 =0100
03 =0011
02 =0010

s =

0000

Ну а теперь рассмотрим два случая ошибок в одном из битов посылки, например, в бите 7 (1 вместо 0) и в бите 5 (0 вместо 1). Просуммируем коды позиций ненулевых бит еще раз.

11 =1011
10 =1010
09 =1001
08 =1000
07 =0111
05 =0101
04 =0100
03 =0011
02 =0010
s =0111
11 = 1011
10 =1010
09 =1001
08 =1000
04 =0100
03 =0011
02 =0010
s =0001

В обоих случаях контрольная сумма равна позиции бита, переданного с ошибкой. Теперь для исправления ошибки достаточно инвертировать бит, номер которого указан в контрольной сумме. Понятно, что если ошибка произойдет при передаче более чем одного бита, код Хэмминга при данной избыточности окажется бесполезен.

В общем случае код имеет N=M+C бит и предполагается, что не более чем один бит в коде может иметь ошибку. Тогда возможно N+1 состояние кода (правильное состояние и n ошибочных). Пусть М=4, а N=7, тогда слово-сообщение будет иметь вид: M4, M3, M2, C3, M1, C2, C1. Теперь попытаемся вычислить значения С1, С2, С3. Для этого используются уравнения, где все операции представляют собой сложение по модулю 2:

С1 = М1 + М2 + М4
С2 = М1 + М3 + М4
С3 = М2 + М3 + М4

Для определения того, доставлено ли сообщение без ошибок, вычисляем следующие выражения (сложение по модулю 2):

С11 = С1 + М4 + М2 + М1
С12 = С2 + М4 + М3 + М1
С13 = С3 + М4 + М3 + М2

Результат вычисления интерпретируется следующим образом.

С11С12С13Значение
124Позиция бит
000Ошибок нет
001Бит С3 не верен
010Бит С2 не верен
011Бит М3 не верен
100Бит С1 не верен
101Бит М2 не верен
110Бит М1 не верен
111Бит М4 не верен

Описанная схема легко переносится на любое число n и М.




Содержание  Назад  Вперед