Перепишем условия (9) следующим образом:
(10)
Так как разряды
попадают только в одно из множеств
, то они однозначным образом находятся из уравнений (10).
(11)
Разряды – степени числа 2 называются контрольными, их
, остальные
разряды называются информационными. Информационные разряды заполняются произвольным образом, формируя множество кодовых слов, их будет
, контрольные разряды вычисляются по информационным в соответствии с уравнениями (11).
Найдем число контрольных разрядов, если длина кодового слова равна
.
или
, где
минимальное натуральное число, удовлетворяющее этому неравенству. Это условие можно записать следующим образом:
,
что, по определению, означает
.
Докажем, что код Хэмминга исправляет одну ошибку типа замещения.
Пусть
посланное кодовое слово, принадлежащее коду Хэмминга,
это же слово, полученное при передаче, и пусть ошибка произошла в
-том разряде:
.
Исправить ошибку означает установить номер разряда с ошибкой, то есть найти, чему равно
.
По полученному слову
найдем числа
:
,
где
– сумма по модулю
.
Утверждается, что число
– двоичный код числа
.
Действительно, пусть
, покажем, что
.
Пусть
, тогда число
, то есть номер разряда с ошибкой, не входит в множество
и
.
Пусть
, тогда число
(номер разряда с ошибкой) входит в множество
и
.
Таким образом,
и номер разряда с ошибкой
.
Пример 9. Построить код Хэмминга для кодирования 10 букв
.
Решение. Найдем число информационных разрядов для кодирования 10 букв. Их, очевидно, должно быть 4:
, но трех информационных разрядов недостаточно, так как
. Информационными разрядами будут
, контрольными разрядами будут
, что согласовывается с формулой
. Длина кодового слова равна 7, все числа от 1 до 7 кодируются трехразрядными двоичными кодами
. Дальше осталось произвольным образом заполнить информационные разряды и найти по формулам (11) контрольные (табл. 27).
Таблица 27
|
|
|
|
|
|
| |
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
| |||||||
|
Буква
закодировалась словом 0010110, пусть при передаче произошла ошибка в пятом разряде, то есть
. Найдем номер разряда с ошибкой по полученному слову.

Номер разряда с ошибкой равняется
.
Часто даются кодовые слова некоторого равномерного кода, состоящие только из информационных разрядов, которые надо закодировать кодом Хэмминга.
Пример 10. Пусть
– кодовое слово, состоящее из информационных разрядов. Заполним все разряды, не являющиеся степенями числа 2, для контрольных разрядов оставим свободные места; число их, а также длина слова найдутся автоматически:
.
Контрольными разрядами оказались
. Числа от 1 до 12 кодируются четырехзначными двоичными кодами и образуют 4 подмножества:
.


Заполнив контрольные разряды, получим кодовое слово в коде Хэмминга:
.
Пример 11. Пусть
– кодовое слово, закодированное кодом Хэмминга, полученное в процессе передачи. Найдем номер разряда с ошибкой, если ошибки нет, то метод Хэмминга даст в качестве такого номера 0.
Решение. Длина слова равна 14, все числа от 1 до 14 кодируются четырехразрядными двоичными кодами
и образуют 4 подмножества:

,

Номер разряда с ошибкой
, следовательно,
, было послано слово
,
уберем из него все контрольные разряды, найдем кодовое слово, состоящее только из информационных разрядов:
.






