Алгоритмы декодирования двоичных кодов с малой плотностью проверок на четность с жестким входом

УДК 621.396

АЛГОРИТМЫ ДЕКОДИРОВАНИЯ ДВОИЧНЫХ КОДОВ С МАЛОЙ ПЛОТНОСТЬЮ ПРОВЕРОК НА ЧЕТНОСТЬ С ЖЕСТКИМ ВХОДОМ

Л.Н. Коротков, И.В. Свиридова

В данной статье рассматриваются алгоритмы декодирования с «мягким» и «жестким» входами для системы с «жестким» приемом. Проводится моделирование следующих алгоритмов декодирования при передаче кодового слова МПП кода по двоичному каналу с аддитивным белым гауссовским шумом

Ключевые слова: мажоритарное декодирование, декодирование с введением стираний, Sum-Product, Min-Sum

Р. Галлагер впервые описал конструкцию кодов с малой плотностью проверок на четность (МПП-кодов Галлагера) и предложил разработанный им итеративный алгоритм декодирования распространения доверия (belief propogation). Затем аналогичный алгоритм декодирования был описан на основе фактор-графа, соответствующего графу Таннера МПП-кода Галлагера. Данный алгоритм получил название Sum-Product. Также была предложена несколько упрощенная версия Sum-Product, которая получила название Min-Sum. Описанные алгоритмы декодирования относятся к так называемым алгоритмам декодирования с «мягким» входом. Данные алгоритмы декодирования обладают хорошими корректирующими свойствами, но

предъявляют жесткие требования к аппаратуре приемника: для реализации «мягкого» приема необходимо использовать линейные усилители и высокочастотные аналого-цифровые преобразователи. Для некоторых систем реализация подобных декодеров является либо невозможной, либо нецелесообразной. Поэтому разработка эффективных алгоритмов с «жестким» входом является актуальной задачей. На данный момент существует большое количество разнообразных алгоритмов декодирования с «жестким» входом [1].

Алгоритмы декодирования можно разделить на алгоритмы с жестким входом и алгоритмы с мягким входом. Первый класс алгоритмов, известный также как вероятностное декодирование (probabilistic decoding) - это алгоритмы, которые в качестве входа получают оценку вероятностного распределения символов, полученную из канала, и работают с численными значениями вероятностей. Этот класс включает в себя такие

Коротков Леонид Николаевич - ВГТУ, д-р физ.- мат. наук, профессор, тел. 8(473) 243-77-06 Свиридова Ирина Владимировна - ВГТУ, аспирант, тел. 8(473) 243-77-06, e-mail: kipr@vorstu.ru

алгоритмы, как sum-product (belief propagation) и его упрощённый вариант min-sum.

Второй класс, включает в себя такие методы декодирования, работающие непосредственно со значениями символов. Это такие алгоритмы, как мажоритарное декодирование и алгоритм декодирования с введением стираний.

Хочется подчеркнуть отличия алгоритмов декодирования с мягким и с жестким входом. Первые имеют теоретически лучшую корректирующую способность, которая в пределе хороших соотношения сигнал/шум составляет 3 дБ, а в пределе плохих - не отличается от алгоритмов с жестким входом. В то же время в реальных условиях может отсутствовать информация о вероятностях, и алгоритм с мягким входом будет неприменим непосредственно. В этом контексте отдельный интерес представляет возможность адаптации алгоритмов с мягким входом для каналов с жёстким выходом.

Все рассматриваемые декодеры МПП-кодов работают с представлением кода в виде фактор-графа, так же известного как граф Таннера. Рассматриваемые алгоритмы являются итерационными. Каждая итерация состоит из последовательной обработки сначала данных вершин-проверок, а затем вершин-переменных. Остановка итеративной части алгоритма всегда осуществляется, если все проверки оказались выполнены или по достижении максимального числа итераций. Возможны так же дополнительные критерии остановки.

Мажоритарное декодирование является простейшим методом декодирования. Алгоритм имеет жесткий вход и выполняет следующие итерации:

1. Вычисление проверок. Результатом являются данные о том, выполняется ли данная проверка, хранящаяся в данной вершине.

2. Изменение символов, в которых не выполняется более половины проверок, на противоположные.

Кроме основных условий, возможны дополнительные. Алгоритм может завершать свою работу, если:

- не изменился вес синдрома;

- не изменился синдром;

- не изменился вектор символов.

Данный алгоритм лежит в основе

алгоритмов, работающих с жестким представлением данных. Модификацией данного алгоритма является вариант, когда на втором шаге итерации производится инвертирование символов, имеющих не более половины невыполненных проверок, а максимальное среди всех. Алгоритм

отличается вычислительной простотой: в нём выполняются практически только логические операции [2].

Усовершенствованием алгоритма

мажоритарного декодирования является алгоритм с введением стираний. В данном алгоритме вместо того, чтобы инвертировать оцененный как ошибочный символ, производится сначала его пометка как стёртого, а затем повторное вычисление проверок с учётом стёртых символов и восстановление символов по вычисленным проверкам. Таким образом, алгоритм на каждой итерации выполняет следующие действия:

