- •Глава 7 помехоустойчивое кодиров 7.1. Классификация корректирующих кодов
- •7.2. Принципы помехоустойчивого кодирования
- •7.3. Систематические коды
- •7.4. Код с четным числом единиц. Инверсный код
- •7.5. Коды Хемминга
- •7.6. Циклические коды
- •7.7. Коды с постоянным весом
- •7.8. Непрерывные коды
- •7.9. Обобщение теории кодирования на недвоичные коды
- •7.10. Итеративные и каскадные коды
- •7.11. Адаптивные корректирующие коды
7.5. Коды Хемминга
К этому типу кодов обычно относят систематические коды с расстоянием d=З, которые позволяют исправить все одиночные ошибки (7.3).
Рассмотрим построение семизначного кода Хемминга, каждая комбинация которого содержит четыре информационных и три контрольных символа. Такой код удовлетворяет неравенству (7.11) и имеет избыточность:
æ![]()
(7.14)
(7.15)
Так как х равно 0 или 7, то всего может быть восемь контрольных чисел Х = Х;Х2х3 : 000,100,010,001,011,101,110 и 111. Первое из них имеет место в случае правильного приема, а остальные семь появляются при наличии искажений и должны использоваться для определения местоположения одиночной ошибки в семизначной комбинации. Выясним, каким образом устанавливается взаимосвязь между контрольными числами и искаженными символами. Если искажен один из контрольных символов е1,е'2 или е3, то, как следует из (7.15), контрольное число примет соответственно одно из трех значений: 100, 010 или 001. Остальные четыре контрольных числа используются для выявления ошибок в информационных символах. Порядок присвоения контрольных чисел ошибочным информационным символам может устанавливаться любой, например, как показано в табл. 7.1.

Нетрудно показать,
что этому распределению контрольных
чисел соответствуют коэффициенты
,
приведённые в табл.7.2.

Если подставить
коэффициенты
в выражение(7.15), то получим
(7.16)
При искажении одного из информационных символов становятся равными единице те суммы х, в которые входит этот символ. Легко проверить, Что получающееся в этом случае контрольное число Х=х1х2х3 согласуется с табл. 7.1. Нетрудно заметить, что первые четыре контрольные числа табл. 7.1. совпадают со столбцами табл. 7.2. Это свойство дает возможность при выбранном распределении контрольных чисел составить таблицу коэффициентов aji. Таким образом, при одиночной ошибке можно вычислить контрольное число, позволяющее по табл. 7.1. определить тот символ кодовой комбинации, который претерпел искажения. Исправление искаженного символа двоичной системы состоит в простой замене 0 на 1 или 1 на 0. В качестве примера рассмотрим передачу комбинации, в которой информационными символами являются с1с2с3с4 -1011. Используя формулу (7.14) и табл. 7.2., вычислим контрольные символы:

Передаваемая комбинация при этом будет с1с2с3с4 e1e2e3e4 -1011, 010. Предположим, Что принята комбинация 1001,010 (искажён символ с3). Подставляя соответствующее значение в (7.16), получим:

Вычисленное таким образом контрольное число X = x1x2x3 =110 позволяет, согласно табл. 7.1, исправить ошибку в символе.
Здесь
был рассмотрен простейший способ
построения и декодирования
кодовых комбинаций, в которых первые
места отводились
информационным символам, а соответствие
между
контрольными числами и ошибками
определялось таблицей.
Вместе с тем существует более простой
метод отыскания одиночных ошибок,
предложенный впервые самим Хеммингом.
При этом методе код строится так, что
контрольное число в
двоичной системе счисления сразу
указывает номер искаженного
символа. Правда, в этом случае контрольные
символы
необходимо располагать среди
информационных, что усложняет
процесс кодирования. Символы в комбинациях
должны размещаться в следующем порядке:
,
а контрольное число вычисляться по
формулам:
(7.17)
Так, если произошла
ошибка в информационном символе
,то контрольное
число
что
соответствует числу 5
в двоичной
системе.
В заключение отметим, что при появлении многократных ошибок контрольное число также может отличаться от нуля. Однако декодирование в этом случае будет проведено неправильно, так как оно рассчитано на исправление лишь одиночных ошибок.
