Об одной конструкции кодов с малой плотностью проверок на четность с циклической структурой макроблоков

КОДИРОВАНИЕ И ПЕРЕДАЧА ИНФОРМАЦИИ ^

УДК 621.391.251

С1о1:10.15217/155п1684-8853.2017.2.58

ОБ ОДНОЙ КОНСТРУКЦИИ кодов С МАЛОЙ ПЛОТНОСТЬЮ ПРОВЕРОК НА ЧЕТНОСТЬ С ЦИКЛИЧЕСКОЙ СТРУКТУРОЙ МАКРОБЛОКОВ

Д. О. Иванов3, инженер-программист

А. В. Козлов3, ведущий инженер-программист

А. А. Овчинников3, канд. техн. наук, доцент

аСанкт-Петербургский государственный университет аэрокосмического приборостроения, Санкт-Петербург, РФ

Постановка проблемы: современные инфокоммуникационные системы требуют достижения высоких скоростей передачи информации с обеспечением при этом высокой надежности, т. е. низкого уровня вероятности ошибки. Для борьбы с помехами, возникающими в канале связи, традиционно используют коды, исправляющие ошибки. Одним из наиболее мощных и одновременно эффективных современных средств помехозащищенного кодирования являются коды с малой плотностью проверок на четность. Однако требование достижения крайне высоких скоростей передачи информации ставит задачу построения не просто кодов, хорошо исправляющих ошибки и имеющих простые процедуры кодирования и декодирования, а конструктивно ориентированных на возможности более эффективной реализации, в том числе аппаратной. Цель исследования: построение эффективных кодов с малой плотностью, структура которых позволяет оптимизировать существующие архитектуры декодеров. Результаты: предложена модификация конструкции кодов с малой плотностью на основе кодов Рида — Соломона, обладающая циклической структурой макроблоков. Показано, как данная структура может быть использована для оптимизации архитектуры частично параллельного декодера, основанного на многоуровневом алгоритме распространения доверия. Практическая значимость: предложенные конструкция и архитектура декодера позволяют достигать низких вероятностей ошибки декодирования в высокоскоростных системах передачи информации (таких, например, как оптические каналы связи).

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

Введение

Коды с малой плотностью проверок на четность (low-density parity-check codes — LDPC) были предложены Р. Галлагером в ранних 60-х годах прошлого века [1, 2], однако были забыты вплоть до конца столетия, так как эффективность этих кодов начинает существенно проявляться с увеличением их длины, сегодня достигая значений от тысяч до сотен тысяч бит, а вычислительные возможности того времени не позволяли работать с такими длинами. С ростом производительности вычислительной техники за последние 15-20 лет LDPC-коды стали одним из основных изучаемых классов помехоустойчивого кодирования, как широко распространенным в существующих стандартах связи [3-8], так и предлагаемым для использования в перспективных, таких как мобильная связь пятого поколения (5G) или оптическая проводная связь.

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

ритмы могут использоваться как в жестком (двоичный симметричный канал — ДСК), так и в полунепрерывном каналах связи (канал с АБГШ — аддитивным белым гауссовым шумом), а также для исправления стираний. Один из самых распространенных алгоритмов декодирования для канала с АБГШ был предложен Р. Галлагером и называется алгоритмом распространения доверия (belief propagation — BP) [1, 2, 9].

Итеративные посимвольные декодеры для LDPC-кодов обычно описываются с помощью графа Таннера [10], являющегося двудольным графом, задаваемым проверочной матрицей кода как матрицей инцидентности (рис. 1). Граф Таннера состоит из двух множеств вершин, символьных и проверочных. Алгоритмы декодирования описываются как вычисление сообщений в узлах графа и пересылка вычисленных сообщений по ребрам графа. На вероятность ошибки таких декодеров могут влиять различные структуры графа, такие как длина минимального цикла (обхват графа) [11], распределение весов ребер [12-14], блокирующие и останавливающие множества [15, 16]. Простейшим ограничением, накладываемым на структуру кода, является отсутствие в графе Таннера циклов длиной 4, т. е. с учетом четности длин циклов двудольного графа обхват графа должен быть равен по меньшей мере 6.

H=

Рис. 1. Проверочная матрица LDPC-кода и соответствующий ей граф Таннера

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

Одним из самых общих подходов, сложившихся за последние годы, является использование проверочной матрицы, состоящей из блоков матриц перестановки (так называемых блочно-перестановочных конструкций), и дальнейшее ее маскирование нулевыми блоками для варьирования весовых распределений, цикловых структур графа и т. п. [11, 17]. Это позволяет строить, как правило, квазициклические коды, для которых возможны эффективные процедуры кодирования и декодирования.

