Научная статья на тему 'РАЗРАБОТКА НИЗКОПЛОТНОСТНОГО СВЕРТОЧНОГО КОДЕРА С ГЕНЕРАТОРОМ ТЕРМИНИРУЮЩЕЙ ПОСЛЕДОВАТЕЛЬНОСТИ ДЛЯ ПАКЕТНОЙ ПЕРЕДАЧИ ДАННЫХ'

РАЗРАБОТКА НИЗКОПЛОТНОСТНОГО СВЕРТОЧНОГО КОДЕРА С ГЕНЕРАТОРОМ ТЕРМИНИРУЮЩЕЙ ПОСЛЕДОВАТЕЛЬНОСТИ ДЛЯ ПАКЕТНОЙ ПЕРЕДАЧИ ДАННЫХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
25
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НИЗКОПЛОТНОСТНЫЕ СВЕРТОЧНЫЕ КОДЫ / ТЕРМИНИРУЮЩАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ / ПЛИС

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ким Александр Александрович

Рассмотрен вариант применения генератора терминирующей последовательности (ГТП) для декодера низкоплотностных сверточных кодов. Разработана методика конструирования низкоплотностного сверточного кодера с ГТП для пакетной передачи данных и реализации на базе ПЛИС.A termination sequence generator application variant for a low-density parity check convolution coder (LDPC-CC) has been presented. An option of applying the generator termination sequence (GTS) for the coder of the low-density convolution codes has been considered. The methods for designing the low-density convolution coder with GTS for the data packet transmission and FPGA realization have been elaborated.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «РАЗРАБОТКА НИЗКОПЛОТНОСТНОГО СВЕРТОЧНОГО КОДЕРА С ГЕНЕРАТОРОМ ТЕРМИНИРУЮЩЕЙ ПОСЛЕДОВАТЕЛЬНОСТИ ДЛЯ ПАКЕТНОЙ ПЕРЕДАЧИ ДАННЫХ»

УДК 519.725.3:004.31

Разработка низкоплотностного сверточного кодера с генератором терминирующей последовательности для пакетной передачи данных

А.А.Ким

Московский государственный институт электронной техники (технический университет)

Рассмотрен вариант применения генератора терминирующей последовательности (ГТП) для декодера низкоплотностных сверточных кодов. Разработана методика конструирования низкоплотностного сверточного кодера с ГТП для пакетной передачи данных и реализации на базе ПЛИС.

Низкоплотностные коды, или коды Галлагера [1, 2], - одно из перспективных направлений развития области помехоустойчивого кодирования, так как при использовании метода итеративного декодирования позволяют вплотную приблизиться к пределу Шеннона [3]. Исследования характеристик низкоплотностных кодов и оптимизаций алгоритмов кодирования и декодирования для аппаратной реализации показывают преимущества использования именно сверточных низкоплотностных кодов [4, 5]. Применение данных кодов в системах с пакетной передачей данных осложняется их полубесконечной структурой, более подходящей для непрерывной или потоковой передачи данных.

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

Низкоплотностной сверточный код в общем случае задается полубесконечной проверочной матрицей Н. Для данного кода с кодовой скоростью 1/2 последовательность информационных бит ы(0,t) = [ы(0),ы(1),...,ы^)], где и(п) е (&Р(2) - поле Галуа), после кодирования представляет собой такую последовательность у(0, t) = [VI (0), у2 (0), VI (1), у2 (1),..., VI ^), v2 (0], где Уг (п) е 0¥(2) , VI (0 = ы($) и выполняется условие

тТ (1)

40, г НТ,, ] = 0.

Здесь Н[0, ] имеет вид

[0^ ]

где

} )(п) е аД2).

/Т(0) ^1(1)(1)

