УДК 519.725.2
В Д. Милославская, П.В. Трифонов
ГИБРИДНЫЙ АЛГОРИТМ МЯГКОГО ДЕКОДИРОВАНИЯ КОДОВ РИДА-СОЛОМОНА
Коды Рида-Соломона широко используются в современных системах хранения и передачи информации. Классические алгоритмы декодирования, используемые в настоящее время, способны исправить (С-1)/2 ошибок в метрике Хэмминга, где С - минимальное расстояние кода. Однако они не способны полностью использовать корректирующую способность кодов Рида-Соломона. В частности, для несовершенных кодов исправимы некоторые конфигурации ошибок большего веса. Вместе с тем, декодирование в метрике Хэммин-га предполагает принятие жестких решений демодулятором, что сопряжено со значительными потерями информации о принятых сигналах. При использовании мягкого декодирования информация о надежности решений, принятых демодулятором, передается декодеру. Это обусловливает необходимость использования мягкого декодирования в современных системах хранения и передачи информации.
Для декодирования блоковых кодов могут применяться как алгебраические, так и комбинаторные алгоритмы. До недавнего времени отсутствовали алгоритмы мягкого декодирования кодов Рида-Соломона, сложность которых является полиномиальной функцией от параметров кода. Такой алгоритм, относящийся к алгебраическим, был предложен Кёттером и Варди в 2003 г. [3]. Однако его корректирующая способность далека от оптимальной. Достаточно давно известен комбинаторный метод Чейза, который в пределе сводится к декодированию по максимуму правдоподобия, но имеет сложность, выражающуюся экспоненциальной функцией от длины кода.
В данной статье рассматривается задача построения алгоритма мягкого декодирования кодов Рида-Соломона с большей корректирующей способностью, чем у известных аналогов. Предлагаемый подход представляет собой комбинацию послойного алгоритма, предназначенного для эффективной реализации интерполяционного шага метода Кёттера-Варди и метода Чейза.
Коды Рида-Соломона и их мягкое декодирование
Коды Рида-Соломона являются недвоичными линейными кодами, позволяющими исправлять ошибки в блоках данных.
(п, k, п^+1) код Рида-Соломона над полем Г есть множество векторов вида (£(х¡), ...,£(хп)),
£(х) = £ £х', £ е Г, х е Г.
0
Из данного определения видно, что точки (х, у), где у.=£(х ), должны лежать на одной кривой, задаваемой полиномом, степень которого меньше к.
Метод Кёттера-Варди. Исторически первый метод мягкого алгебраического декодирования кодов Рида-Соломона был предложен Кёттером и Варди [3].
Исходными данными для него являются условные вероятности Р{с =а)у}, вычисляемые демодулятором. Здесь с. - 7-й символ кодового слова, г. - соответствующие ему принятые сигналы, а - 7-й элемент поля Г.
На первом шаге метода Кёттера-Варди вероятности Р{с.=а.|г.} используются для построения матрицы кратностей корней М, элементами которой являются неотрицательные целые числа М , Вели-
V
чина М.^ является мерой близости 7-го символа принятого вектора к 7-му элементу конечного поля. Существуют различные методы построения матрицы кратностей корней; один из простейших задается соотношением М, 7 = • Р{с = а7 | г }] [3].
На втором шаге осуществляется интерполяция, т. е. построение полинома, имеющего корни (х ,у) кратности М , I = 0, ..., п-1,] = 0, ..., |Г|-1,' т. е. б[71,72](хг) = 0, 7 + 7 <Мг ], где $А'72 ](х., у7) - производная Хассе порядка (Д, 72) в точке (х., у). При этом интерполяционный полином $(х, у) должен иметь минимально возможную (1, к-1)-взвешенную степень.
Третий шаг заключается в факторизации построенного интерполяционного полинома 0(х,у). В результате факторизации находятся все поли-номыр(х) с коэффициентами из Г со степенью, не
превосходящей (¿-1), являющиеся корнями полинома Q(x, у) (то есть у - р(х) делит Q(x, у)).
Метод Кёттера-Варди позволяет найти все кодовые слова, удовлетворяющие неравенству
^^ М . (М. . +1) ^(с) >А(1,к_,)(N), где N = ХХ ' , -
1 =0 .=0 2 общее число уравнений; А(1 к -1:) (N) - минимальная (1, k -1)-взвешенная степень многочлена от двух
п-1
переменных, имеющего N членов; БМ (с) = XМ1 с -
1=0
вес кодового слова с.
Кодовое слово, являющееся решением задачи декодирования, с большой вероятностью содержится в полеченном списке.
Наиболее трудоемкий шаг метода Кёттера-Варди - построение полинома от двух переменных, имеющего корни переменной кратности. Данная задача сводится к решению системы, состоящей из N линейных однородных алгебраических уравнений. Например, для случая (255,239)-кода и X = 4 число уравнений достигает 647 700. Как известно, сложность алгоритма Гаусса растет пропорционально что делает его практически неприменимым в данном случае. Однако эта система сильно структурированная, что позволяет построить более быстрые алгоритмы. Один из наиболее эффективных путей решения задачи двумерной интерполяции - послойный интерполяционный алгоритм, описанный в [5].
Послойный интерполяционный алгоритм. Для реализации интерполяционного шага метода Кёттера-Варди может быть использован послойный интерполяционный алгоритм, являющийся обобщением двоичного интерполяционного алгоритма, предложенного в [8] для случая списочного декодирования.
Искомый интерполяционный полином может быть найден в базисе Грёбнера идеала многочленов, имеющих точки (х, у) корнями кратности М. [1, 7]. Идея послойного алгоритма состоит в нахождении этого идеала как произведения идеалов, построенных для подмножеств интерполяционных точек. В основе алгоритма лежит двоичное разложение элементов матрицы кратностей корней. Элементы данной матрицыМ , 1 = 0, ..., |^|-1, . = 0, ..., показывают, какие кратности должен иметь искомый полином в точках (х,у). Матрица кратностей корней может быть представлена как
М = X Г=о 2кМ(к) , где М(к) - матрица, состоящая из {0, 1}. Назовем множество точек (х., у), для которых М^-1 =1, к-м слоем Ьк. Матрица М(к) мо-
жет быть представлена как М(к) = Х,^^(к'') , где каждая строка матрицы М(к') содержит не более одного ненулевого элемента. Таким образом, слой Ьразбивается на gк групп, причем каждая группа Ьк' содержит точки (х, у) с различными х.. Для каждой группы Ь t = 1^к можно построить
идеал 1М (к,) = {Q( х у) 1 Q( х, у.) = 0, (х,-, у.) е Ьк' }.
Тогда идеал полиномов, имеющих корни в точках слоя 1к, 1М(к) = Ш(x, у) 1 Q(х1, у..) = ° (х1, у..) Е Ьк } может быть получен как к) = П ^/д/к ,) .
Идеал многочленов, кратности корней которых соответствуют элементам матрицы М, может быть построен согласно формуле
1М = (• • • (12м(т) * 1м(-1) )2 * 1М(-2) • • ■1М« )2 • !М(0). Параметры задачи интерполяции позволяют оценить степень р многочлена Q(x, у) относительно переменной у и ограничиться рассмотрением модуля
1м,р = Ю(х, у) = X ц. (х)у. | Q(х, у) е 1М }.
)=0
Преобразование перекодирования. Преобразование перекодирования основано на замене переменных [6]:
у -1 (х)
7 = -
ф( х)
где ф(х) = П (х - х1), Дх) - интерполяционный
(х., у.)еА
полином, построенный по точкам множества А. Данное множество состоит из к точек (х, у) с наи-
1 J
большими кратностями и различными 1.
Такая замена переменных приводит к тому, что искомый интерполяционный полином Q(x,y) всегда содержит некоторый известный заранее множитель Р(х). Следовательно, на интерполяционном шаге метода Кёттера-Варди необходимо построить лишь Q(x, у)/Р(х), в результате чего размерность задачи двумерной интерполяции существенно снижается. Полином Q(x, у)/Р(х) может быть найден в базисе Грёбнера соответствующим образом преобразованного модуля 1М . При построении этого базиса необходимо использовать (1, -1)-взвешенную степень.
Метод Чейза. Метод Чейза является универсальным алгоритмом декодирования линейных блоковых кодов. Он состоит в выделении Б наименее надежных символов в принятом векторе, переборе возможных их значений и исправлении ошибок в прочих символах с помощью алгебраического декодера. В работе [2] была предложена эффективная реализация этого метода для случая кодов Рида-Соломона, основанная на рассмотре-
нии двух наиболее вероятных значений каждого из О наименее надежных символов и многократном использовании промежуточных результатов жесткого алгебраического декодера.
Предлагаемый подход
Предлагаемый подход представляет собой комбинацию послойного алгоритма, интегрированного с преобразованием перекодирования, и метода Чейза.
Не ограничивая общности, будем считать, что первые О символов принятого вектора являются наименее надежными. Рассматриваемый подход состоит в переборе наиболее вероятных их значений.
Пусть М - матрица кратностей корней, формируемая на первом этапе метода Кёттера-Варди. Построим следующее дерево матриц кратностей корней.
• В корне данного дерева (нулевой уровень) находится матрица кратностей корней М(0), которая получается из М путем обнуления кратностей, соответствующих выбранным D х .
• Из вершины, находящейся на (/-1)-м уровне, выходит |К._1| ветвей, где У._х = {(х, у)|7=0, ..., |Г|-1,М .> 0}. Каждая ветвь ведет к вершине, ко-
V Л ( .)
торой соответствует своя точка (х,у) и М , равная М-1) за исключением элемента М(') = М. ..
• На листьях дерева (уровень О) находятся матрицы кратностей корней, соответствующие различным пробным векторам.
Для полученных матриц необходимо построить базисы Грёбнера модулей {Т(х, у) =
= Е(х) | T[)1,)2](X'.,У)) = 0,) + ) <М£>}, имеющих корни (х.,у) кратности М\О). Для этого будем действовать следующим образом. С помощью послойного алгоритма построим базис модуля для матрицы М(0). Базис модуля для матрицы из .-го уровня будем формировать из соответствующего базиса модуля ( . -1^-го слоя путем обработки с помощью итеративного интерполяционного алгоритма, описанного в [6]. В результате такой обработки у полиномов модуля появляется требуемый корень (х, у) кратности М,.. Описанная процедура позволяет многократно использовать промежуточные результаты вычислений, что способствует снижению сложности декодера.
В результате описанных выше действий формируются базисы Грёбнера модулей многочленов, имеющих корни, кратности которых задаются матрицами кратностей корней, расположенными на листьях дерева. Далее должны быть выбраны элементы Т(х, у) найденных базисов Грёбнера с наименьшей (1, к-1)-взвешенной степенью, вычислены р4/х): Т(х, ри(х)) = 0, deg р^(х) < к и построены соответствующие им кодовые слова. Решение задачи декодирования выбирается как наиболее вероятное из этих кодовых слов.
Численные результаты
Предложенный алгоритм реализован на языке С++, его эффективность исследована с помощью
0,0001 -'-1-1-
5 5>5 6 6>5 Е(/М0, с)В
Рис. 1. Качество декодирования (63,55)-кода Рида-Соломона
Рис. 2. Качество декодирования (255,239)-кода Рида-Соломона
статистического моделирования. Рассматривалась передача двоичного образа кодов Рида-Соломона через канал с АБГШ с использованием двоичной фазовой модуляции.
На рис. 1 представлен график зависимости вероятности ошибки декодирования от отношения сигнал/шум для (63,55)-кода над GF(28). Кривые соответствуют реализации послойного алгоритма для максимальной кратности корней 4 с применением метода Чейза при различных значениях параметра В. На рис. 2 и 3 изображены аналогичные графики для (255,239)-кода и
(511,467)-кода соответственно. Из полученных результатов видно, что увеличение этого параметра приводит к росту корректирующей способности декодера. Необходимо отметить, что в работе [2] было показано, что корректирующая способность метода Чейза в сочетании с декодером, исправляющим (п — k)/2 ошибок в метрике Хэмминга, сопоставима с корректирующей способностью метода Кёттера-Варди. На приведенных выше графиках случай D = 0 соответствует классическому методу Кёттера-Варди. Таким образом, предлагаемый подход обеспечива-
Рис. 3. Качество декодирования (511,467)-кода Рида-Соломона
Время декодирования
Еь/No, дБ Время, мс
(n,k) (63,55) (255,239) (511,467)
D 0 4 0 6 0 6
5 0,8890 1,1378 10,902 17,559 51,324 70,044
5,5 0,7762 0,7966 10,428 15,866 49,296 65,364
6,0 0,5769 0,5345 9,9690 13,703 48,672 59,280
6,5 0,3968 0,3267 9,2301 9,5756 46,488 46,176
7,0 0,2659 0,2158 7,9644 6,3937 45,552 40,872
ет большую корректирующую способность по сравнению с известными аналогами.
Для оценки вычислительной сложности предложенного алгоритма были произведены замеры времени декодирования для различных параметров, результаты которых представлены в таблице.
Видно, что ростом отношения сигнал/шум сложность декодирования снижается, причем, если для малых Еь^0 гибридный алгоритм оказывается более трудоемким по сравнению с методом Кёттера-Варди (В = 0), то для больших Еь^0 ситуация меняется на противоположную. Это объясняется тем, что при малых Еь^0 первый этап интерполяции, соответствующий послойному алгоритму, имеет почти одинаковую сложность для гибридного алгоритма и метода Кёттера-Варди, и наблюдаемое различие сложности обусловлено влиянием второго этапа гибридного алгоритма, соответствующего методу Чейза. При больших значениях отношения первый этап гибрид-
ного алгоритма сводится к случаю списочного декодирования, что приводит к значительному снижению его сложности. Это обусловлено снижением эффективности послойного интерполяционного алгоритма при наличии большого числа ненулевых элементов в строках матрицы кратно-стей корней. Такие матрицы часто возникают в ходе работы метода Кёттера-Варди.
В статье представлен алгоритм мягкого декодирования кодов Рида-Соломона, являющийся комбинацией послойного алгоритма, предназначенного для эффективной реализации интерполяционного шага метода Кёттера-Варди и метода Чейза. Показано, что предложенный алгоритм обеспечивает большую корректирующую способность по сравнению с методом Кёттера-Варди, а также имеет меньшую сложность при больших отношениях сигнал/шум.
Работа выполнена при поддержке гранта президента РФ МК-1976.2011.9.
СПИСОК ЛИТЕРАТУРЫ
1. Becker, T. Groebner Bases. A computational Approach to Commutative Algebra [Текст] / T. Becker, V. Weispfenning. -Springer, 1993. -P. 574.
2. Bellorado, J. Low-Complexity Soft-Decoding Algorithms for Reed-Solomon Codes-Part I: An Algebraic Soft-In Hard-Out Chase Decoder [Текст] / J. Bellorado, A. Kavcic // IEEE Trans. on Inf. Theory. -2010. -Vol. 56. -№ 3. -P. 945-959.
3. Koetter, R. Algebraic soft-decision decoding of Reed-Solomon codes [Текст] / R. Koetter, A. Vardy // IEEE Trans. on Inf. Theory. -2003. -Vol. 49. -№ 11. -P. 2809-2825.
4. Koetter, R. Efficient interpolation and factorization in algebraic soft-decision decoding of Reed-Solomon codes [Текст] / R. Koetter, J. Ma, A. Vardy, A. Ahmed // In Proc. of IEEE International Symp. on Information Theory. -2003. -P. 365.
5. Miloslavskaya, V. Fast Interpolation in Algebraic Soft Decision Decoding of Reed-Solomon Codes [Текст] / V. Miloslavskaya, P. Trifonov // In Proc. IEEE R8 International Conf. on Computational Technologies in Electrical and Electronics Engineering. -2010. - P. 65-69.
6. Nielsen, R.R. Decoding Reed-Solomon codes beyond half the minimum distance [Текст] / R.R. Nielsen, T. Hoholdt // Proc. of the International Conf. on Coding Theory and Cryptography. -Mexico: Springer-Verlag, 1998. -P. 221-236.
7. Sauer T. Polynomial interpolation of minimal degree and Grobner bases [Текст] / T. Sauer // Groebner Bases and Applications: Proc. of the International Conf. 33 Years of Groebner Bases. -1998. -Vol. 251. - P. 483-494.
8. Trifonov P. Efficient interpolation in the Guruswa-mi-Sudan algorithm [Текст] / P. Trifonov // IEEE Trans. on Inf. Theory. -2010. -Vol. 56. -№ 9. -P.4341-4349.