Методы генерации проверочных матриц итеративного блочного кода с низкой плотностью проверок на четность

ОБРАБОТКА И ПЕРЕДАЧА ИНФОРМАЦИИ

УДК 681.325.3

Н. В. Пацей, доцент

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

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

The article is devoted to the problem of construction parity check matrixes for low density parity check codes with given characteristic of code rate and code length which used in. Method of generating check matrixes on base of random permutation sub-matrices arrangement, known as quasi-cyclic regular code and method of structured generating check matrixes on base of Euclid geometric codes with possibility rows deletion and columns division are described. Simulation analysis of low density parity check codes performance and equalizability is done.

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

Высокая производительность и корректирующая способность, получаемая при итеративном декодировании турбокодов, стимулировали активные исследования по применению данного метода к декодированию других видов кодов. В частности, оказалось, что возможно получить на порядок лучшие характеристики при использовании низ-коплотностных (low density parity check - LDPC) кодов, предложенных Галлагером [1]. Этим объясняется выбор Network Working Group кодов с низкой плотностью проверок на четность в качестве стандарта IETF RFC5170 для Интернет-коммуникаций [2] и интеграция кодов в стандарты беспроводной связи и цифрового ТВ (DVB-S2).

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

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

GHT = 0.

Процесс кодирования последовательности (m1, m2, ..., mk) заключается в получении кодированной последовательности (с1, с2, ..., сп):

C = (mi, m2, ., mk)G = (сь С2, ., с„) при условии, что:

H(Ci, С2, ..., сп)т= 0.

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

Первый основан на генерации начальной проверочной матрицы с помощью псевдослучайного генератора. Коды, полученные таким методом, называют случайными (random-like codes). Основной недостаток случайных кодов -необходимость применения алгоритмов удаления циклов (в особенности коротких) и нестабильные рабочие характеристики кода.

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

Изначально Галлагером в [1] была предложена следующая структура проверочной матрицы H с параметрами (n, X, р), где n -количество столбцов матрицы, которая имеет ровно X единиц в каждом столбце и р единиц в каждой строке (остальные нули). Пример матрицы для (20, 3, 4) LDPC-кода представлен формулой (1).

Н. В. Пацей

155