1. Вычисление проверок. Результатом являются данные о том, выполняется ли данная проверка, хранящаяся в данной вершине;

2. Пометка символов, оцененных как ошибочные. Как ошибочные можно помечать, например, символы, в которых не выполняется более половины проверок, или символы, в которых не выполняется максимальное число проверок;

3. Вычисление проверок с учётом стёртых символов. В случае, если в проверке стёрт единственный символ, то её значение может быть использовано только в этом символе;

4. Мажоритарное вычисление стёртых символов по проверкам: выбирается то значение, которое является предпочтительным исходя из значений символов. В случае, если по итогам вычисления символов нет предпочтительного значения, то восстанавливается предыдущее.

Данный алгоритм так же отличается простотой и является лишь несколько сложнее алгоритма мажоритарного декодирования.

Sum-Product, известный так же под названиями Belief Propagation, алгоритм с

Ymn

распространением доверия - алгоритм декодирования, являющийся алгоритмом обмена сообщениями на фактор-графе. Алгоритм получает на вход вероятности приёма символов, которые в практической реализации для двоичного случая передаются как отношения правдоподобия. Далее алгоритм итеративно выполняет вычисления на вершинах-символах и вершинах-проверках, передавая между ними сообщения, представляющие из себя по сути отношения правдоподобия данного символа (проверки), вычисленные для соответствующей проверки (символа) на основе всех остальных, кроме того, для кого производится вычисление. Таким образом, алгоритм представляет из себя циклическое выполнение итераций,

содержащих два шага:

1. Вычисление сообщений от проверок к символам. В логарифмах отношения правдоподобия формулы выглядят следующим образом:

= ^ атп • /( ^ f(Pmn)), n€N(m)\n n€N(m)\n

где /mn - сообщение от m-й проверки n-му символу,

amn - знак сообщения от n-го символа для m-й проверки,

pmn - модуль (абсолютное значение) сообщения от n-го символе для m-й проверки,

N(m) - множество символов в m-й проверке,

N(m)\n - множество символов в m-й проверке кроме n и функция f(x):

ех + 1

f(x) = Ы~х—Г ех — 1

Выражение f(£ f(Pmn)) по сути является вычислением мягкого минимума среди всех входящих в сумму значений р.

2. Вычисление сообщений от символов проверкам. В логарифмах отношения правдоподобия формулы выглядят следующим образом:

^п апРп ^ ' Ymm

тЕМ

Н-тпРтп + ^ ' Ymn

т€М(п)\т

Следует отметить, что в пределе, когда Belief Propagation выполняется на фактор-графе без циклов, он сходится к оценке максимального правдоподобия. В то же время при разумных длинах кода (от сотен до сотен тысяч символов) это условие может быть выполнено только для небольшого числа

итераций порядка 2-4, а далее сообщения становятся скореллированными и несут смысл не вероятностей, а оценок надёжности символов. В то же время результативным является выполнение существенно большего числа итераций, порядка десятков.

Belief Propagation является алгоритмом, который минимизирует вероятность ошибки на бит. При этом вероятность ошибки кодового слова получается выше, чем у алгоритмов, минимизирующих вероятность ошибки на кодовое слово [3].

Sum-Product имеет высокую

вычислительную сложность: на каждой итерации происходит вычисление сообщений, происходящее с целыми числами, а так же вычисление нетривиального вида функции.

Алгоритм Min-Sum (сумма наименьших) является упрощением алгоритма Sum-Product, обладающим существенно меньшей

вычислительной сложностью. Каждая итерация содержит два шага:

1. Вычисление сообщений от проверок к символам. В логарифмах отношения правдоподобия формулы выглядят следующим образом:

Ymn = II атп^ min Д ' n€N(m)\n n'€N(m)\n тП

где ymn - сообщение от m-й проверки n-му символу,

amn - знак сообщения от n-го символа для m-й проверки,

pmn' - модуль (абсолютное значение) сообщения от n-го символа для m-й проверки,

N(m) - множество символов в m-й проверке,

N(m)\n - множество символов в m-й проверке кроме n.

2. Вычисление сообщений от символов проверкам. В логарифмах отношения правдоподобия формулы выглядят следующим образом:

^п апРп ^ ' Ymm

т€М

Н-тпРтп + ^ ' Ymn

т£М(п)\т

где an' и pn' - оценка знака и модуля n-го символа,

ymn - сообщение от m-й проверки n-му символу,

amn - знак сообщения от n-го символа для m-й проверки,

pmn - модуль (абсолютное значение) сообщения от n-го символе для m-й проверки,

M(n) - множество проверок, в которые входит n-й символ,

M(n)\m - множество проверок, в которые входит n-й символ кроме m.