Сегодня известно множество модификаций алгоритма распространения доверия, некоторые из которых призваны уменьшить вероятность ошибки декодирования, некоторые — упростить вычисления и реализацию [18-21]. Одной из таких модификаций является многоуровневый алгоритм распространения доверия (layered belief propagation — L-BP) [22, 23]. При построении архитектур декодеров актуальными являются так называемые частично параллельные декодеры, использующие компромисс между выигрышем от распараллеливания и количеством вычислительных элементов. В данной статье рассматриваются блочно-перестановочные конструкции LDPC-кодов, обладающие дополнительным свойством — циклической структурой макроблоков в проверочной матрице. На основе этой структуры рассматривается упрощение архитектуры частично параллельного декодера для алгоритма L-BP.

Блочно-перестановочные коды, основанные на кодах Рида — Соломона

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

17, 24, 25]. Основой такой конструкции является проверочная матрица кода, имеющая вид

Сц С12 ... С1

^ С22 •

н =

-1р

J2\

-2р

YP

где С,-  — произвольные подматрицы. Чаще всего

-,1

в качестве подматриц выбираются перестановочные матрицы, если же они являются степенями матрицы циклической перестановки

С =

" 0 0 0 . . 0 1"

1 0 0 . . 0 0

0 1 0 . . 0 0

0 0 0 . . 1 0

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

В работе [26] предложена следующая комбинаторная конструкция для построения блочно-перестановочных LDPC-кодов на основе кодов Рида — Соломона (RS-LDPC). Рассмотрим код Рида — Соломона (РС) над полем GF(д) длиной п = д - 1 с двумя информационными символами. Известно [27, 28], что такой код имеет минимальное расстояние <!РС = п - 1, это значит, что любые два кодовых слова либо различны во всех позициях, либо совпадают не более чем в одной позиции. В дальнейшем будем рассматривать укороченный РС-код длиной р, где р < п. Будем считать, что элементы поля GF(д) заданы целыми числами {0, 1, 2, ..., д - 1}, где 0 и 1 — ноль и единица поля, а для всех остальных чисел справедливо , = а1-1, а — примитивный элемент поля.

Из укороченного (р, 2) РС-кода выберем кодовое слово a веса р и составим множество

С1 = {ря: р е GF(д), р ф 0,1}.

Множество С1 состоит из д векторов веса р, любая пара векторов различается во всех позициях. Разобьем линейное векторное пространство С, состоящее из кодовых слов (р, 2) РС-кода, на смежные классы С,,, = 2, ..., д по пространству С1. Для элемента а е GF(д) зададим характеристический вектор е(а) длиной д с единицей на позиции а

и нулями на всех остальных позициях. Пусть аг (в) — ]-й символ (] = 0, ..., р - 1) в-го вектора (в = 1, ..., д) смежного класса Сг, тогда сформируем матрицу Н(4) следующим образом:

=

Фь,о С1)) СК,1 С1)) с

сКР-1

.

Зададим проверочную матрицу RS-LDPC-кода

как

" Н

н =

н

Такой код является регулярным LDPC-кодом с весом строк р и весом столбцов у. По построению обхват графа Таннера для этого кода не менее 6. Из (1) и (2) матрица H состоит из блоков

си =

сЦ-;

с

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

Макроблоковые LDPC-коды на основе RS-LDPC-кодов

Рассмотрим модификацию конструкции RS-LDPC, описанной в предыдущем разделе. Как и ранее, конструкция основана на (п, 2) РС-коде над полем GF(g), п = д - 1. Код Рида — Соломона имеет подкод, являющийся кодом с повторением, состоящий из кодовых слов

е1 = (0, 0, ..., 0),

С2 = (1, 1, ..., 1),

Сд = (д - 1, д - 1, д - 1).

Возьмем любое кодовое слово a кода РС, не принадлежащее коду с повторением, и сформируем матрицу

' а + а + с9

X =

а + сл

Матрица X является (д х д - 1)-матрицей над GF(g), ее строками являются кодовые слова РС-кода вследствие линейности этого кода. Пусть ху — элемент X и X; = \х1г, х2г, бец X. Зададим

дг

]т — г-й стол-

У =

с

с

где е(х.;), как и ранее, — характеристический

ч

вектор элемента ху е GF(g). Заметим, что все элементы Xг различны по построению, и Уг — (д х д)-матрица перестановки, которую мы будем называть «блоком». Более того, если д — простое число, то Уг является матрицей циклической перестановки. Сформируем (д х д(д - 1))-матрицу

У = \Yl, У^ .. Yд-l],

полностью определяемую выбором первоначального кодового слова а. Обозначим это кодовое слово как а(1) = а, и У(1) = У.