(1111

H =

(H1 H 2

V H3 J

1111

1 1 1 1 1 1 1

1

H

' EG

1

1

1 1 1

1 1

Как видно, структурно она состоит из трех подматриц, в каждой из которых содержится только одна единица в столбце: в Hi каждая /-я строка содержит единицы в столбцах от (i - i)k + i до ik; H2 и H3 получены путем случайной перестановки столбцов матрицы Hi. Все строки и столбы матрицы H имеют одинаковые веса, что делает код регулярным.

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

Более универсальным является структурированный метод построения кода на основе евкли-дово-геометрических кодов EG(m, 2s) [3]. Данный метод позволяет приблизиться к границе Шеннона при BER (Bit Error Rate), равной iO-4.

Евклидово-геометрические коды строятся как система инциденций геометрии EG (m, ps). Код имеет следующие характеристики: длина кодового слова - n = 22s - i; длина информационного

1111

1 1 1 1 1 1 1

1

(1 1 1 1 1 1 1 1 1 1 1 1 1

1

1111

1

1111

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1

Л

1

1

1

1

1

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1

/

слова - к = 22х - 3х; количество избыточных бит -п - к = 3х - 1; минимальное расстояние -dmln = 2 + 1. Поскольку число единиц в проверочной матрице евклидово-геометрического кода мало по сравнению с размером матрицы, то такой код сам по себе можно рассматривать как ЬБРС-код. Проверочная матрица ИЕО строится следующим образом: строки проверочной матрицы соответствуют линиям евклидовой геометрии, столбцы - ненулевым точкам в EG(m, р). Элементы матрицы ИЕО определяются из векторов инциденций линий евклидовой геометрии:

HEG (i, J) =

i, если точка лежит на прямой i, 0, в противном случае.

Если ввести обозначение д = р\ то матрица ИЕО имеет п = дт столбцов и г = дт - 1(дт - 1) / (д-1) строк. Каждый столбец матрицы содержит X = дт - 1(дт - 1) / (д - 1) единиц, каждая строка содержит р = единиц. Например, евклидово-геометрический код EG(2, 22) будет иметь проверочную матрицу (2), что соответствует структуре регулярного ЬБРС (15, 4, 4).

Позднее в [4] было доказано, что нерегулярные LDPC-коды (веса столбцов и строк описываются с помощью функций X(i) и p(i), задающих долю столбцов и строк с весом i) имеют лучшие характеристики по сравнению с регулярными.

Для получения оптимального ансамбля и скорости, а также длины кода в [5] предлагается метод построения нерегулярной проверочной матрицы с использованием операций удаления строк и деления столбцов HEG.

Первый шаг метода состоит в определении величины максимального веса столбца dl матрицы. Например, dl = 4 (данная цифра выбрана с целью упрощения дальнейших расчетов и выборок, в реальных условия значение dl выбирается значительно больше).

Второй шаг - выбор евклидово-геометри-ческого кода. Для рассматриваемого примера EG(2, 2s). В общем случае необходимо выбрать s таким образом, чтобы 2s 1 < dl < 2s + 1. Для dl = 4 величина s будет равна 2, следовательно, необходимо выбрать код EG(2, 22).

Затем делятся столбцы и распределяются веса матрицы. Разделение и понижение веса столбца выполняется для уменьшения количества циклов длины 6, которые присутствуют в евклидово-геометрических кодах.

Существует несколько способов разделения столбцов. Например, столбец с постоянным весом ps делится случайным образом на несколько столбцов с меньшим весом, в сумме равным ps. Для рассматриваемого примера столбец с весом 4 делится на один с весом 2 и два с весом 1. Тогда Р(2) = 0,3125, р(1) = 0,6875. Число столбцов REG евклидово-геометрического кода EG(2, 22), составляющих базис, будет:

Reg = 2s  2s - 1.

После разделения число столбцов становится RT.

Однако более корректно применение способа случайного разделения, основанного на латинских квадратах. Для этого выбирается простое число P такое, что P > 2s. Создается базовая случайная последовательность C(i) длины P - s:

C(i + 1) = GoC(i) mod P,

где G0 принадлежит полю Галуа GF(P). Числа, большие 2s, удаляются из последовательности C(i), и ее длина становится равной 2s. На основе C(i) генерируется перестановочный шаблон LBj(i) c шагом S(j) = j для j = 1, 2, ..., 2s. Тогда j-я последовательность латинского квадрата столбца q и строки i вычисляется как

Ljp

для j = 1, 2, ..., 2s, i = 1, 2, ..., 2s и q = 1, 2, ..., 2s.

Преимущество рассмотренного способа удаления состоит в том, что передающая и

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

Еще один способ разделения столбцов -поиск на основе линейного программирования оптимальных генераторных функций р(х) и А,(х) так, чтобы их распределение было максимально приближено к гауссовской аппроксимации (возможно итеративное вычисление этих распределений). Для рассматриваемого примера с весом С = 4 и скоростью кода г = 0,5 распределения р(х) и А,(х) приведены в табл. 1.

Таблица 1

Распределения весов

Веса х Доля столбцов с заданным весом Х

1 - 0,6

2 0,2795 0,3

3 0,3477 -

4 0,2 -

Следующий шаг - задание скорости кода г, например 0,5, и установление информационной длины К на основании зависимости: К = Ыг. Например, если N = 30, то К = 30 • 0,5 = 15.

Последний шаг - удаление строк. Количество удаляемых строк должно вычисляться с учетом длины информационной последовательности: Вг = Ят — К. Иными словами, Вг строк должны быть удалены так, чтобы новые вероятности р(х) были как можно ближе к первоначальным.

Существует другой способ удаления строк. Строки удаляются сразу в базовом евклидово-геометрическом коде £^(2, 2х). Число удаляемых строк: БгЕО = КЕО(Кт - К) / Ят.

После удаления ОгЕО строк пересчитываются распределения р(х) и А,(х). Например, для НЕО(2,22) необходимо удалить 5 строк. Затем выписываются номера столбцов, в которых есть единицы, сортируются и удаляются пять последних. Получаем новые распределения для веса сИ = 4 и скорости кода г = 0,5, приведенные в табл. 2.

Таблица 2

Модифицированное распределение весов

Проверочные разряды

Веса х Доля столбцов с заданным весом Х(х) Количество столбцов с заданным весом

1 0,0250 1

2 0,3000 6

3 0,3750 5

4 0,3000 3

Информационные разряды

Веса х Доля строк с заданным весом р(х) Количество строк с заданным весом

4 1 10

Н. В. Пацей

157

Перед разделением столбцов матрицы составим таблицу возможных вариантов делений. Например, столбец веса 4 может быть разделен четырьмя возможными способам: 1x4, 2x2, 3x1 + 1x1, 4x1.

На основе подобных таблиц происходит разделение евклидово-геометрического базиса кода и конфигурация проверочной матрицы нерегулярного ЬБРС-кода. Метод деления можно применять как к столбцам, так и к строкам. Минимальное расстояние кода проверочной матрицы ИОР рассчитываться как ётт > X + 1.

Исследования показывают, что при разделении на основе определенного алгоритма улучшаются корректирующие свойства кода. Однако случайное разделение столбцов и нерегулярность кода (по сравнению с регулярными при одинаковой скорости) приводит к значительному увеличению производительности.

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

Существует еще один метод [6] построения ЬБРС-кодов, существенно отличающийся от рассмотренного выше. В основе его лежит свойство -любой циклический сдвиг кодового слова есть также кодовое слово. Такой блоковый код называется квазициклическим ^С-ЬБРС).

Проверочная матрица кода представляет собой сочетание Н — [И\, И2, ..., Ир] циклических матриц:

Идс "

(Р Р

1 а1,1 1 а1,2

Р Р

а 2,1 а 2,2

Р Р

ат,1 ат,2

Р Р Л

а1,с-1 а1,с

Р Р

а 2,с-1 а 2,

Р Р

ат, с-1 ат,

.

где а], к представляет собой циклический сдвиг столбцов матрицы на г разрядов. Таким образом, Рг - перестановочная матрица размера Ь*Ь, которая образуется в результате циклического сдвига столбцов на 7 позиций. Можно по-

( 41

3

И,

вс

30 -

2 31

- 11 -

28 - -

- 24

37 - 18

- 29 -

42 - 13

лучить серию элементарных перестановочных матриц, например, для размера Ь — 5:

(1

Ро =

Л

1

(

..Р4 =

11

1

.

В реальных системах Ь выбирается достаточно большим, например Ь — 87, Ь — 101 и т. д.

Выбор единичной матрицы в качестве Р0 не является обязательным. Например, для Ь — 5Р0 может быть следующей:

Р =

(1

1 1

1

1

1

1

1 1

В общем случае циклическая матрица описывается ассоциируемым полиномом:

р, (х) = £( Рг )а]Х] .

]=0

Первый способ генерации проверочной матрицы квазициклического ЬБРС-кода основан на случайном распределении перестановочных матриц с заданным распределением р(х) и Х(х) (в зависимости от их выбора могут быть построены регулярные и нерегулярные коды). Если Ь — 47, т — 6, ] — 12, то общий размер матрицы QC-LDPC кода И со скоростью 0,5 будет Ьт*Ц или 282x564 (6).

Прочерки означают нулевые матрицы, цифры - номер перестановочной матрицы.

Второй способ получения проверочной матрицы основан на выборе двух чисел а и Ь, принадлежащих ненулевым элементам поля Галуа GF(L), где Ь - простое число. Тогда заполнение матрицы И размером Ьт*Ц - расстановка перестановочных матриц. В общем случае (5, 1)-

элемент матрицы равен Р5Л — Ь(5

для 1 < 5 < т, 1 < 1 < ] (7).

V-1)

mod Ь

0 - - - -Л

0 0 - - -

- 0 0 - -

- - 0 0 -

- - - 0 0

- 23 1

- 16 -

- 3 -

- 0 -35 - -- - 1 - - - - 0

И

дс

(Р

Рь

Рт

Ра

Ра

аЬ

Р

Ьат

Р

а

Р 2

Р 2

Ра]-1

Ра]-1Ь Р

