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

2. 5. Коды бчх, исправляющие две ошибки

Рассмотрим класс двоичных циклических кодов, которые обнаруживают и исправляют любые t - кратные ошибки. Это так называемые коды Боуза-Чоудхури-Хоквингема ( или, кратко, коды БЧХ ).

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

Пусть n = 2 r - 1 - длина кода Хэмминга, r - число проверочных символов кодовых слов Hr ,

Hr = [ 1 , 2 , 3 ,..., 2 r - 1]

- проверочная матрица размерности ( r  2 r - 1 ) кода Hr.

Построим проверочную матрицу Hr' обобщённого кода Хэмминга, исправляющего две ошибки, путём добавления ещё r строк к проверочной матрице Hr кода Хэмминга следующим образом:

1 2 3 . . . 2 r - 1

Hr' = f(1) f(2) f(3) . . . f(2 r - 1) ,

где f(i) - некоторая функция, отображающая r - мерные вектора в r - мерные вектора.

Допустим, что произошли две ошибки - на позициях i и j. Нам необходимо выбрать функцию f(i) так, чтобы декодер по синдрому S принятого слова x' мог найти i и j.

Т ак как i + j к 1

S = H'x'T = Hi' + H'j = f(i) + f(j) = к 2 ,

то для обнаружения двух ошибок необходимо декодеру решить систему уравнений:

 i + j = к 1 ,

 f(i) + f(j) = к 2 .

Можно проверить, что при выборе функции f(i) = i3 система имеет ровно два решения i и j.

В самом деле при f(i) = i 3 имеем:  i + j = k 1 ,

 i3 + j3 = k 2 ,

откуда при к 1  0 находим, что

 i + j = k 1 ,

 i * j = k21 + к 2 / к 1 ,

т.е. i и j являются корнями уравнения

Z 2 + k 1 Z + k21 + к 2 / к 1 = 0.

Таким образом, проверочная матрица Hr' искомого кода принимает вид:

1 2 3 . . . 2 r - 1

Hr' = 1 3 2 3 3 3 . . . (2 r - 1) 3 ,

а его параметры - n = 2 r - 1 , k = n - 2 r , d = 5.

Заметим, что для операций над r - мерными векторами удобно интерпретировать каждый двоичный вектор как некоторый двоичный полином степени не больше r - 1, а сами операции выполнять над соответствующими полиномами по модулю неприводимого над GF(2) полинома М(х) степени r. Тогда результат любой операции будет полином степени не выше r - 1, и которому будет соответствовать r - мерный вектор.

В частности, при r = 3, М( х ) = х 3 + х + 1 двоичный код БЧХ длины 7, исправляющий две ошибки, имеет проверочную матрицу:

0 0 0 1 1 1 1

0 1 1 0 0 1 1

1 0 1 0 1 0 1

Hr' = 0 0 1 1 1 1 0

0 1 0 0 1 1 1

1 1 0 1 0 1 0

Здесь

0120х 2 +  1х +  2 ,

т.е. каждому 3 -мерному вектору сопоставлен полином 3-й степени и все операции выполнены по модулю М( х ) = х 3 + х + 1 в поле GF(2).

На практике для построения проверочной матрицы Hr' кода БЧХ необходимо воспользоваться степенными представлениями элементов полей Галуа. Так, например, проверочной матрице H3 кода H3 соответствует матрица

H3 = [ 1   23456 ] ,

а проверочной матрице H3' кода БЧХ -

1   23456

H3' = ,

1 3625   4

где   GF(2 3) - корень уравнения  3 +  + 1 = 0.

В общем случае можно доказать, что таким образом построенный код

БЧХ является циклическим кодом с порождающим полиномом

g ( x ) = М ( х ) М 3 ( х ) ,

где М ( х ) и М 3( х ) - минимальные полиномы элементов  и  3 соответственно.

2.5.1. Найти степенные представления элементов поля GF(2 4) и построить соответствующую проверочную матрицу кода БЧХ.

2.5.2. Определить все примитивные полиномы поля GF(2 4).

2.5.3. Разработать алгоритм декодирования кодов БЧХ.

2.5.4. Доказать, что коды БЧХ являются циклическими кодами.

2.5.5. Доказать, что код БЧХ с порождающим полиномом

g ( x ) = М ( х ) М 3( х ) имеет кодовое расстояние равное 5.

2.5.6. Найти все корни полинома g ( x ) = М ( х ) М 3( х ).

2.5.7. Построить троичный код БЧХ, исправляющий две ошибки.

2.5.8. Построить двоичный код БЧХ, исправляющий более двух ошибок.

2.5.9. Определить кодовое расстояние циклического кода по порождающему полиному g ( x ).

2.5.10. Пусть g (x) имеет d корней  , 2 , . . . , d - 1. Установить связь между d и минимальным расстоянием кода БЧХ с порождающим полиномом g ( x ).

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