ТРУДЫ БГТУ. 2015. № 6. Физико-математические науки и информатика. С. 157-161 157
УДК 004.056.55
Н. В. Пацей
Белорусский государственный технологический университет
ПАРАЛЛЕЛЬНОЕ КАСКАДНОЕ ВЕРОЯТНОСТНОЕ ДЕКОДИРОВАНИЕ КОДОВ НИЗКОЙ ПЛОТНОСТИ ПРОВЕРОК НА ЧЕТНОСТЬ
Статья посвящена вопросам эффективного декодирования кодов низкой плотности проверок на четность. Выполнен анализ прототипов параллельного вероятностного декодирования кодов низкой плотности проверок на четность с точки зрения их практического применения в спутниковых каналах связи. Разработан модифицированный алгоритм вероятностного итерационного декодирования с распространением доверия (belief propagation decoding) для систем на основе каскадных параллельных кодов. Изменен способ соединения декодеров и добавлена возможность динамической нелинейной коррекции логарифмического отношения правдоподобия декодируемых информационных бит после каждой итерации. Пошагово рассмотрен процесс кодирования и декодирования в общем виде. Построена программная компьютерная модель системы кодирования/декодирования для исследования сходимости процесса декодирования, оценки корректирующей способности параллельных каскадных низкоплотностных кодеков и количества итераций декодирования. Представленные результаты компьютерного имитационного моделирования системы передачи информации подтверждают эффективность предложенного алгоритма. Так, при замене алгоритма декодирования на предложенный в статье уменьшено число итераций декодирования, снижена на 10% вероятность ошибочного декодирования (в особенности при модульных ошибках).
Ключевые слова: ошибки, декодирование, вероятность, код, низкая плотность, параллельный, матрица.
N. V. Patsei
Belarusian State Technological University
PARALLEL CASCAD PROBABILITY DECODING OF LOW-DENCITY PARITY-CHECK CODES
This article focuses on the questions of effective low density parity check decoding. The analysis of known parallel probabilistic decoding algorithms for low-density parity-check codes from the point of their practical application in satellite communication channels was made. We proposed a new modification of the algorithm for the probabilistic iterative decoding based on belief propagation for parallel-cascaded codes. Although we change the decoders connection scheme and add the possibility of a dynamic, non-linear correction log-likelihood ratio information bits after each iteration. A combined coding/decoding scheme is also considered. To investigate the convergence of the decoding process, software model of the encoding/decoding system was developed. It also allows to analyze the corrective ability and number of decoding iterations of parallel concatenated low density codecs. The obtained simulation results prove the proposed algorithm effectiveness. Thus, it reduced the numbers of decoding iteration and decrease the probability of decoding errors (especially for modular errors) by 10%.
Key words: errors, decoding, probability, low-density parity-check codes, parallel, matrix.
Введение. Надежная передача информации обеспечивается использованием различных канальных кодов коррекции ошибок. Коды низкой плотности проверок на четность (НППЧ) [1, 2], относящиеся именно к этой категории кодов, характеризуются большим количеством нулевых элементов в проверочной матрице и малым количеством единиц. Данные коды относятся к линейным блочным кодам и задаются параметрами (п, к, wr), где п - длина кодового блока, к - длина информационного блока, ^с -количество единиц в каждом столбце (или функция распределения, если количество единиц меняется), - количество единиц в каждой строке (или функция распределения). Коды
НППЧ описываются с помощью проверочной матрицы Н размера (п - к)*п. Каждой проверочной матрице Н ставится в соответствие порождающая матрица О [2].
Под параллельным каскадным кодом понимается схема кодирования/декодирования, состоящая из двух параллельно соединенных через перемежитель кодов [3]. Если совместно с НППЧ-кодом использовать еще один помехоустойчивый код, корректирующая способность системы возрастает. Однако дополнительный кодовый процесс добавляет проверочные биты и снижает скорость кода. Кроме того, дополнительное кодирование/декодирование усложняет и замедляет помехоустойчивую систему.
158
Н. В. Пацей
Основная часть. Известна система вложенного Н1II 1Ч-кодирования/декодирования данных [4]. Недостатками системы являются низкая скорость кодирования за счет последовательной работы кодеров, а также низкая скорость декодирования, так как в случае невозможности декодирования вторым составным декодером происходит взаимозависимое циклическое обновление кодовых слов в обоих декодерах и переход к следующей итерации.
Также известен способ и устройство парал-лельно-конкатентного НППЧ-кодирования/де-кодирования [5]. Однако первый и второй НППЧ-декодеры имеют одинаковую структуру, а декодирование выполняется последовательно. Причем из-за жесткой связи между декодерами при большом количестве ошибок (или стираний) в полученном блоке это приведет или к увеличению времени декодирования, или к отказу от декодирования при достижении заданного количества итераций.
Предлагаемая обобщенная структурная схема параллельного каскадного декодироваия кодов низкой плотности проверок на четность
декодирование с мягким решением более трудоемко, чем «жесткое» декодирование. Тем не менее увеличение трудоемкости окупается потенциальным улучшением эффективности системы кодирования.
Для оптимизации процесса декодирования в предлагаемом техническом решении изменен, по сравнению с [5], способ соединения декодеров и добавлена возможность динамической нелинейной коррекции логарифмического отношения правдоподобия (log-likelihoods ratios - LLR) декодируемых информационных бит после каждой итерации (внешняя информация) декодеров.
Описанный метод декодирует информацию, предварительно закодированную параллельным каскадным кодером, структурная схема которого представлена на рис. 2. Каскадный кодер (рис. 2) содержит первый и второй кодеры низкой плотности проверок на четность, на вход которых поступает информационная последовательность. Закодированная последовательность передается в блок объединения, который формирует общее составное кодовое слово.
Рис. 1. Структурная схема параллельного каскадного декодера
Блок коррекции анализирует полученную с декодеров апостериорную вероятность после первой итерации, принимает жесткие решения по векторам и вычисляет синдромы для решения вопроса об окончании процесса декодирования. В случае ненулевых значений синдромов взаимно корректирует апостериорные вероятности первого и второго декодеров для следующей итерации.
Декодирование основано на методе распространения доверия (belief propagation decoding) [6]. Оно является «мягким» декодированием, т. е. декодированием на основе вектора, состоящего не из дискретных значений (0 и 1), а из вещественных величин, полученных на выходе канала путем пересчета вероятностей. В общем случае
Для информационного блока длины к, длины проверочного блока первого декодера т' и длины проверочного блока второго декодера т" скорость параллельного каскадного НППЧ-кода будет равна
R =
к
m + m
Параллельное каскадное НППЧ-кодиро-вание/декодирование. Пусть проверочная матрица первого НППЧ-кода И'. Соответственно, порождающая матрица О' = [1И'Т]. Пусть необходимо передать информационный блок и = [м1м2м3_м„]. Кодовое слово может быть получено на основе с' = иО'.
Параллельно выполняется кодирование поданного информационного блока вторым составным НППЧ-кодером. Структура первого кодера может отличаться от второго. Кодовое слово вычисляется на основе с" = иО".
Поскольку код систематический, результирующее кодовое слово получается на основе конкатенации блоком объединения исходного
информационного слова и, проверочных разрядов р', полученных первым кодером, и проверочных разрядов р", полученных вторым кодером: с = [ир'р"].
Устройство параллельного каскадного декодирования на вход принимает логарифмические вероятности правдоподобия Ь, которые для каждого символа х бинарной последовательности рассчитываются на основе метрики:
Используя соотношение
L( x) = ln
( p( X = 0) ö
p( X = 1)
(1)
где ln означает loge, а p(x = 0) и p(x = 1) -вероятности приема 0 и 1 соответственно. Если p(x = 0) > p(x = 1), то значение L(x) положительное. Чем больше разница между p(x = 0) и p(x = 1), тем выше вероятность приема 0 и наоборот. Знак L(x) позволяет выполнять жесткое решение по символу x, а амплитуда |L(x)| является вероятностью этого решения. Цель декодирования - вычислить максимальную апостериорную вероятность (maximum a posteriori probability - MAP) для каждого кодового бита Pi = P [с = 1 | N} - вероятность того, что i-й бит кодового слова равен 1. Дополнительную информацию по i-му биту, полученную от проверок, будем называть внешней информацией.
Таким образом, каждый из декодеров устройства параллельно итеративно вычисляет аппроксимацию значения MAP для каждого кодового бита. Обозначим внешнюю информацию от проверочного бита j к информационному биту i через Eji. Фактически данная величина представляет собой вероятность того, что для значения i-го бита j-я проверка выполняется. Вероятность того, что проверка выполняется, если бит i установлен в 1, записывается так:
j=2 - 2 п (1 - ^pf),
2 2 i'eß,
(2)
где р- текущая оценка для ] при 7' = 1. Вероятность того, что проверка выполняется, если 7-й бит равен 0, будет 1 - Р*х. Выразим внешнюю информацию от проверочных к информационным битам через логарифмическую вероятность:
E, ,i = LLR (P;X) = ln
Подставим (2) в (3): ( 1 1
1 - PeX _¿,1
т) ext
¿,i
(3)
j = ln
2 2 п (1 - 2?r)
2 2 ieß,
2 - 2 п (1 - 2рг )
2 2 i' eß,
(4)
(
tanh
2log
(1 - p öö
//
= 1 - 2 p,
(5)
получим:
(
E1 i = ln
1 + п tanh(M,,,, /2)
i' eß1 /«
1 - п tanh(M,,,, /2)
Л
(6)
где
M}J = LLR( Pn) = ln
( 1 - pnt ö _¿>i
int
¿J у
(7)
Каждый бит имеет входную априорную вероятность ЬЬЯ г7 и ЬЬЯ от каждого связанного проверочного бита Е]-,7. Результирующая ЬЬЯ 7-го бита представлена суммой:
Lj = LLR( P;nt) = r + X Б,,
(8)
1'eA,
Полученное значение вероятностей для первого и второго декодеров поступает в блок коррекции, который принимает на основании (8) жесткое решение для первого 21 и второго кодовых слов и вычисляет синдромы на основе:
s = zHT.
(9)
Если синдром s' для z' равен 0, процесс декодирования прекращается, считая, что найдено верное кодовое слово. В противном случае проверяется синдром s'' для z", если он равен 0, процесс декодирования завершается. Если получено значение, отличное от 0, то взаимно корректируются апостериорные вероятности (входная информация) для первого и второго кодеров на следующей итерации. Процесс продолжается, пока не будет выполнено заданное число итераций, найдено кодовое слово или установлена ошибка декодирования. Описанный алгоритм параллельного каскадного декодирования поясняется блок-схемой (рис. 3).
На основе разработанного алгоритма построена имитационная модель передачи информации. Для передачи был выбран канал с аддитивным белым гауссовским шумом (additive white Gaussian noise - AWGN) c двоичной фазовой модуляцией (binary phase-shift keying -BPSK).
На рис. 4 приведены результаты компьютерного имитационного моделирования системы передачи информации, подтверждающие эффективность использования представленного алгоритма декодирования.
160
Н. В. Пацей
Рис. 3. Блок-схема алгоритма параллельного декодирования
-----С последовательным каскадным декодером
— - С одиночным декодером
Рис. 4. Результаты экспериментального моделирования, зависимость БЕЯ от 8КЯ
Для сравнения производительности представлены результаты работы систем на основе трех различных декодеров: параллельного каскадного, последовательного каскадного и одиночного. Минимальное расстояние ( = 10) и скорость кодеров ^ = 1/2) одинаковые.
Заключение. Таким образом, преимущество разработанного параллельного каскадного декоде-
ра состоит в увеличении скорости декодирования за счет коррекции логарифмического отношения правдоподобия кодового слова и распараллеливания процесса декодирования, что сокращает число итераций декодирования на 30%, увеличивает производительность системы декодирования, а также снижает вероятность ошибочного декодирования на 10-12% по сравнению с [4, 7].
Литература
1. Roca V., Neumann C., Furodet D. RFC 5170 on Low Density Parity Check (LDPC) Staircase and Triangle Forward Error Correction (FEC) Schemes. URL: http://search.usa.gov (дата обращения: 25.01.2015).
2. Gallager R. G. Low Density Parity Check Codes. Cambridge: MIT Press, 1963. 90 p.
3. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. М.: Техносфера, 2005. 238 с.
4. Nested LDPC encoders and decoders: pat. 7559008 US, G06F 11/00 / A. Popapoutian. 2006. P. 12.
5. Method of forming parity check matrix for parallel concatenated LDPC code: pat. 2005/0160351 US, H03M 13/00 G06F 11/10 / J. K. Young, H. K. Jung. 2005. P. 14.
6. MacKay D. J. C. Good error-correcting codes based on very sparse matrices // IEEE Trans. Inform. Theory. 1999. Vol. 45, no. 2. Р. 399-431.
7. Пацей Н. В. Исследование корректирующей способности конструкций двоичных кодов с низкой плотностью проверок на четность, основанных на матрицах перестановок // Труды БГТУ. 2014. № 6: Физ.-мат. науки и информатика. С. 113-115.
References
1. Roca V., Neumann C., Furodet D. RFC 5170 on Low Density Parity Check (LDPC) Staircase and Tri399-431angle Forward Error Correction (FEC) Schemes. Available at: http://search.usa.gov (accessed 25.01.2015).
2. Gallager R. G. Low Density Parity Check Codes. Cambridge, MIT Press, 1963. 90 p.
3. Morelos-Saragosa R. Iskusstvo pomekhoustoychivogo kodirovaniya. Metody, algoritmy, primenenie [Art of error-correcting coding. Methods, algorithms, use]. Mosraw, Tekhnosfera Publ., 238 p.
4. Popapoutian A. Nested LDPC encoders and decoders. Patent US, no. 7559008, 2009.
5. Young J. K., Jung H. K. Method of forming parity check matrix for parallel concatenated LDPC code. Patent US, no. 2005/0160351, 2005.
6. MacKay D. J. C. Good error-correcting codes based on very sparse matrices. IEEE Trans. Inform. Theory, 1999, vol. 45, no. 2, pp. 399-431.
7. Patsei N. V. Study of designs of correcting capability of binary low density parity check codes based on the matrix permutation. Trudy BGTU [Proceedings of BSTU], 2014, no. 6: Physical-mathematical sciences and informatics, pp. 113-115 (In Russian).
Информация об авторе
Пацей Наталья Владимировна — кандидат технических наук, доцент, доцент кафедры информационных систем и технологий. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: [email protected]
Information about the author
Patsei Natallia Vladimirovna — Ph. D. (Engineering), Assistant Professor, Assistant Professor, the Department of Information Systems and Technologies. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: [email protected]
Поступила 12.03.2015