8 16 32 17 34 21 42 37 27

40 33 19 38 29 11 22 44 41

12 24 1 2 4 8 16 32 17

13 26 5 10 20 40 33 19 38

18 36 25 3 6 12 24 1 2

43 39 31 15 30 13 26 5 10

2 4 10 20

3 6 15 30 28 9 46 45

Получаем регулярный квазициклический LDPC-код с X = т - 1, с = ] - 1 и скоростью г > 1 - (т / ]). Для данной матрицы длина самого короткого цикла будет 8 (что значительно больше, чем у LDPC-кодов, построенных на основе евклидово-геометрических кодов). Большая величина длины цикла позволяет эффективно использовать декодирование с распространением доверия. Примером для Ь — 47, т — 6, ] — 12, а — 2 и Ь — 5 из GF(47) матрица QC-LDPC-кода И будет матрица (8). Очевидно, что приведенный базовый метод построения квазициклических кодов является основой для модификаций и оптимизации отдельных шагов построения поверочных матриц (например, удлинение, усечение, выкалывание и т. п.).

Заключение. По результатам синтеза коды с проверочными квазициклическими низ-коплотностными матрицами, полученными на основе случайных перестановок, имеют производительность в 1,5 раза выше, чем коды с матрицами на основе структурированных евклидово-геометрических кодов при одинаковой скорости кода (0,5), при одинаковом количестве проверочных и информационных разрядов (283, 564). Однако корректирующая способность кодов на основе квазициклических матриц нестабильна и изменяется в диапазоне от 10-3 до 10-5 (при уровне = 6 dB).

