Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Корректирующие коды.doc
Скачиваний:
67
Добавлен:
18.04.2015
Размер:
208.9 Кб
Скачать

Корректирующие коды Хэмминга

Корректирующий код Хэмминга относится к категории неразделимых кодов. Если в разделимых (блочных) кодах все контрольные символы размещаются либо в начале, либо в конце кодовой комбинации, то в коде Хэмминга контрольные разряды располагаются среди информационных разрядов на определенных местах. В своей простейшей реализации этот код позволяет указать местоположение однократной ошибки и исправить ее. При этом двоичное представление кода ошибки соответствует в десятичной системе счисления номеру разряда, в котором найдена ошибка. Следовательно, легче формализовать процесс корректировки ошибок, а также нет необходимости в составлении таблицы кодов-опознавателей местоположения ошибок и хранении её на приёмной стороне.

Составление кода, с заданным количеством информационных разрядов nи необходимым количеством контрольных разрядовk, начинается с записи контрольных уравнений. Первое контрольное уравнение, по методу Хэмминга, включает те позиции кода, номера которых в двоичном представлении содержат единицу в крайнем правом разряде, т.е.1 (0001), 3 (0011) ,5 (0101) ,…

Второе контрольное уравнение включает позиции, номера которых в двоичном представлении содержат единицу во втором разряде справа, т.е. 2 (0010) , 3 (0011) ,6 (0110) ,

Продолжая, таким образом, рассуждения, можно получить следующие контрольные уравнения:

При этом на позициях 1, 2, 4, 8, 16, … располагаются контрольные разряды.

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

Пример.

Пусть n=4, k=3.

Запишем образующую матрицу:

В информационные разряды записывается единичная матрица размером n×n. Контрольные разряды заполняются так, чтобы в результате расчета контрольных уравнений получались нули.

Используя эту матрицу можно получить все необходимые кодовые комбинации путем суммирования строк матрицы по модулю два в различных сочетаниях.

Руководствуясь вышеизложенным алгоритмом, запишем контрольные уравнения:

Допустим, передали комбинацию 31строки:1 0 1 1 0 1 0, а на приемной стороне получили1 0 1 0 0 1 0.

Осуществляется проверка:

,

Полученная кодовая комбинация записывается в обратном порядке (снизу ввверх) и переводится в число десятичной системы счисления. Получается номер разряда, содержащего ошибку.

f2 f1 f0 = 100 =410– ошибка в четвертом разряде (а4).

После обнаружения ошибки на приемной стороне 4-й разряд принятой кодовой комбинации должен быть инвертирован (операция «НЕ»), в результате ошибка устраняется.

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

9