Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
110607_INF_UChPOS-2_v9.doc
Скачиваний:
30
Добавлен:
08.11.2018
Размер:
3.4 Mб
Скачать

9.1.4. Инверсный код

Данный код является кодом вида (2´k, k). Если в исходной кодовой комбинации четное число единиц, то добавляемые контрольные символы совпадают с исходной кодовой комбинацией. Если же в исходной кодовой комбинации нечетное число единиц, то добавляемые контрольные символы являются инверсией разрядов кодовой комбинации.

9.2. Корректирующие коды

9.2.1. Код Хемминга

Кодом Хемминга называется групповой код с кодовым расстоянием равным 3, позволяющий исправлять одиночные ошибки.

Для кода Хемминга справедливо равенство:

k = n - log(n + 1)

Данное уравнение имеет целочисленные решения при k = 0, 1, 4, 11, 26. Этим решениям соответствуют коды Хемминга: (3, 1)-код, (7, 4)-код, (15, 11)-код, и т. д.

Для построения кода Хемминга необходимо выполнить следующие действия:

  1. Построение подматрицы A информационных разрядов порождающей матрицы.

  2. Построение подматрицы B проверочных разрядов порождающей матрицы.

  3. Объединение подматриц A и B и построение порождающей матрицы G.

  4. Формирование проверочной матрицы H.

Пусть передается сообщение v, а при передаче данных произошла ошибка и получено сообщение v'. Для обнаружения и исправления ошибки воспользуемся следующим алгоритмом:

  1. Умножим кодовую комбинацию на транспонированную проверочную матрицу HT и определим синдром ошибки f:

f = v'HT.

  1. Если вектор f содержит все нулевые компоненты, то искажения кодовой комбинации не произошло и выполнение алгоритма завершается.

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

Рассмотрим пример построение (7, 4)-кода Хемминга:

1. Построение подматрицы A информационных разрядов порождающей матрицы:

1 0 0 0

0 1 0 0

A =

0 0 1 0

0 0 0 1

2. Построение подматрицы B проверочных разрядов порождающей матрицы.

0 1 1

1 0 1

B =

1 1 0

1 1 1

3. Объединение подматриц A и B. Построение порождающей матрицы G.

1 0 0 0 0 1 1

0 1 0 0 1 0 1

G =

0 0 1 0 1 1 0

0 0 0 1 1 1 1

4. Формирование проверочной матрицы H.

0 1 1 1 1 0 0

H = 1 0 1 1 0 1 0

1 1 0 1 0 0 1

Пусть передается сообщение v, v = 1101001, а при передаче данных произошла ошибка и получено сообщение v', v' = 1111001. Умножим кодовую комбинацию на транспонированную проверочную матрицу HT и определим синдром ошибки f:

001

101

110

1111001 = 111 = 110

100

010

001

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]