Выберем теперь значение у, являющееся делителем д - 1. Так как РС-код является циклическим кодом, вектор а(2) = а(1) >>> у, являющийся циклическим сдвигом вектора а(1) на у позиций, также принадлежит коду РС. Повторяя для а(2) описанные ранее шаги, получим матрицу У*2). Заметим, что У(2) = У(1) >>> уд. Если рассматривать матрицу У(1) как состоящую из блоков Уг, то У2) — это матрица, полученная циклическим сдвигом блоков У(1) на у позиций. Задавая У3) = у(2) >>> уд и т. д., получим матрицу

у

н

л У)

имеющую в точности у единиц в каждом столбце и д - 1 единиц в каждой строке. Взяв р блоков-столбцов из матрицы Н, р < д - 1, получим (у, р)-регулярный LDPC-код. Представим эту матрицу в блоковом виде, отдельно выделив (д х д)-макроблоки:

Н =

ч-у

Уу+1 ... У2у

1у+1

12у

... У.

У2у+1 — Узу

V V

д-у д—1

V V

... У,

Перенумеровав блоки-столбцы Н (состоящие из д столбцов каждый) от 1 до д - 1, переупоря-

дочим их в соответствии со следующей перестановкой:

% = {1, X + 1, 2Х + 1, (у - 1)Х + 1, 2, Я + 2, 2Х + 2, ..., (у - 1)Х + 2,

Я, 2Х, ЭХ, ..., д - 1},

где X = (д - 1)/у. Результат переупорядочивания даст матрицу HMaoro, задающую код, эквивалентный задаваемому матрицей H и дополнительно обладающий циклической макроблоковой структурой, которую мы проиллюстрируем на примере.

Пусть у = Э, р = 9, X = Э. Тогда

Н =

Yi

y7 y4

y2 y8 y5

Yg Yg Y«

y4

Yi

y7

y5 y2 y8

y7 y4

Yi

y8 y5 y2

Yg Y6 Y3

Нмасго _

Yi Y4 Y7 Y2 Y5 Y8 Yg Y6 Yg

Y7 YI Y4 Y8 Y2 Y5 Yg Yg Y6

Y4 Y7 Yi Y5 Y8 Y2 Y6 Yg Yg

и n = {1, 4, 7, 2, 5, 8, 3, 6, 9}. Применяя эту перестановку, получим

Такая структура макроблоков может использоваться для реализации эффективных схем кодирования и декодирования.

При построении блочно-перестановочных кодов, задаваемых матрицей (1), для улучшения их свойств зачастую используется процедура маскирования, т. е. замена некоторых блоков проверочной матрицы на нулевые блоки. Это не только позволяет получить нерегулярные коды с оптимизированными весами строк и столбцов, но также может приводить к улучшению цикловой структуры соответствующего графа Таннера, так как нулевые блоки могут «разрывать» циклы небольшой длины, приводя к снижению их количества и их влияния на итеративное декодирование [17]. Помимо обычной процедуры маскирования, которая может применяться для рассмотренных конструкций, отметим следующий способ внесения нулевых блоков в проверочную матрицу ^

Пусть Y1 = Y2 = ... = Yy = 0, тогда в приведенном выше примере для у = Э получим