Литература

1. Gallager, R. G. Low Density Parity Check Codes / R. G. Gallager. - Cambridge, MA: MIT. -Press, 1963. - 90 p.

2. Roca, V. RFC 5170 on Low Density Parity Check (LDPC) Staircase and Triangle Forward Error Correction (FEC) Schemes / V. Roca, C. Neumann, D. Furodet [Electronic resource]. -Mode of access: http://search.usa.gov. - Date of access: 25.06.2008.

3. ^u, Y. Low Density Parity Check Codes based on Finite Geometries: A Rediscovery / Y. Kou, S. Lin, M. P. C. Fossorier R. // IEEE Trans. Inform. Theory. - 2001. - Vol. 47. - Р. 2711-2736.

4. Improved low-dencity parity-check codes using irregular graphs and brelief propogation / M. G. Luby [et al.] // Proc. of IEEE Intern. Symposium on Inform. Theory. - Cambridge. Mass, 1998. - P. 171.

5. LDPC code inspection matrix generation method and inspection matrix generation device: рat. US 7089479B2, H03M 13/00 / Wataru Ma-tsumoto [Electronic resource]. - Mode of access: http://search.usa.gov. - Date of access: 10.03.2010.

6. LDPC block and convolutional codes based on circulant matrices / R. M. Tanner [et al.] // IEEE Trans. on Inform. Theory. - 2004. - Vol. 50, № 12. - Р. 2966-2984.

Поступила в редакцию 31.03.2010

HQC

Г1

5

25 31 14 23