^20)(0) ^2() (()

0 ^(0)(()

: /40)(()

н(м )(М) к(М )(М)

к[М )(М + () -к(М )(М + () -

^(М V)

И(М )(t)

0 н(0)(о

© А.А.Ким, 2010

0

т

0

Таким образом, закодированная последовательность может быть вычислена по формуле

м м

ЫО = ЕЛрЧФС — г) + ^^(ОЫ' —г), (2)

¿=0 г =1

здесь ы{1) = 0И1 < 0, а все операции производятся в 6Р(2). Для вычисления проверочных бит используется М предыдущих информационных и М - 1 предыдущих проверочных бит. Формула (2) используется для построения низкоплотностного сверточного кодера, исходя из известной проверочной матрицы Н [6]. Далее будем рассматривать только регулярные

систематические низкоплотностные коды с постоянной по времени матрицей Н.

Учитывая арифметику в поле Галуа 6Р(2), можно сконструировать аппаратный кодер, состоящий из сдвиговых регистров задержки Б для хранения М информационных и М - 1 проверочных бит, двух мультиплексоров М(0, М) и ¿2(0, М- 1), производящих операции в соответствии со строками проверочной матрицы Н , и элемента «исключающее или» (ХОЯ). На рис.1 представлена схема простейшего низкоплотностного сверточного кодера с кодовой скоростью 1/2 и памятью кода 2М - 1, который формирует выходную кодированную последовательность по формуле (2).

При использовании схемы кодера (см. рис.1) в системах с пакетной передачей данных возникает проблема завершения пакета для последующего корректного декодирования. Для формирования кодированной последовательности используются информационные и проверочные символы, поэтому возвращение кодера в начальное нулевое состояние (когда все регистры задержки содержат значение «0») является нетривиальным. Если для обычного систематического сверточного кодера достаточно использовать последовательность из М нулей в качестве входных информационных символов ы{1), то в случае низкоплотностного сверточного кода этот метод не приведет к возвращению кодера в нулевое состояние. Для этого необходимо вычислить терминирующую последовательность из М + 1 дополнительных информационных бит, зависящую от состояния кодера в момент времени

Состояние кодера в момент времени I определяется последними М информационными битами и М проверочными битами и имеет вид £^) = — М — 1, ^ — 1) . Нулевое состояние кодера £0 - это такое состояние, когда все предыдущие М информационных бит и М проверочных бит равны нулю. Предположим, что в момент времени I = 0 (момент начала кодирования пакета данных) кодер имеет нулевое состояние £0. Терминирующая последовательность \т , возвращающая кодер в нулевое состояние в момент времени t = т + 2М +1,

где т - момент времени конца передачи пакета данных и начала терминирующей последовательности, может быть вычислена с использованием выражения (1) путем нахождения \т методами линейной алгебры с учетом арифметики ОЕ(2) [6]:

К0, т — 1), ^ (т,т + М), £о1Я[Го,т+2м+ц = 0. (3)

Рис.1. Схема низкоплотностного сверточного кодера

В случае аппаратной реализации генератора терминирующей последовательности (ГТП) для низкоплотностного сверточного кодера решение системы линейных уравнений (3) для каждого состояния кодера S(t) в реальном времени совершенно неэффективно ввиду значительной сложности реализации и ресурсоемкости. Поэтому предлагается применять метод предварительного конструирования схемы вычисления каждого бита терминирующей последовательности для подачи на вход кодера. Для конструирования схемы необходимо решить систему (3) для каждого состояния кодера (с кодовой скоростью 1/2)

S(т) = v(t -M, т) = Кт -M),v2(x -M),v1(x -M +1), v2(x -M +1),., v^x), v2(x)], (4)

такого, что v (t) = 1 для всех t е[т -M, x] при остальных нулевых элементах. На основе полученного множества решений X = [X1 (0), X2(0),...X1 (M), X2 (M)] конструируется схема последовательного ГТП для последующей аппаратной реализации (рис.2).

В сдвиговых регистрах сохраняется состояние кодера S(т) = v(x - M, т) на момент времени т, т.е. начала процесса терминирования. Входной сигнал t управляет мультиплексорами, которые используют решения X1(t) и X2(t) в момент времени t для выборки нужных бит. Элемент «исключающее или» завершает вычисление информационного бита терминирующей последовательности в момент времени t.

При аппаратной реализации низкоплотностного сверточного кодера с ГТП на базе ПЛИС наличие его удваивает необходимое количество сдвиговых регистров (для сохранения последнего состояния кодера) и добавляет дополнительные элементы «исключающее или» (XOR), что увеличивает объем кодера. Количество дополнительных элементов XOR напрямую зависит от количества решений X для каждой конкретной проверочной матрицы H. В большинстве случаев множество решений X имеет некоторое количество нулевых значений, что означает индифферентность кодера к этим членам терминирующей последовательности (т.е. они не влияют на процесс возвращения кодера в нулевое состояние и могут быть произвольными), что, в свою очередь, сокращает дополнительные аппаратные затраты на реализацию ГТП.

Общая схема разработанного низко-плотностного сверточного кодера с ГТП представлена на рис.3.

В момент времени t = 0 кодер и ГТП находятся в нулевом состоянии S . Происходит кодирование U информационных бит u(t), при этом сдвиговые регистры задержки в кодере и ГТП работают параллельно и имеют идентичные состояния до момента времени т, когда возникает необходимость терминировать пакет данных. После подачи сигнала старта процесса

D т D vl т (x- D М, х) т D 1

- X

_

^ R u(t)

D

X()

v2(x - M, x) Рис.2. Схема ГТП

t

Рис.3. Общая схема низкоплотностного сверточного кодера с ГТП

терминирования T входы ГТП блокируются элементом M2, сохраняя таким образом последнее состояние кодера. Одновременно с этим мультиплексор М1 коммутирует выход ГТП ит (t) на вход кодера, запуская процесс терминирования.