Min-Sum имеет меньшую вычислительную сложность по сравнению с Sum-Product благодаря отсутствию необходимости вычислять нетривиальные функции, однако, остаётся существенно сложнее алгоритмов мажоритарного декодирования и алгоритма с введением стираний из-за необходимости производить арифметические операции.

Особенный интерес представляет использование алгоритмов с мягким входом совместно с каналом с жёстким выходом. В то время как обратное использование очевидно -декодеру с жёстким решением можно просто подать более вероятные значения входных символов канала с мягким выходом - обратное преобразование требует замены имеющихся на входе символов после жёсткого решения на некоторые оценки надежности символов [4].

Разница в работе итеративных алгоритмов с жестким и с мягким представлением внутренней информации заключается в следующем. Известно, что в итеративных алгоритмах на каждой итерации может быть посчитано значение числа ошибок. При использовании декодера Sum-Product с мягким выходом из канала, число ошибок обычно монотонно падает от итерации к итерации.

Главной особенностью алгоритмов Sum-Product и Min-Sum является то, что кроме дискретного числа ошибок можно посчитать аналогичную непрерывную величину - сумму вероятностей ошибок по всем символам. Для этого нужно для каждого символа вычислить оценки надежности в виде вероятностей pi, после чего для символов, которые при передаче были единичными посчитать величину 1 — pi и просуммировать. В случае, если выполняется декодирование нулевого кодового слова это будет просто сумма оценок надёжности pi . В контексте алгоритма Sum-Product данная величина интересна тем, что позволяет получить более глубокое понимание происходящих процессов - она усредняет именно те оценки, с которыми работает алгоритм. Рассмотрение её поведения показывает, что в типичной ситуации успешного декодирования она практически совпадает с числом ошибок и при работе алгоритма от итерации к итерации меняется похожим образом. В случае, если на вход декодера подаётся мягкий выход канала, вероятности которого изменены в сторону

увеличения или уменьшения надёжности, оценки суммы вероятностей ошибок соответственно изменяются, увеличивается вероятность отказа от декодирования, а при отсутствии отказа при занижении надёжностей время декодирования увеличивается (растёт число итераций), при завышении уменьшается. Отсюда следует, что оптимальным может являться такой вход, который обеспечивает равенство суммы вероятностей ошибок, используемой декодером, реальному числу ошибок в кодовом слове [5].

Вариантом такого входа для двоичного кода является замена входных символов в виде 0 и 1 на вероятности р и 1— р, где р - оценка вероятности ошибки в данном канале. Логарифмы отношения правдоподобия при этом выглядят как п и —п, где

1 — р

п = 1п-

Р

При использовании этого метода сумма вероятностей ошибок ведёт себя аналогично случаю работы с мягким выходом канала: практически совпадает с числом ошибок, от итерации к итерации меняется подобно ей.

Способы оценки вероятности ошибки р так же могут быть различны. В данной работе было проведено сравнение трёх способов. Первые два - это вычисление эмпирической вероятности как отношения числа ошибок в

кодовом слове к его длине, а так же расчёт коэффициента ошибок канала через известное соотношение сигнал/шум. Третьим способом было использование фиксированной константы, соответствующую работе при наихудшем соотношении сигнал/шум, при котором декодирование обычно происходит успешно.

Литература

1. Галлагер Р.ДЖ. Коды с малой плотностью проверок на четность. - М.: Мир, 1996. - 90с.

2. Золотарёв, В. В. Помехоустойчивое кодирование. Методы и алгоритмы [Текст] : учеб. пособие / В. В. Золотарев, Г. В. Овечкин; под ред. Ю. Б. Зубарева. -Москва : Справочное издание, 2004. - 126 с. - ISBN 593517-169-4.

3. Свиридова, И. В. Способы контроля помехозащищенности передачи данных [Текст] / И. В. Свиридова, И. В. Остроумов, А. В. Муратов // Труды международного симпозиума надежность и качество. -2013. - Т. 2. - С. 17.

4. Свиридова, И. В. Эффективное многопороговое декодирование недвоичных кодов с предварительной оценкой ошибочности проверок [Текст] / И. В. Свиридова, А.В. Башкиров, А.В. Муратов // Вестник Воронежского государственного технического университета. - 2015. - Т. 11, № 3. - С. 99-101.

5. Свиридова И. В. Использование LDPC-кодов [Текст] / И. В. Свиридова, А. В. Башкиров, Л. Н. Коротков // Вестник Воронежского государственного технического университета. - 2013. - Т. 9, № 6-3. - С. 41-44.

Воронежский государственный технический университет

DECODING ALGORITHM FOR BINARY LOW-DENSITY-CHEKD HARD ENTRANCE

L.N. Korotkov, I.V. Sviridova

This article discusses the decoding algorithms with «soft» and «hard» is a system with a «hard» technique. Held the following modeling algorithms decode the transmission codeword WFP code of binary channel with additive white Gaussian noise

Key words: majority decoding, decoding with the introduction of erasures, Sum-Product, Min-Sum