Например, Бобцов

ДЕКОДЕР LDPC-КОДОВ ДЛЯ ЦИФРОВОГО ТЕЛЕВИДЕНИЯ

54
УДК 621.391.15
С. И. ЕГОРОВ, В. О. АВДЕЕВ, Э. И. ВАТУТИН, В. С. ПАНИЩЕВ
ДЕКОДЕР LDPC-КОДОВ ДЛЯ ЦИФРОВОГО ТЕЛЕВИДЕНИЯ
Предложена структурно-функциональная организация декодера LDPC-кодов для приемников цифрового телевидения второго поколения, обеспечивающая малые реализационные потери исправляющей способности и уменьшенную аппаратную сложность реализации. Ключевые слова: DVB-S2, LDPC-код, итеративное декодирование, декодер.
Качество и стоимость телевизионных приемников систем цифрового телевидения второго поколения (DVB-S2 и DVB-T2 [1]) во многом зависят от важного компонента: декодера помехоустойчивых LDPC-кодов. Это делает актуальной задачу разработки декодеров длинных LDPC-кодов с невысокой сложностью аппаратной реализации и высокой исправляющей способностью. Вариант такого декодера предлагается в настоящей работе.
ИЗВ. ВУЗОВ. ПРИБОРОСТРОЕНИЕ. 2013. Т. 56, № 6

Декодер LDPC-кодов для цифрового телевидения

55

LDPC-код — это линейный блоковый код длины n с k информационными и m проверочными символами, задаваемый проверочной матрицей H=[hij]mxn, определяющей вид двудольного графа Таннера [2].
Граф Таннера (рис. 1) имеет два множества вершин. Одно состоит из m проверочных
вершин {с1,с2,..., сm}, соответствующих m строкам матрицы H, второе — из n кодовых вер-
шин {b1,b2,...,bn} , соответствующих n столбцам матрицы H. Кодовая вершина bj соединяется
ребром с проверочной вершиной ci в том случае, если в ячейке hij матрицы H находится единица.
c1 c2 c3 c4 c5 c6
++++++

Степень r

Фаза 2

Степень d

Фаза 1

b1 b2 b3 b4

b5 b6 b7 b8 b9

Рис. 1

В стандарте DVD-S2 (DVB-T2) [1] используются два множества структурированных

LDPC-кодов: „длинные“ коды (normal) с длиной слова 64 800 бит и „короткие“ коды (short) с

длиной слова 16 200 бит. Эти множества содержат коды с различными значениями r: {1/4,

1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10 (9/10 — только для длинных кодов)}.

Предлагаемый декодер реализует итеративный алгоритм декодирования Message Passing

(MP) [3], согласно ему, верные значения битов кодового слова определяются в результате

многократного обмена сообщениями между вершинами графа Таннера. Всего выполняется n

итераций (см. рис. 2, а). Каждая итерация алгоритма включает две фазы: в первой обновля-

ются сообщения проверочных вершин на основе анализа сообщений кодовых вершин; во вто-

рой — сообщения кодовых вершин на основе анализа сообщений проверочных вершин.

Сообщения кодовых вершин вычисляются по формуле:

∑vn→ki = un + w j→n , j≠i

где vn→ki — сообщение от n-й кодовой к ki-й проверочной вершине; wj→n — сообщение от

j-й проверочной вершины к n-й кодовой; un — логарифмическое отношение правдоподобия (LLR) n-го бита, принятого из канала кодового слова.

Генерация сообщений проверочных вершин выполняется согласно формуле

wk→ni = g(vn1→k , vn2→k ,..., vni−1→k , vni+1→k ,..., vndc →k ) ,
где
{ } ( ) ( )g (a,b) = sign (a)sign (b) min ( a , b ) + LUTg (a,b) , LUTg (a,b) = ln 1+ e− a+b − ln 1+ e− a−b .
Предлагаемый декодер LDPC-кодов обрабатывает сообщения параллельно группами (строками) с использованием техники двух проходов: в 1-м сообщения из памяти поступают в процессорные блоки, где рассчитываются и накапливаются промежуточные значения; во время 2-го одновременно рассчитываются и записываются в память встречные (относительно соответствующих ребер графа Таннера) выходные сообщения.
Организация обработки сообщений декодером представлена на рис. 2, б [4]: Z — степень распараллеливания процедуры обработки сообщений (число процессорных блоков, число столбцов памяти сообщений), для LDPC-кодов, используемых в стандарте DVB-S2,

ИЗВ. ВУЗОВ. ПРИБОРОСТРОЕНИЕ. 2013. Т. 56, № 6

56 С. И. Егоров, В. О. Авдеев, Э. И. Ватутин, В. С. Панищев

Z = 360; q — параметр кода, q=m/Z; u[i] — логарифмические отношения правдоподобия

(LLR) битов принятого из канала кодового слова, LDPC_out[i] — твердые решения относи-

тельно битов кодового слова.

а)
Начало

б)

Память сообщений (RAM)
Z

Кол -во итераций
n_iter

0

...

Очистка памяти RAM

0
1

q-1 2q-1 q 2q

(Z-1)q-1 (Z-1)q

i_iter=0

Нет i_iter