УДК 004.021
АНАЛОГ СПИСОЧНОГО ДЕКОДЕРА В.М. СИДЕЛЬНИКОВА ДЛЯ БЧХ-КОДОВ
© 2011 г. А.Ю. Бибов, В.М. Деундяк
Южный федеральный университет, ул. Мильчакова, 8, г. Ростов-на-Дону, 344090
Southern Federal University, Milchakov St., 8, Rostov-on-Don, 344090
Получено распространение вероятностного декодера В. М. Сидельникова на семейство кодов Боуза—Чоудхури—Хоквингема, построен соответствующий алгоритм декодирования. Для построенного алгоритма декодирования выполнена программная реализация.
Ключевые слова: помехоустойчивое кодирование, списочный декодер, коды БЧХ, декодер Сидельникова, вероятностный декодер.
The distribution of probabilistic Sidelnikov decoder to BCH-codes family had been obtained, the respective decoding algorithm had been built and implemented In the paper.
Keywords: error correction codes, list decoding, BCH-codes, Sidelnikov decoder, probabilistic decoder.
В работе [1] рассмотрен вероятностный метод декодирования кодов Рида-Соломона, который позволяет исправлять ошибки в случае, когда их число превосходит половину кодового расстояния. Указанный декодер можно понимать как разновидность списочного, в [2] он обобщен А.Ю. Серебряковым на некоторый класс одноточечных алгебро-геометрических кодов на эллиптических кривых. Программная реализация декодера Серебрякова рассмотрена в [3]. Цель настоящей работы - распространение метода Сидельникова на семейство кодов БЧХ, построение соответствующего алгоритма декодирования и его программная реализация на основе библиотеки вБЬ, представленной в [4].
Предварительные сведения
Приведем необходимые сведения о БЧХ-кодах [5, гл. 5]. Пусть N - множество натуральных чисел; д > 2 -
степень простого числа; Ядп (с Гд [х]) - кольцо многочленов над полем Галуа Гд степени, не превосходящей
п(е N), с умножением по модулю х -1. Известно, что Яд п является кольцом главных идеалов. Кольцо Яд п естественно изоморфно как линейное пространство пространству Хемминга Г^ . Если а(х) е Яд п, то соответствующий вектор коэффициентов из ГП будем обозначать а . Идеалу кольца Яд п соответствует инвариантное подпространство оператора правого циклического сдвига, которое называется циклическим кодом. Порождающий многочлен всякого идеала в Яд , п называется
порождающим многочленом соответствующего циклического кода.
Пусть ё е N и ё > 3. Рассмотрим последовательность И^ (а,Ъ,ё)= {хЪ,аЪ+\...,аЪ+ё-2} где аеР г ,
г е N, а все элементы различны. Циклический код, построенный по элементам N^ (а, Ъ, ё) как по нулям,
называется кодом БЧХ, а параметр ё - конструктивным кодовым расстоянием, или расстоянием Боуза. Для кодового расстояния Б построенного таким образом кода известна оценка Б > ё ; длина п равна порядку элемента а . Размерность к и порождающий многочлен g (х) определяются по формулам: к = п-2¿е§(та(х)), g(х) = Пта(х), где та - минимальный многочлен элемента а над полем Р.
q •
суммирование и произведение ведутся по всем попарно несопряженными элементам последовательности N г (а, Ъ, ё).
Алгоритм декодирования при t >
d -1
Рассмотрим последовательности элементов из по-
лей р. и F r соответственно:
q q
X
(1)
^n,r
1
ßl ßl2
1
ßr
mb mb+1 ß2 mb+2
ßn ... ßn mb+n
где r < n и n e N ^ {o};
mb+n - r mb+n - r+1 mb+n-r+2
mb+2n-r
(2)
DU (уь-.у ) =
У1
У2
У1
Уг 2
mb mb+1
Уг mb+2
yU
mb+U -1
mb+u-r mb+u-r+1
mb+u-r+2 mb+2u-r
-1
Ou (Ух,...Уг )= n(y - yj )l Du (Уъ...,Уг ) l i > j )
(3)
(4)
Отметим, что при Ъ = 0 обозначения (2)-(4) совпадают с соответствующими обозначениями из [1].
Приведем леммы, составляющие теоретическую основу списочного декодера для БЧХ-кодов. Заметим, что эти леммы являются обобщением соответствующих лемм из [1], а их доказательства проводятся по схеме доказательств из [1].
Лемма 1. Если Д пг - детерминант, определенный
в (2), и е N, то:
1) Ди-1 г Ф 0 и Дпг = 0 при п > и ;
2) если 0' = {сй1,®2,...,юг-1}с Р г \ {0}, где г <и,
ч
то рациональная функция Ои(у,ю1,й2-..,йг-1) является многочленом. Кроме этого, справедливо равенство
Ou (у, ß1, ß2,...,ßr-1 ) = С П (у-ß j ).
J=r
Лемма 2. Пусть Q' = {coi,ro2,---,c°r-i}cFr \{ü},
причем r < u, тогда:
1) если Ou (y, юь ®2...,®r-1) -
ненулевой много-
а
член степени и - г + 1, разложимый в поле Р^г,
О" = (юг,юг+1,...,сои) - его корни, О'п>О" = 0 и О' ^ О" с Р^г, то найдутся такие элементы hj (е Р г)
формуле
что
г
ф q моменты
u
вычисляются по
тъ+1 = 2 hjюЪ+1, 1 = 0,...2и - г, причем hj Ф 0, когда j=1
]' = г,...и. Если ненулевой многочлен Ои (у, й2:...,®г-1) имеет степень, меньшую и - г + 1, то моменты тъ+1 не могут быть представле-
и ,
ны в виде тъ+1 = 2 hj ю- 1, 1 = 0,...2и - г для
j=1
где и < ч -1 и р1 ф р j при 1Ф ] . Отметим, что элементы Р1,...,Р„ должны быть ненулевыми, в то время как среди к1,...,ки могут встречаться нули.
Введем некоторые новые конструкции. Пусть Ъ е N ^{0}, обозначим
юг,юг+1,...,юи и hl,h2,....hu из произвольных расширений полей Р г и Р. соответственно;
2) многочлен Ои(у,Ю1,Ю2,...,юг-1) является нулевым тогда и только тогда, когда моменты могут быть
представлены в виде mb+¡ = Z h ю
b+i
j=1
j j
где
1 = 0,...2и - г и V < и .
Леммы 1, 2 позволяют построить вероятностный алгоритм декодирования в случае, когда число ошибок известно и превосходит половину кодового расстояния Боуза.
Алгоритм 1
Вход: / - число ошибок; VN - вектор, искаженный ровно / ошибками.
Выход: VR - кодовый вектор.
1. Вычислить синдром « по формуле:
а „6+1
а 2b „2(b+1)
1 ab+d - 2 а 2(b+d-2)
a(n-1)b (n-Ф+1)
(n-1)(b+d - 2)
Vn . (5)
2. Сгенерировать случайное число r < u, затем выбрать случайным образом r - элементное подмножество Q' = {ci,®2,...,cor} множества N^ (a,b,d).
3. Построить определитель Dt (y, oi,...,cor) в соответствии с (3).
4. Найти множество Q'' корней многочлена Ou (y, oi,...,cor), определяемого в соответствии с (4).
2
1
1
s =
5. Проверить, выполнены ли условия:
6. Если
= 0, Q'^Q'cFr, |Q"| = t - r . Если
эти
условия выполнены, перейти на шаг 6, иначе перейти на шаг 2.
6. Решить систему уравнений
2. r := 0, K := 0, C := 0, n :=
d -1 + r 2
. Выбрать слу-
чайным путем подмножество (jßi, ß2 ,...,ßr ) c И. 3. C := C +1. Сформировать определитель:
А n,r =
1
ßl ß2
ßn
i
тъ
ßr mb+l ß2 тЪ+2
ßn тЪ+n
тЪ+n - r тЪ+n-r+1 тЪ+n-r+2
тЪ+2n - r
A„,r * 0
n <
d -1 + r 2
положить
2 кУ+' = тъ+1, I = 0,.../-1.
уеО ' иО "
Если решение принадлежит полю Гд , перейти на
шаг 6, иначе - перейти на шаг 2.
7. С помощью множества позиций ошибок О" и О" и множества соответствующих им значений ошибок {ку} вычислить вектор ошибок е .
8. Вычислить Уя := VN - е. Возвратить Уя и выйти из алгоритма.
Следует отметить, что скорость работы алгоритма существенно зависит от того, когда на шаге 6 появится решение соответствующей системы, принадлежащее полю Гд .
Заметим также, что на входе алгоритма 1 в качестве / можно использовать оценку сверху числа реально произошедших ошибок. Такую оценку можно получить, применяя следующий эвристический алгоритм определения числа ошибок.
Алгоритм 2
Вход: УN - вектор, искаженный ошибками; 0 < е < 1 - затравочный коэффициент; параметр Q определяет порог прерывания алгоритма.
Выход: / - оценка количества ошибок в векторе УN, или ошибка зацикливания.
1. Вычислить синдром « вектора Уы по формуле (5).
/ := п + 1 и выйти из алгоритма.
7. Если С > Q, выдать ошибку зацикливания и выйти из алгоритма.
8. Если К > 0, перейти на шаг 11; если К = 0, перейти на шаг 9.
9. Если г = 0, то положим г = 1, если ё -1 - нечетное; или г = 2, если ё -1 - четное число. В противном случае г := г + 2 .
10. Вычислить p :=
Cr
Cn
Cr
C и
K := ln(1 -s)
' : ln(1 - p) '
4. Если Апг = 0 и п > г, то п := п -1 и перейти на шаг 3.
5. Если Апг = 0 и п = г, положить / := г и выйти из алгоритма.
11. Выбрать случайным образом множество (ß1 ,ß2, ...ßr)c«. K := K-1. Перейти на шаг 3.
Описанные в настоящей работе алгоритмы реализованы с использованием библиотеки GFL, предназначенной для вычислений в конечных полях [4].
Выводы
Коды БЧХ, вообще говоря, не являются MDS-кодами и поэтому уступают с точки зрения числа исправляемых ошибок кодам Рида-Соломона. Однако благодаря конструктивному построению БЧХ-коды не имеют столь жестких ограничений на длину и размерность. Ввиду этого они находят применение в тех случаях, когда использование кодов Рида-Соломона оказывается затруднительным [5]. Таким образом, представленный в настоящей статье декодер имеет в некотором смысле более широкий спектр применения, нежели декодер Сидельникова.
Литература
1. Сидельников В.М. Декодирование кодов Рида-Соломона
при числе ошибок, большем (d-1)/2, и нули многочленов нескольких переменных // Проблемы передачи информации. 1994. Т. 30, вып. 1. С. 51-69.
2. Серебряков А.Ю. Декодирование кодов на эллиптиче-
ских кривых при числе ошибок, большем половины конструктивного кодового расстояния // Проблемы передачи информации. 1997. Т. 33, вып. 3. С. 29-38.
3. Деундяк В.М., Харченко Д.В. О реализации помехо-
устойчивых кодеков на эллиптических кривых с использованием алгоритмов декодирования Серебрякова // Вестн. ДГТУ. 2005. Т. 5, № 1 (23). С. 14-119.
4. Бибов А.Ю. О новой библиотеке для вычислений в конеч-
ных полях и ее применении в реализации кодека Сидель-никова // Уравнения смешанного типа и родственные проблемы анализа и информатики: материалы Междунар. Российско-Абхазского симп. 2009. Нальчик, С. 261-262.
5. Сидельников В.М. Теория кодирования. М., 2008. 175 с.
Поступила в редакцию
7 сентября 2010 г.
и