Отметим, что при использовании ГТП возникает дополнительная избыточность передаваемой информации, что уменьшает скорость кода (отношение количества информационных бит к общему числу передаваемых бит или coderate) и, соответственно, энергетический выигрыш кодирования (ЭВК или coding gain). При увеличении размера пакета относительно длины терминирующей последовательности это влияние уменьшается. Энергетический выигрыш кодирования определен как разность между отношениями сигнал/шум (SNR) системы с кодированием и системы без кодирования при одинаковой скорости и вероятности ошибки на бит (BER), т.е. ЭВК = SNRuc - SNRc, где SNRuc - отношение сигнал/шум системы без кодирования; SNRc - отношение сигнал/шум системы с кодированием. Для адекватного сравнения ЭВК систем с различной кодовой скоростью необходимо учитывать скорость кода (coderate) при расчете ЭВК: SNR = Eb / No +10 log0 (coderate) , где Eb/No - отношение энергии сигнала на бит к

спектральной плотности шума, coderate - скорость кода. Учитывая идентичность параметров систем, за исключением скорости кода, для вычисления потерь ЭВК достаточно найти разность

ASNR = 10log10(coderatex ) - 10log10(coderatek ), (5)

где coderate - скорость кода при бесконечной длине пакета, что соответствует кодеру без ГТП, coderate - скорость кода при длине пакета k бит.

Сравнительные характеристики кодера с ГТП для низкоплотностного кода с параметрами проверочной матрицы H (37, 2, 5) со скоростью кода 2/5 и памятью кода 185, рассчитанные по формуле (5), для различных размеров пакетов приведены в таблице.

Зависимость потерь кодовой скорости и ЭВК от размера пакета

Длина пакета, бит Кодовая скорость Потери, дБ

512 0,3468 0,5799

8192 0,3964 0,0152

65536 0,3995 0,0005

<ю 0,4 0

Как видно из таблицы, потери ЭВК при использовании ГТП и достаточного большого пакета составляют всего 5 10-4 дБ, что сравнимо с потерями, например, шума квантования системы и являются незначительными. При этом наличие ГТП позволяет использовать кодер в системах с пакетной передачей данных, что является очевидным преимуществом по сравнению с кодерами без ГТП, которые невозможно использовать для систем такого рода.

Схема низкоплотностного сверточного кодера с ГТП реализована на ПЛИС Xilinx Virtex 4 LX60 для кода (37, 2, 5) с кодовой скоростью 2/5 и памятью 185. Реализованный кодер успешно применяется как элемент системы с пакетной передачей данных и размером пакета до 32 кбит. Предложенная структура кодера с ГТП позволяет разрабатывать различные варианты низкоплотностного сверточного кодера на базе ПЛИС, которые будут обладать необходимыми характеристиками для применения в системах с пакетной передачей данных.

Литература

1. Gallager R. Low Density Parity Check Codes // IEEE Transaction on Information Theory. - Jan. 1962. -Vol. 8. - P. 21-28.

2. MacKay D., Neal R. Near Shannon limit performance of low density parity check codes // IEEE Electronics Letters. - Aug. 1996. - Vol. 32. - № 18. - P. 1645-1646.

3. Chung S., Forney D., Richardson T., Urbanke R. On the Design of Low-Density Parity-Check Codes within 0,0045 dB of the Shannon Limit // IEEE Comm. Letters. - Feb. 2001. - Vol. 5. - № 2. - P. 58-60.

4. Jimenez Felstrom A., Zigangirov K.S. Time-varying periodic convolutional codes with low-density parity-check matrix // IEEE Transactions on Information Theory. - Sept. 1999. - Vol. 45. - № 6. - P. 21812191.

5. Pusane A.E., Feltstrom A.J., Sridharan A. et al. Implementation aspects of LDPC convolutional codes // IEEE Transactions on Communications. - July 2008. - Vol. 56. - № 7. - P. 1060-1069.

6. Bates S., Elliott D.G., Swamy R. Termination Sequence Generation Circuits for Low-Density Parity-Check Convolutional Codes // IEEE Transactions on Circuits and Systems I: Regular Papers. - Sept. 2006. -Vol. 53. - № 9. - P. 1909-1917.

Статья поступила после доработки 3 июня 2009 г.

Ким Александр Александрович - аспирант кафедры систем автоматического управления и контроля в микроэлектронике МИЭТ. Область научных интересов: цифровая обработка сигналов, исследование и разработка алгоритмов и методов помехоустойчивого кодирования, их оптимизация для внедрения в высокоскоростных системах передачи данных по сетям электропитания низкого и среднего напряжения. E-mail: alexander.a.kim@gmail.com

Информация для читателей журнала «Известия высших учебных заведений. Электроника»

С тематическими указателями статей за 1996 - 2009 гг., аннотациями и содержанием последних номеров можно ознакомиться на нашем сайте:

http://www. miet. ru/structure/s/894/e/12142/191

i Надоели баннеры? Вы всегда можете отключить рекламу.