УДК 004.056.55 АЛГОРИТМ РЕАЛИЗАЦИИ КОДИРОВАНИЯ И

advertisement
УДК 004.056.55
АЛГОРИТМ РЕАЛИЗАЦИИ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ КОДОВ
БОУЗА-ЧОУДХУРИ-ХОКВИНГЕМА В ЦИКЛИЧЕСКИХ КОДАХ
Острянин А.И.
Евразийский национальный университет им. Л.Н.Гумилева, Астана
Научный руководитель – к.ф-м.н, доцент Ташатов Н.Н.
Коды БЧХ [1] представляют собой обширный класс кодов, способных исправлять
многократных пакетов ошибок и занимают заметное место в теории и практике
кодирования. Интерес к кодам БЧХ определяется тем, что они позволяют исправлять
любое наперед заданное число ошибок и для них существуют эффективные алгоритмы
кодирования и декодирования и обладают оптимальными свойствами.
Порождающий многочлен циклического кода можно представить в следующем
виде
, где
– минимальные многочлены
корней
.
Пусть элементы
— корни порождающего многочлена
. Тогда
(1)
В результате получаем уравнений, содержащих только величины, определяемые
ошибками и не зависящие от кодового слова. Если эти уравнения можно разрешить
относительно , то можно определить многочлен ошибок. Нужно выбрать таким образом,
чтобы система
уравнений могла быть решена относительно каждый раз, когда не
более неизвестных отличны от нуля.
Для произвольного циклического кода с порождающим многочленом
, имеющим
корни
, определим компоненты синдрома
(2)
Эти элементы поля отличны от синдромного многочлена
, но содержат
эквивалентную информацию. Нужно подобрать
так, чтобы по
можно
было найти ошибок. В качестве таких можно взять степени
примитивного элемента
поля
.
Определение 1. Пусть заданы q и m , и пусть
– любой элемент поля GF(q m )
порядка п . Тогда для любого положительного целого числаt соответствующий код БЧХ
является
циклическим
кодом
длины
п
с
порождающим
многочленом
, где
— минимальный многочлен элемента
.
Определение 2. Б Ч Х коды длины
называются примитивными.
Таким образом, для того, чтобы построить порождающий многочлен примитивного
БЧХ кода нужно задать следующий алгоритм:
1. Задать длину кода
и число ошибок, которые необходимо исправлять.
2. Найти неприводимый многочлен степениm и построить поле
.
3. Найти примитивный элемент
в поле
.
4. Найти минимальные многочлены
для
над
5. Взять в качестве
Алгоритмов декодирования БЧХ-кодов много, но в данной статье был рассмотрен
самый эффективный: декодер
Питерсона-Горенстейна-Цирлера (ПГЦ), который
предполагает обращение двух матриц размера
. Пусть
– элемент поля
,
по которому строился код БЧХ, а
– количество ошибок, исправляемых кодом. Блоксхема данного алгоритма выглядит следующим образом:
Алгоритм ПГЦ следующий:
1. На вход алгоритму поступает принятое слово
2. Вычисляем компоненты синдрома
3. Полагаем
4. Строим матрицу
.
5. Вычисляем определитель матрицы
. Если он равен нулю, уменьшаем на
единицу и возвращаемся к шагу 4.
6. Обращаем матрицу
и вычисляем коэффициенты многочлена
:
=
7. Вычисляем корни многочлена
. Поскольку число элементов поля конечно,
обычно корни ищут процедурой Ченя. Эта процедура заключается в последовательном
вычислении
для каждого и проверки полученных значений на нуль.
8. Найдя корни, найдем локаторы ошибок (корни многочлена
являются
обратными к локаторам ошибок).
9. Если код код двоичный, то ошибки
известны. В противном случае вычислим
их:
=
10.
Исправляем в полученном слове ошибки, и получаем на выходе алгоритма
кодовое слово.
Литература
1. Блейхут Р. Теория и практика кодов, контролирующих ошибки. М.: Мир, 1986.
Download