Дистанция Хэмминга между сообщениями A и B равна трем, между B и
C также трем, а между A и C — четырем.
Допустим пришло сообщение X = 100010. Дистанция Хэмминга между
сообщениями A и X равна двум, между B и X одному, а между C и X —
четырем. Если в передаваемом сообщение возможно возникновение не бо-
лее одной ошибки, можно сделать вывод, что пришло сообщение B с одной
ошибкой.
Ниже приводится пример самовосстанавливающегося кода Хэмминга, об-
ладающего способностью обнаружить одну ошибку и определить номер её
разряда.
Предположим, что имеется код, содержащий m информационных разря-
дов. В него добавляется k контрольных разрядов. Число k определяется как
минимальное целое число, удовлетворяющее соотношению
2
k
> m + k. (4.2)
Контрольные разряды располагаются в позициях, номера которых пред-
ставляют собой степень двойки, т.е. 1, 2, 4, 8, 16 и т.д.
Каждый из k контрольных разрядов обеспечивает контроль четности для
одной из k групп. В группу i-го контрольного разряда входят те разряды,
в двоичной записи номеров которых есть единица на том же месте, что и в
двоичной записи номера i-го контрольного разряда. Таким образом в первую
группу войдут разряды с номерами 1, 3, 5, 7, 9, 11, 13, 15 и т.д. Во второй
группе окажутся элементы с номерами 2, 3, 6, 7, 10, 11, 14, 15 и т.д. В тре-
тьей — 4, 5, 6, 7, 12, 13, 14, 15, 20, . . ., в четвертой — 8, 9, 10, 11, 12, 13, 14,
15, 24, . . ., и т.д.
При проверке сообщения определяется четность каждой из k групп. Если
все группы дали значение 0, т.е. в каждой из них оказалось четное количество
единиц — сообщение без ошибок. В противном случае полученные значения
чётностей, записанные справа налево, дадут двоичную запись номера разря-
да, в котором произошла ошибка.
Пример. Пусть имеется сообщение 11011100100101, содержащее 14 инфор-
мационных разрядов. Тогда из соотношения (4.2) находим, что k = 5.
Разместим сначала информационные разряды.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
k
1
k
2
m
1
k
3
m
2
m
3
m
4
k
4
m
5
m
6
m
7
m
8
m
9
m
10
m
11
k
5
m
12
m
13
m
14
1 1 0 1 1 1 0 0 1 0 0 1 0 1
Теперь определим, какие разряды войдут в каждую из 5 контрольных
групп.
50