0 0 0 Y4 Y5 Y6 Y7 Y8 Y(

H = Y7 Y8 Yg 0 0 0 Y4 Y5 Y(

_ Y4 Y5 Y6 Y7 Y8 Yg 0 0 0

После применения перестановки п получим матрицу

0 Y4 Y7 0 Y5 Y8 0 Y6 Y

H Macro _ Y7 0 Y4 Y8 0 Y5 Yg 0 Yf

_Y4 Y7 0 Y5 Y8 0 Y6 Yg 0

В этой матрице нулевые блоки стоят на диагоналях макроблоков, таким образом сохраняя мак-роблоковую структуру кода. Данный код остается регулярным LDPC-кодом.

Архитектура декодера для кодов с циклической структурой макроблоков

Для декодирования LDPC-кодов используются итеративные посимвольные декодеры, в основе большинства которых лежит алгоритм BP [1, 2]. Однако существует множество его модификаций, нацеленных как на уменьшение вероятности ошибки декодирования, так и на упрощение его реализации. Одной из таких модификаций является алгоритм L-BP [23, 24].

Приведем описание алгоритма L-BP. Входом декодера являются логарифмы отношения правдоподобия (log-likelihood ratio — LLR) принятых символов. Пусть H — (г х n) проверочная матрица вида (3), состоящая из у полос, где в каждой полосе в каждом столбце содержится не более одной ненулевой позиции. Пусть каждая полоса содержит q строк. Обозначим через N(i) множество индексов ненулевых позиций в i-й строке H, через M(j) — множество индексов ненулевых позиций в j-м столбце H. Ниже приведен алгоритм L-BP.

Вход алгоритма: LDPC-код с проверочной матрицей H = [H(1), ..., HM]T, а также значения входных LLR Xj для j = 1, ..., n.

Инициализация: в каждой символьной вершине Aj = Xj для j = 1, ..., n. В каждой проверочной вершине Rij = 0 для всех j е N(i) и i е M(j).

Одна итерация алгоритма: каждая итерация состоит из у подытераций, соответствующих обработке горизонтальных полос Ht, где t = 1, ..., у. Для каждой i-й проверки в полосе Ht выполнить:

Шаг 1. Для всех j е N(i) выполнить

Qj = Л- - Bj.

Шаг 2. Для всех j е N(i) выполнить

Rij = (-lf(i)i

П sign(Q;y

i'eN(i)\j

Z V

i'eN (i)\j

где y(x) = - ln(tanh(x/2)).

Шаг 3. Для всех j e N(i) выполнить

Aj = Qj + Rij.

Архитектуры декодеров LDPC-кодов включают в себя модуль для обработки символьных вершин VNP (variable node processor) и модуль для обработки проверочных вершин CNP (check node processor) графа Таннера. В некоторых случаях эти модули проводят вычисления в два этапа и подразделяются на FH-VNP (first-half VNP) и SH-VNP (second-half VNP) и FH-CNP и SH-CNP соответственно.

Архитектура декодера BP (и L-BP) может ре-ализовываться в полностью параллельном режиме, однако это требует большого количества вычислительных элементов, а также приводит к низкому коэффициенту загрузки каждого элемента. Поэтому интерес представляют так называемые частично параллельные архитектуры декодирования. Рассмотрим один из возможных подходов к организации такой архитектуры для матриц вида (3).

Декодер с частичной параллелизацией по проверочным вершинам обрабатывает параллельно q проверочных вершин, т. е. содержит q модулей VNP и n модулей CNP. Обработка матрицы H ведется последовательно от одной горизонтальной полосы к другой. Общая схема такой архитектуры приведена на рис. 2.

Для эффективного доступа к памяти вычисления нескольких символьных и проверочных вершин объединяются на одних процессорах. Чтобы учесть это, будем использовать обозначение Xi вместо Xi, а также hi, Rj, Qj вместо соответствующих величин. Частично параллельная архитектура для L-BP-декодера приведена на рис. 3.

Перед началом работы декодера память, хранящая значения апостериорных LLR hi, инициализируется подвекторами входных LLR переставленными в соответствии с матрицами перестановки Cyi последней полосы матрицы H (1). После окончания каждой итерации пересчитанные подвекторы LLR будут находиться в этой па-

' г

vnp) (vnp — (vnp

Коммуникационная логика

CNP) (CNP ••• (CNPI

Коммуникационная логика

H

Рис. 2. Декодер с частичной параллелизацией по проверочным вершинам

Л1 =Х1 + s1 лр sp

Фиксированная перестановка

Фиксированная перестановка

Рис. 3. Частично параллельная архитектура декодера L-BP

мяти в том же порядке, а после обработки каждой полосы (т. е. после выполнения подытерации), — в порядке, соответствующем матрицам перестановок данной полосы.

С учетом того, что после обработки (т - 1)-й полосы вектор Л^ переставлен в памяти в соответствии с перестановкой Ст-1 ¿, в начале обработки т-й полосы вектор А1 переставляется в соответствии с матрицей перестановки Ст; такой, что после ее применения вектор Л^ окажется переставлен в соответствии с перестановкой СтГ Дальнейшее вычисление символьных вершин ^ и Иу происходит в FH-VNP- и СМР-процессорах, при этом дополнительно сохраняются старые значения Qj (это необходимо, чтобы ЯН^МР-процессор мог обновить значения Лу путем добавления к ним пересчитанных значений Иу).

Архитектура декодера L-BP может быть усовершенствована для кодов (4) с циклической структурой макроблоков. Основная цель модификации — полностью избавиться от программируемых перестановок и использовать только

n

q

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

При наличии циклической структуры макроблока проверочная матрица H разделена на макроблоки (у х у), в которых каждая строка блоков является циклическим сдвигом предыдущей. Тогда архитектура декодера L-BP может быть реализована, как представлено на рис. 4.

В отличие от обычного L-BP-декодера, память, хранящая значения апостериорных LLR Л, инициализируется непереставленными подвекто-рами входных LLR Памяти апостериорных LLR разбиты на группы по у элементов в каждой. Пусть при этом эти группы перенумерованы и р = 1, ..., у/р — номер группы. После обработки одной полосы, в отличие от обычного декодера L-BP, обновленные векторы Л(р-1)у+^ попадают

Фиксированная перестановка

Рис. 4. Частично параллельная архитектура декодера Ь-ВР для кода с циклической структурой макроблоков

не в память с номером (p - 1)у + i, а в память с номером (((p - 1) у + i) mod у) + 1, т. е. перед записью в память циклически сдвигаются. Каждый блок памяти внутри группы соединен с фиксированной перестановкой из первой полосы матрицы H. После обработки первой полосы векторы Ai будут размещены в блоках памяти так, что при обработке следующей полосы подвергнутся нужной фиксированной перестановке, так как следующая полоса в макроблоке является циклическим сдвигом предыдущей.

Пусть, например, у = 3 и макроблок содержит блоки — матрицы перестановок A, B и С. В начале обработки векторы Л1, Л2, Л3 находятся в 1-, 2-, 3-м блоках памяти соответственно. При обработке первой полосы векторы Л1, Л2, Л3 подвергаются перестановкам A, B, C соответственно. После обработки FH-VNP-, CNP- и SH-VNP-процессорами происходит обратная перестановка, а затем Л1, Л2, Л3 попадают во 2-, 3- и 1-й блок памяти соответственно. Таким образом, при обработке следующей полосы Л1, Л2, Л3 подвергнутся перестановкам C, A, B соответственно. После обработки всех полос векторы Л1, Л2, Л3 окажутся в исходных блоках памяти.

Результаты моделирования

Проведем анализ результатов моделирования рассмотренных конструкций в канале с АБГШ. Так как основное преимущество предложенных модификаций — эффективность реализации в высокоскоростных системах передачи информации, выберем высокоскоростной код, например R = 0,9 с длиной порядка 10 000. Такие параметры соответствуют, к примеру, кодовым схемам передачи по оптоволоконным линиям [4, 8]. В качестве кода для сравнения выберем конструкцию, основанную на аддитивной группе конечного поля (additive group of prime field — AGPF) [25].

Для построения кода с циклической структурой макроблоков выберем поле GF(101), у = 10. Так как 101 — простое число, блоки проверочной матрицы представляют собой циклические перестановки, и полученный код является квазициклическим, с длиной 10 100 и количеством информационных символов 9099. Заменив диагонали макроблоков нулевыми блоками, получим квазициклический код с длиной 10 100 и количеством информационных символов 9090. Заметим, что в этом случае проверочная матрица имеет полный ранг, что может быть использовано для более эффективной процедуры кодирования [11, 29].

Результаты моделирования в канале с АБГШ приведены на рис. 5. Был использован декодер распространения доверия с 30 итерациями. Код из работы [25] обозначен как «AGPF», код

X AGPF

Рис. 5. Результаты моделирования в канале с АБГШ

с циклической структурой макроблоков — как «Code», а код с маскированием нулевыми блоками — как «Code 0». Видно, что коды с цикличе-

1. Gallager R. G. Low-Density Parity-Check Codes // IRE Transactions on Information Theory. Jan. 1962. Vol. 8. N 1. P. 21-28. doi:10.1109/TIT.1962.1057683

2. Gallager R. G. Low Density Parity Check Codes. — Cambridge, MA: MIT Press, 1963. — 90 p.

3. Krouk E., Semenov S., et al. Modulation and Coding Techniques in Wireless Communications/Ed. by E. Krouk, S. Semenov. — John Wiley & Sons, 2011. — 680 p. doi:10.1002/9780470976777

4. Djordjevic I., Ryan W., and Vasic B. Coding for Optical Channels. — Springer, 2010. — 444 p. doi:10.1007/978-1-4419-5569-2

5. IEEE 802.3an-2006. Part 3: CSMA/CD Access Method and Physical Layer Specifications — Amendment: Physical Layer and Management Parameters for 10 Gb/s Operation, Type 10GBASE-T. Oct. 2006. http://www.techstreet.com/standards/ieee-802-3an-2006?product_id=1514965 (дата обращения: 25.01.2017).

6. IEEE 802.16e-2005. Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems. Feb. 2006. http://www.techstreet.com/standards/ieee-802-16e-2005?product_id=1270606 (дата обращения: 25.01.2017).

7. IEEE 802.11n/d1.0. Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Mar. 2006. http://www.techstreet. com/standards/ieee-802-16e-2005?product_id= 1270606 (дата обращения: 25.01.2017).

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

Заключение

В статье рассмотрена модификация комбинаторной конструкции кодов с малой плотностью проверок на четность, основанной на кодах Рида — Соломона, которая позволяет получать проверочную матрицу кода, обладающую свойством циклической структуры макроблоков. Для данной конструкции проведено моделирование в канале с АБГШ.

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

8. ITU-T Recommendation G.975.1. Forward Error Correction for High Bit Rate DWDM Submarine Systems. Feb. 2004. https://www.itu.int/rec/T-REC-G.975.1-200402-I/en (дата обращения: 25.01.2017).

9. Zyablov V. V., Pinsker M. S. Estimation of the Error-Correction Complexity for Gallager Low-Density Codes // Problems of Information Transmission. 1975. Vol. 11. N 1. P. 23-36.

10. Tanner R. A Recursive Approach to Low Complexity Codes // IEEE Transactions on Information Theory. Sept. 1981. Vol. 27. N 5. P. 533-547. doi:10.1109/ TIT.1981.1056404

11. Lin S., Ryan W. Channel Codes: Classical and Modern. — Cambridge University Press, 2009. — 710 p.

12. Richardson T. J., Urbanke R. L. The Capacity of Low-Density Parity-Check Codes Under Message-Passing Decoding // IEEE Transactions on Information Theory. Feb. 2001. Vol. 47. N 2. P. 599-618. doi:10.1109/18.910577

13. Chung S.-Y., Forney G. D., Richardson T. J., Urbanke R. On the Design of Low-Density Parity-Check Codes Within 0.0045 dB of the Shannon Limit // IEEE Communications Letters. Feb. 2001. Vol. 5. N 2. P. 58-60. doi:10.1109/4234.905935

14. Richardson T. J., Shokrollahi M. A., Urbanke R. L. Design of Capacity-Approaching Irregular Low-Density Parity-Check Codes // IEEE Transactions on Information Theory. Feb. 2001. Vol. 47. N 2. P. 619-637. doi:10.1109/18.910578

15. Di C., Proietti D., Teletar I. E., Richardson T. J., Urbanke R. L. Finite Length Analysis of Low-Density

Parity-Check Codes on the Binary Erasure Channels // IEEE Transactions on Information Theory. Jun. 2002. Vol. 48. N 6. P. 1570-1579. doi:10.1109/ TIT.2002.1003839

16. Richardson T. Error Floors of LDPC Codes // Proc. 41st Allerton Conf. on Communications, Control, and Computing. Allerton House, IL, Oct. 2003. http:// web.stanford.edu/class/ee388/papers/ErrorFloors. pdf (дата обращения: 25.01.2017).

17. Козлов А. В., Крук Е. А., Овчинников А. А. Подход к построению блочно-перестановочных кодов с малой плотностью проверок на четность // Изв. вузов. Приборостроение. 2013. Т. 56. № 8. С. 9-14.

18. Kschischang F. R., Frey B. J., Loeliger H. A. Factor Graphs and the Sum-Product Algorithm // IEEE Transactions on Information Theory. Feb. 2001. Vol. 47. N 2. P. 498-519. doi:10.1109/18.910572

19. Zhang J., Fossorier M. P. C. Shuffled Iterative Decoding // IEEE Transactions on Communications. Feb. 2005. Vol. 53. N 2. P. 209-213. doi:10.1109/TC0MM. 2004.841982

20. Park I.-C., Kang S.-H. Scheduling Algorithm for Partially Parallel Architecture of LDPC Decoder by Matrix Permutation // 2005 IEEE International Symposium on Circuits and Systems. 2005. Vol. 6. P. 57785781. doi:10.1109/ISCAS.2005.1465951

21. Yamagishi H., Noda M. High Throughput Hardware Architecture for (1440,1344) Low-Density Parity-Check Code Utilizing Quasi-Cyclic Structure // 2008 5th Intern. Symp. on Turbo Codes and Related Topics. Lausanne, 2008. P. 78-83. doi:10.1109/ TURBOCODING.2008.4658676

22. Mansour M. M., Shanbhag N. R. High-Throughput LDPC Decoders // IEEE Transactions on Very Large Scale Integration (VLSI) Systems. Dec. 2003. Vol. 11. N 6. P. 976-996. doi:10.1109/TVLSI.2003.817545

23. Hocevar D. E. A Reduced Complexity Decoder Architecture Via Layered Decoding of LDPC Codes // IEEE Workshop on Signal Processing Systems. 2004. SIPS 2004. Austin, TX. P. 107-112. doi:10.1109/SIPS. 2004.1363033

24. Diao Q., Huang Q., Lin S., Abdel-Ghaffar K. A Matrix-Theoretic Approach for Analyzing Quasi-Cyclic Low-Density Parity-Check Codes // IEEE Transactions on Information Theory. Jun. 2012. Vol. 58. N 6. P. 4030-4048. doi:10.1109/TIT.2012.2184834

25. Lan L., Zeng L., Tai Y. Y., Chen L., Lin S., Abdel-Ghaffar K. Construction of Quasi-Cyclic LDPC Codes for AWGN and Binary Erasure Channels: A Finite Field Approach // IEEE Transactions on Information Theory. Jul. 2007. Vol. 53. N 7. P. 2429-2458. doi:10.1109/TIT.2007.899516

26. Djurdjevic I., Xu J., Abdel-Ghaffar K., Lin S. A Class of Low-Density Parity-Check Codes Constructed Based on Reed-Solomon Codes with Two Information Symbols // IEEE Communications Letters. Jul. 2003. Vol. 7. N 7. P. 317-319. doi:10.1109/ LC0MM.2003.814716

27. MacWilliams F., Sloane N. The Theory of Error-Correcting Codes. — North-Holland publishing company, 1983. — 782 p.

28. Kabatiansky G., Semenov S., Krouk E. Error Correcting Coding and Security for Data Networks: Analysis of the Superchannel Concept. — John Wiley & Sons, 2005. — 278 p. doi:10.1002/ 0470867574

29. Li Z., Chen L., Zeng L., Lin S., Fong W. H. Efficient Encoding of Quasi-Cyclic Low-Density Parity-Check Codes // IEEE Transactions on Communications. Jan. 2006. Vol. 54. N 1. P. 71-81. doi:10.1109/TCOMM. 2005.861667

UDC 621.391.251

doi:10.15217/issn1684-8853.2017.2.58

Low-Density Parity-Check Codes with Cyclic Structure of Macroblocks

Ivanov D. O.a, Programmer Engineer, denis.ivo@vu.spb.ru Kozlov A. V.a, Senior Programmer Engineer, akozlov@vu.spb.ru Ovchinnikov A. A.a, PhD, Tech., Associate Professor, mldoc@vu.spb.ru

aSaint-Petersburg State University of Aerospace Instrumentation, 67, B. Morskaia St., 190000, Saint-Petersburg, Russian Federation

Introduction: Modern infocommunication systems require a very high rate of data transmission with high reliability, i.e. low probability of an error. To fight the distortions in a communication channel, error-correcting codes are traditionally used. Low-density parity-check codes are one of the most powerful and effective modern error-correcting techniques. However, to attain a high rate of the transmission, it is not enough to use codes which only correct errors and have simple encoding/decoding procedures. The very construction of the codes should facilitate a more effective implementation, including the hardware level. Purpose: The goal is to construct effective low-density parity-check codes whose structure would allow you to optimize the existing decoder architectures. Results: A modification of low-density parity-check code has been proposed, based on Reed-Solomon codes. It has a cyclic structure of macroblocks. It is shown how this structure can be used to optimize the architecture of a partially parallel decoder based on a layered belief propagation algorithm. Practical relevance: The proposed code construction and decoder architecture allow you to achieve low error probabilities in high-rate data communication systems (e.g. optical wired lines).

Keywords — Low-Density Parity-Check Codes, Codes with Cyclic Structure of Macroblocks, Layered Belief Propagation Algorithm, Partially Parallel Decoding Architecture.

References

1. Gallager R. G. Low-Density Parity-Check Codes. IRE Transactions on Information Theory, Jan. 1962, vol. 8, no. 1, pp. 21-28. doi:10.1109/TIT.1962.1057683

2. Gallager R. G. Low Density Parity Check Codes. Cambridge, MA, MIT Press, 1963. 90 p.

3. Krouk E., Semenov S., et al. Modulation andCodingTechniques in Wireless Communications. Ed. by E. Krouk, S. Semenov. John Wiley & Sons, 2011. 680 p. doi:10.1002/9780470976777

4. Djordjevic I., Ryan W., and Vasic B. Coding for Optical Channels. Springer, 2010. 444 p. doi:10.1007/978-1-4419-5569-2

5. IEEE 802.3an-2006. Part 3: CSMA/CD Access Method and Physical Layer Specifications — Amendment: Physical Layer and Management Parameters for 10 Gb/s Operation, Type 10GBASE-T. Oct. 2006. Available at: http://standards. ieee.org/getieee802/download/802.3-2015.zip (accessed 25 January 2017).

6. IEEE 802.16e-2005. Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems. Feb. 2006. Available at: http://standards.ieee.org/getieee802/download/ 802.16e-2005.pdf (accessed 25 January 2017).

7. IEEE 802.11n/d1.0. Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Mar. 2006. Available at: http://standards.ieee.org/getieee802/ download/802.11-2012.pdf (accessed 25 January 2017).

8. ITU-T Recommendation G.975.1. Forward Error Correction for High Bit Rate DWDM Submarine Systems. Feb. 2004. Available at: https://www.itu.int/rec/T-REC-G.975.1-200402-I/ en (accessed 25 January 2017).

9. Zyablov V. V., Pinsker M. S. Estimation of the Error-Correction Complexity for Gallager Low-Density Codes. Problems of Information Transmission, 1975, vol. 11, no. 1, pp. 23-36.

10. Tanner R. A Recursive Approach to Low Complexity Codes. IEEE Transactions on Information Theory, Sept. 1981, vol. 27, no. 5, pp. 533-547. doi:10.1109/TIT.1981.1056404

11. Lin S., Ryan W. Channel Codes: Classical and Modern. Cambridge University Press, 2009. 710 p.

12. Richardson T. J., Urbanke R. L. The Capacity of Low-Density Parity-Check Codes Under Message-Passing Decoding. IEEE Transactions on Information Theory, Feb. 2001, vol. 47, no. 2, pp. 599-618. doi:10.1109/18.910577

13. Chung S.-Y., Forney G. D., Richardson T. J., Urbanke R. On the Design of Low-Density Parity-Check Codes within 0.0045 dB of the Shannon Limit. IEEE Communications Letters, Feb. 2001, vol. 5, no. 2, pp. 58-60. doi:10.1109/4234.905935

14. Richardson T. J., Shokrollahi M. A., Urbanke R. L. Design of Capacity-Approaching Irregular Low-Density Parity-Check Codes. IEEE Transactions on Information Theory, Feb. 2001, vol. 47, no. 2, pp. 619-637. doi:10.1109/18.910578

15. Di C., Proietti D., Teletar I. E., Richardson T. J., Urbanke R. L. Finite Length Analysis of Low-Density Parity-Check Codes on the Binary Erasure Channels. IEEE Transactions on Information Theory, Jun. 2002, vol. 48, no. 6, pp. 1570-1579. doi:10.1109/TIT.2002.1003839

16. Richardson T. Error Floors of LDPC Codes. Proc. 41st Allerton Conf. on Communications, Control, and Computing,

Monticello, IL, Oct. 2003. http://web.stanford.edu/class/ ee388/papers/ErrorFloors.pdf (accessed 25 January 2017).

17. Kozlov A., Krouk E., Ovchinnikov A. An Approach to Development of Block-Commutative Codes with Low Density of Parity Check. Izvestiia vuzov. Priborostroenie, 2013, vol. 8, pp. 9-14 (In Russian).

18. Kschischang F. R., Frey B. J., Loeliger H. A. Factor Graphs and the Sum-Product Algorithm. IEEE Transactions on Information Theory, Feb. 2001, vol. 47, no. 2, pp. 498-519. doi:10.1109/18.910572

19. Zhang J., Fossorier M. P. C. Shuffled Iterative Decoding. IEEE Transactions on Communications, Feb. 2005, vol. 53, no. 2, pp. 209-213. doi:10.1109/TC0MM.2004.841982

20. Park I.-C., Kang S.-H. Scheduling Algorithm for Partially Parallel Architecture of LDPC Decoder by Matrix Permutation. 2005 IEEE Intern. Symp. on Circuits and Systems, 2005, vol. 6, pp. 5778-5781. doi:10.1109/ ISCAS.2005.1465951

21. Yamagishi H., Noda M. High Throughput Hardware Architecture for (1440,1344) Low-Density Parity-Check Code Utilizing Quasi-Cyclic Structure. 2008 5th Intern. Symp. on Turbo Codes and Related Topics, Lausanne, 2008, pp. 78-83. doi:10.1109/TURB0C0DING.2008.4658676

22. Mansour M. M., Shanbhag N. R. High-throughput LDPC Decoders. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Dec. 2003, vol. 11, no. 6, pp. 976-996. doi:10.1109/TVLSI.2003.817545

23. Hocevar D. E. A Reduced Complexity Decoder Architecture Via Layered Decoding of LDPC Codes. IEEE Workshop on Signal Processing Systems, 2004, SIPS 2004, Austin, TX, pp. 107-112. doi:10.1109/SIPS. 2004.1363033

24. Diao Q., Huang Q., Lin S., Abdel-Ghaffar K. A Matrix-Theoretic Approach for Analyzing Quasi-Cyclic Low-Density Parity-Check Codes. IEEE Transactions on Information Theory, Jun. 2012, vol. 58, no. 6, pp. 4030-4048. doi:10.1109/TIT.2012.2184834

25. Lan L., Zeng L., Tai Y. Y., Chen L., Lin S., Abdel-Ghaffar K. Construction of Quasi-Cyclic LDPC Codes for AWGN and Binary Erasure Channels: A Finite Field Approach. IEEE Transactions on Information Theory, Jul. 2007, vol. 53, no. 7, pp. 2429-2458. doi:10.1109/TIT.2007.899516

26. Djurdjevic I., Xu J., Abdel-Ghaffar K., Lin S. A Class of Low-Density Parity-Check Codes Constructed Based on Reed-Solomon Codes with Two Information Symbols. IEEE Communications Letters, Jul. 2003, vol. 7, no. 7, pp. 317319. doi:10.1109/LC0MM.2003.814716

27. MacWilliams F., Sloane N. The Theory of Error-Correcting Codes. North-Holland publishing company, 1983. 782 p.

28. Kabatiansky G., Semenov S., Krouk E. Error Correcting Coding and Security for Data Networks: Analysis of the Superchannel Concept. John Wiley & Sons, 2005. 278 p. doi:10.1002/0470867574

29. Li Z., Chen L., Zeng L., Lin S., Fong W. H. Efficient Encoding of Quasi-Cyclic Low-Density Parity-Check Codes. IEEE Transactions on Communications, Jan. 2006, vol. 54, no. 1, pp. 71-81. doi:10.1109/TCOMM.2005.861667