выигрыша не наблюдается. Исправление 11 ошибочных символов без фильтрации нецелесообразно.
Заключение. Аппаратная реализация разработанного для приемников цифрового телевидения декодера кода Рида—Соломона относительно несложна.
Использование фильтрации векторов ошибок по совокупной надежности ошибочных символов позволяет существенно повысить корректирующую способность декодера.
Представленная работа поддержана грантом федеральной целевой программы „Научные и научно-педагогические кадры инновационной России" № 14.В37.21.0621.
список литературы
1. EN 301 210: "Digital Video Broadcasting (DVB), Framing structure, channel coding and modulation for Digital Satellite News Gathering (SNG) and other contribution applications by satellite".
2. Кларк Д., Кейн Д. Кодирование с исправлением ошибок в системах цифровой связи. М.: Радио и связь, 1987. 392 с.
3. Графов О. Б., Егоров С. И., Титов В. С. Мягкое декодирование кодов Рида—Соломона // Изв. ЮЗГУ. Сер. „Управление, вычислительная техника, информатика". Медицинское приборостроение. 2012. № 2, Ч. 1. С. 17—23.
4. Егоров С. И. Алгоритм декодирования кодов Рида—Соломона, исправляющий вплоть до n-k ошибок в кодовом слове // Тр. РНТОРЭС им. А. С. Попова. Сер. „Цифровая обработка сигналов и ее применение". М., 2009. Вып. XI-1. С. 27—30.
Сергей Иванович Егоров —
Виталий Семенович Титов —
Олег Борисович Графов —
Рекомендована Юго-Западным государственным университетом
Сведения об авторах д-р техн. наук, профессор; Юго-Западный государственный университет, кафедра вычислительной техники, Курск; E-mail: [email protected] д-р техн. наук, профессор; Юго-Западный государственный университет, кафедра вычислительной техники, Курск; заведующий кафедрой; E-mail: [email protected]
аспирант; Юго-Западный государственный университет, кафедра вычислительной техники, Курск
Поступила в редакцию 18.02.13 г.
УДК 621.391.15
С. И. Егоров, В. О. Авдеев, Э. И. Ватутин, В. С. Панищев ДЕКОДЕР ЬБРС-КОДОВ ДЛЯ ЦИФРОВОГО ТЕЛЕВИДЕНИЯ
Предложена структурно-функциональная организация декодера ЬБРС-кодов для приемников цифрового телевидения второго поколения, обеспечивающая малые реализационные потери исправляющей способности и уменьшенную аппаратную сложность реализации.
Ключевые слова: Б¥Б-82, ЬБРС-код, итеративное декодирование, декодер.
Качество и стоимость телевизионных приемников систем цифрового телевидения второго поколения (БУВ-82 и БУВ-Т2 [1]) во многом зависят от важного компонента: декодера помехоустойчивых ЬБРС-кодов. Это делает актуальной задачу разработки декодеров длинных ЬБРС-кодов с невысокой сложностью аппаратной реализации и высокой исправляющей способностью. Вариант такого декодера предлагается в настоящей работе.
LDPC-код — это линейный блоковый код длины п с k информационными и m проверочными символами, задаваемый проверочной матрицей Н=^^тхп, определяющей вид двудольного графа Таннера [2].
Граф Таннера (рис. 1) имеет два множества вершин. Одно состоит из m проверочных вершин {с1зС2,...,ст}, соответствующих m строкам матрицы Н, второе — из п кодовых вершин {Д,Ь2,...,Ьп}, соответствующих п столбцам матрицы Н. Кодовая вершина Ь соединяется
ребром с проверочной вершиной ci в том случае, если в ячейке hij матрицы Н находится единица.
01 02 03 €4 €5 €6
Рис. 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^kt = un +Z Wj^n , j *i
где — сообщение от n-й кодовой к k-й проверочной вершине; Wj^n — сообщение от
j-й проверочной вершины к n-й кодовой; un — логарифмическое отношение правдоподобия
(LLR) n-го бита, принятого из канала кодового слова.
Генерация сообщений проверочных вершин выполняется согласно формуле
wk ^n = g (vnx ^k, vn2 ^k ^^ vn _ ^k, vn+1 ^k ^^ vndc ^k ) ,
где
g (a, b) = sign (a) sign (b) {min ((, |b|)} + LUTg (a, b) , LUTg (a, b) = ln (1 + e_a+b ) _ ln (1 + e_a) .
Предлагаемый декодер LDPC-кодов обрабатывает сообщения параллельно группами (строками) с использованием техники двух проходов: в 1-м сообщения из памяти поступают в процессорные блоки, где рассчитываются и накапливаются промежуточные значения; во время 2-го одновременно рассчитываются и записываются в память встречные (относительно соответствующих ребер графа Таннера) выходные сообщения.
Организация обработки сообщений декодером представлена на рис. 2, б [4]: Z — степень распараллеливания процедуры обработки сообщений (число процессорных блоков, число столбцов памяти сообщений), для LDPC-кодов, используемых в стандарте DVB-S2,
Z = 360; q — параметр кода, q=mlZ; и[Г] — логарифмические отношения правдоподобия (ЬЬЯ) битов принятого из канала кодового слова, ЬВРС_оШ;[/] — твердые решения относительно битов кодового слова.
а)
б)
1 i г
Вывод твердых
решении
i г
С
Конец
Фаза 1 для проверочных
битов +
Фаза 2
i iter = i iter+1
Память сообщений (RAM )
q-1
u[0]
Сдвигатель
- - - -
///// 0 _ q-1 _ q 2q-1 2q (Z- 1 ) q- 1 (Z- 1-q
- - -
_ 0 _ 1 q q+1 _ 2q _ 2q+1 (Z- 1- q (Z- 1) q + 1
- - -
q-2 q-1 2q-2 2q-1 3q-2 3q-1 Zq-2 Zq- 1
G/ G/
/X /X
t t
u[1] u[2]
%
u [Z - 1 ]
LDPC_out[0] LDPC_out[1] LDPC_out [2]
LDPC _out[Z-1]
Z
0
Рис. 2
Память сообщений содержит Zq блоков сообщений. В каждом блоке хранятся сообщения, относящиеся к одному проверочному уравнению из матрицы H. После первой фазы итерации эти сообщения являются входными по отношению к проверочной вершине, после второй — выходными.
При обработке информационных битов в первой фазе группы сообщений, поступающих в линейку процессорных блоков, формируются на основе строк структуры описания кода. Адреса строк сообщений в памяти и значения сдвигов вычисляются предварительно и хранятся в ROM декодера.
При обработке проверочных битов строки сообщений сохраняются по адресам двух нижних ячеек блоков в памяти сообщений. Проверочные биты подаются на вход декодера совместно с перемежением q. Единичный сдвиг осуществляется только для первой строки последней группы данных.
Структурная схема декодера LDPC-кодов приведена на рис. 3 (Data Buffer — буфер приема входных значений LLR битов принятого из канала слова; Processing unit — модуль, содержащий Z процессорных блоков; Shifterl и Shifter2 — сдвигатели; Sel — селектор;
Message RAM — память сообщений декодера; ROM AMR — ПЗУ, используемое для хранения адресов и сдвигов строк сообщений; Cnt AWDB — счетчик адресов записи буфера приема входных данных; Cnt gr — счетчик групп символов кодового слова; Rg BADB — регистр базового адреса буфера приема входных данных; Cnt AMRCN — счетчик адресов памяти сообщений, используемый при обработке сообщений проверочных вершин; Cnt AMRCB — счетчик адресов памяти сообщений, используемый при обработке проверочных битов; Cnt ROM AMR — счетчик адресов ROM AMR; Bit/Check node — признак, определяющий вид сообщений (кодовых вершин или проверочных), обрабатываемых в текущей фазе итерации; Inf/Check bit — признак, определяющий принадлежность LLR, используемых в фазе обработки сообщений кодовых вершин, к информационным или проверочным битам; LDPC_out — выход декодера, на который выдаются символы исправленного слова LDPC-кода).
LDPC out
Рис. 3
LDPC-декодер выполняет итерации алгоритма декодирования следующим образом. В первой фазе активный признак Bit/Check node, подаваемый на вход модуля процессорных блоков, мультиплексора адресов RAM и мультиплексора сдвигов, указывает, что производится обработка сообщений кодовых вершин. Значения LLR битов принятого слова группами по Z значений передаются на обработку в модуль процессорных блоков Processing unit. Одновременно в Processing unit из памяти сообщений Message RAM, через сдвигатель Shifter2, подаются строки сообщений проверочных вершин. Каждая строка содержит Z сообщений.
Если в данной фазе активен признак Inf/Check bit (обрабатываются информационные биты), взятие адресов RAM для строк сообщений и величин сдвигов в сдвигателях Shifterl и Shifter2 осуществляется из ROM AMR памяти декодера. Адреса ячеек данных в памяти ROM AMR определяются счетчиком Cnt ROM AMR.
Если признак Inf/Check bit не активен (обрабатываются проверочные биты), адреса RAM для строк сообщений определяются с помощью счетчика Cnt AMRCB. Сдвиг строк сообщений в этом случае не выполняется, за исключением одного адреса RAM, относящегося к первой строке последней группы LLR проверочных битов. В момент обработки этой строки, определяемый с помощью селектора, величина сдвига устанавливается на значении „1".
После обработки каждой строки сообщений в первом проходе показания соответствующих счетчиков адресов увеличиваются на единицу.
После завершения обработки в первом проходе всех строк сообщений, относящихся к одной группе данных кодового слова, в модуле процессорных блоков Processing unit производится формирование сообщений кодовых вершин и запись их в память через Shifterl. При этом значения сдвигов и адреса RAM для записи определяются аналогично случаю первого прохода, однако счетчики адресов во втором проходе работают как вычитающие, и их показания уменьшаются на единицу после записи каждой новой строки сообщений.
Для каждой группы символов кодового слова на выходе модуля процессорных блоков Processing unit после завершения первого прохода генерируются твердые решения.
После обработки всех групп символов кодового слова декодер переключается во вторую фазу, в которой строки из Z сообщений кодовых вершин считываются из памяти сообщений Message RAM и подаются на вход модуля процессорных блоков Processing unit через Shifter2. Адреса строк сообщений в памяти определяются счетчиком Cnt AMRCN, который после считывания каждой строки увеличивается на единицу. Сдвиги строк сообщений на данной фазе не осуществляются.
После считывания и передачи в модуль процессорных блоков всех строк сообщений одной группы проверочных вершин начинается обратный проход, и формируются строки сообщений проверочных вершин. Затем строки сообщений записываются в память через Shifterl. Адреса RAM для записи строк сообщений также определяются счетчиком Cnt AMRCN, который в данном проходе является вычитающим.
После обработки строк сообщений всех проверочных вершин декодер переходит к выполнению первой фазы следующей итерации. Декодирование кодового слова заканчивается после выполнения заданного числа итераций.
Структурно-функциональная организация разработанного декодера LDPC-кодов характеризуется тем, что
1) обработка сообщений кодовых и проверочных вершин выполняется параллельно с использованием Z процессорных блоков, что обеспечивает высокое быстродействие декодера;
2) использование одного блока памяти для хранения сообщений как кодовых, так и проверочных вершин позволяет уменьшить объем встроенной памяти в декодере;
3) последовательная обработка процессорными блоками строк сообщений, относящихся к одной группе кодовых/проверочных вершин, с использованием двух проходов позволяет снизить число вентилей, необходимых для реализации декодера.
Для исследования эффективности исправления ошибок была разработана программная модель предлагаемого декодера LDPC-кодов. Была исследована исправляющая способность декодера в канале с гауссовым шумом (AWGN) и модуляцией QPSK.
На рис. 4 приведены графики зависимостей FER (Frame Error Ratio) на выходе LDPC-декодера от Et/N0 (отношение энергии сигнала на информационный бит к односторонней спектральной плотности шума) для нескольких LDPC-кодов, используемых в системе DVB-S2.
Обозначение кривой n соответствует длинным LDPC-кодам, s — коротким, id — зависимостям FER от Et/Ni) для идеального декодера (без учета реализационных потерь) [5].
FER 1
—г=2/3п —■— r=8/9s -~г= 2/Зп id --0--Г-3/9s id
3,5 Eb/N0, dB
1,5 2 2,5 3
Рис. 4
Результаты проведенных исследований показали небольшое значение потери исправляющей способности, обусловленное неидеальной реализацией декодера (0,2 ёЬ для кода 2/3п, менее 0,1 ёЬ — для коротких кодов).
Разработанный декодер ЬБРС-кодов для приемников цифрового телевидения второго поколения обеспечивает малые реализационные потери исправляющей способности и уменьшенную аппаратную сложность реализации.
Представленная работа поддержана грантом Федеральной целевой программы „Научные и научно-педагогические кадры инновационной России" № 14.В37.21.0621.
список литературы
1. DVB-S2. Стандарт. ETSIEN 302 307 V1.1.1 (2005-03) Digital Video Broadcasting (DVB).
2. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. М.: Техносфера, 2005. 320 с.
3. Eroz M., Sun F.-W., Lee L.-N. DVB-S2 low density parity check codes with near Shannon limit performance // Intern. J. of Satellite Communications and Networking. 2004. Vol. 22, N 3. P. 269—279.
4. Егоров С. И., Чупахин А. Ю. Вычислительный алгоритм декодирования LDPC-кодов стандарта DVB-S2 // 7-я Междунар. науч.-техн. конф. „Оптико-электронные приборы и устройства в системах распознавания образов, обработки изображений и символьной информации". Курск: КГТУ, 2005. С. 137—139.
5. Valenti M. C., Cheng S., Iyer Seshadri R. Turbo and LDPC codes for digital video broadcasting // Chapter 12 of Turbo Code Applications: A Journey from a Paper to Realization. Springer, 2005.
Сведения об авторах
Сергей Иванович Егоров — д-р техн. наук, профессор; Юго-Западный государственный универси-
тет, кафедра вычислительной техники, Курск; E-mail: [email protected] Вадим Олегович Авдеев — аспирант; Юго-Западный государственный университет, кафедра вы-
числительной техники, Курск; E-mail: [email protected] Эдуард Игоревич Ватутин — канд. техн. наук, доцент; Юго-Западный государственный университет,
кафедра вычислительной техники, Курск; E-mail: [email protected] Владимир Славиевич Панищев — канд. техн. наук, доцент; Юго-Западный государственный университет,
кафедра вычислительной техники, Курск; E-mail: [email protected]
Рекомендована Юго-Западным Поступила в редакцию
государственным университетом 18.02.13 г.