Научная статья на тему 'Новый алгоритм списочного декодирования турбокодов'

Новый алгоритм списочного декодирования турбокодов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
255
50
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТУРБОКОДЫ / TURBO CODES / ТУРБОДЕКОДИРОВАНИЕ / СПИСОЧНОЕ ДЕКОДИРОВАНИЕ / LIST DECODING / TURBO DECODING

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

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

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

A NEW ALGORITHM FOR LIST DECODING OF TURBO CODES

The problem of list decoding of turbo codes is considered. A new algorithm of window-based list decoder of convolutional code with soft output is developed in the frames of the parallel turbo decoding method. The proposed algorithm is shown to outperform the algorithm presented earlier; the gain in performance is obtained not only with short words, but also with words of considerable length.

Текст научной работы на тему «Новый алгоритм списочного декодирования турбокодов»

Сведения об авторе

Сергей Валентинович Федоренко — д-р техн. наук, профессор; Санкт-Петербургский государственный

университет аэрокосмического приборостроения, кафедра безопасности информационных систем; E-mail: sfedorenko@ieee.org

Рекомендована кафедрой Поступила в редакцию

№ 51 безопасности информационных систем 0l.02.13 г.

УДК 621.391

А. И. Акмалходжаев, А. В. Козлов НОВЫЙ АЛГОРИТМ СПИСОЧНОГО ДЕКОДИРОВАНИЯ ТУРБОКОДОВ

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

Ключевые слова: турбокоды, турбодекодирование, списочное декодирование.

Введение. Декодирование турбокода — это итеративный процесс, в ходе которого два декодера сверточного кода с мягким выходом обмениваются значениями оценок внешних вероятностей [1—3]. Обычно достаточно 8—10 итераций для того, чтобы изменения оценок декодированных символов стали незначительными, дальнейшее итерирование декодера практически не приводит к уменьшению вероятности ошибки. Одним из способов снижения вероятности ошибки является использование списочного декодирования.

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

Рис. 1

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

те оконный алгоритм списочного декодирования сверточного кода с мягким выходом позволяет достичь выигрыша и на больших длинах.

Оконный списочный декодер сверточного кода с мягким выходом. Оконный алгоритм строит на участках решетки (окнах) мягкие списки размером L, которые в дальнейшем используются при получении априорных вероятностей для всего информационного слова. Для получения такого списка в предложенном алгоритме используется оконный списочный декодер Витерби и оконный MAP-декодер. Так как в текущем окне не известны начальные и конечные состояния пути, для оконного алгоритма Витерби вводят понятие суффикса (рис. 2). Известно, что если длина суффикса Nsuff равна 4—5 длинам кодового ограничения сверточного кода, то выжившие пути в конце суффикса, полученные c помощью алгоритма Витерби, с большой вероятностью имеют общий корень в конце окна (Nwn). Таким образом, суффикс позволяет найти состояние в конце окна, в то время как начальные состояния равновероятны. Пусть t — номер начальной секции окна. Тогда оконный списочный алгоритм Витерби выглядит следующим образом.

1. Выполним параллельный списочный алгоритм Витерби [5, 6] на участке решетки от секции t до t + Nwin + Nsuff . В результате работы этого алгоритма получим для каждого состояния окна и суффикса L лучших путей.

2. Найдем путь с наибольшей конечной метрикой в секции t + Nw^n + Nsuff . Пусть St —

его начальное состояние в окне, а St+N — конечное.

win

3. Из состояния St. выполним обратный проход по решетке в окне для оставшегося L -1 пути.

Npref Nwin Nsuff

Решетка кода Рис. 2

В результате работы оконного списочного алгоритма получаются L путей в окне, которые могут начинаться в произвольном состоянии решетки, но заканчиваются в состоянии

St+N ■ .

win

Поскольку в MAP-алгоритме выполняется два прохода по решетке для нахождения прямых и обратных метрик, в оконном варианте помимо суффикса вводят префикс, который служит для более корректного вычисления метрик в окне (рис. 2), т.е. в оконном MAP [7] алгоритме расчет метрик начинается в секции t - Npref и заканчивается в секции t + Nwin + Nsuff , а

начальные и конечные состояния равновероятны.

Используя полученные пути в окне и оконный MAP-алгоритм, можно получить список мягких решений, выполнив следующие шаги.

1. Найдем с помощью списочного оконного алгоритма Витерби L путей в решетке.

2. Определим первый элемент списка как результат работы алгоритма MAP в окне.

3. Обозначим как Г; все ребра, которые принадлежат l -му пути. Для нахождения l -го элемента списка:

— исключим в окне все ребра, которые принадлежат I -1 лучшему пути, но не принад-

(1-1 1-1

лежат оставшимся Ь -1 путям, т.е. исключим все ребра из множества ^Г - ^((^Г)

Vг=1 г=1 у

— выполним MAP-алгоритм в окне с исключенными ребрами. Выходные надежности алгоритма и будут искомым элементом списка.

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

Стоит отметить, что помимо MAP-алгоритма можно использовать его подоптимальные варианты, такие как Max-Log-MAP или Scaled-Max-Log-MAP [8].

Списочный декодер турбокода. Для того чтобы найти мягкое решение для всего информационного слова, решетка сверточного кода разбивается на равные отрезки. В каждом из отрезков с помощью описанного алгоритма находится список мягких решений, из которых в дальнейшем формируется мягкое решение для всего слова. Однако при разбиении слова на N окон с длиной списка Ь в каждом окне, при полном переборе элементов списка в каждом

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

Рассмотрим окно у с длиной списка Ь = 2. Вычислим евклидово расстояние между первым и вторым элементами списка:

Nwin , ч2

«i= 1

i=1

((, i - E2, i)

где £1 у и Е2 у — первый и второй элементы списка соответственно.

Чем больше евклидово расстояние между векторами, тем с большей вероятностью соответствующие процессы турбодекодирования сойдутся к различным словам. Таким образом, в каждом окне вычисляется евклидово расстояние между элементами списка и оставляются лишь элементы с наибольшим расстоянием. В случае Ь = 2 уменьшение размера списка в окне приведет к тому, что останется лишь его первый элемент и размер общего списка сократится в 2 раза.

Результаты моделирования. Предложенный метод анализировался путем моделирования (рис. 3) на примере турбокода LTE [9].

проверки CRC

Рис. 3

Как видно из рисунка, информационное слово содержит код CRC, который используется для выбора правильного слова из списка. В качестве CRC используется полином CRC_B из стандарта 3GPP LTE [9].

Для вычисления списка мягких решений использовался первый компонентный код турбокода. Моделирование производилось для информационного слова длиной 512, в качестве

алгоритма декодирования турбокода и генерации списка был выбран алгоритм Scaled-Max-Log-MAP с весовым коэффициентом 0,75. Решетка сверточного кода была разделена на 8 окон по 64 секции в каждом. Размер списка был выбран равным 2, т.е. общий размер списка — 256. При моделировании учитывалась вероятность ошибки на информационное слово (FER).

Из результатов моделирования видно (рис. 4), что предложенный метод по сравнению с алгоритмом Scaled-Max-Log-MAP (кривая 1) дает выигрыш порядка 0,19 дБ для полного списка. Кривые 2—5 характеризуют результаты моделирования для списочного декодера с уменьшенным размером списка: 16 (2), 32 (3), 64 (4) и 256 (5) слов. Заметное уменьшение длины списка лишь незначительно снижает производительность декодера — так, для списка длины 16 выигрыш равен 0,13 дБ.

FER 10-1

10-2

10-3 10-4

0,6 0,7 0,8 0,9 1 1,1 1,2 1,3 1,4 Eb/N0, дБ

Рис. 4

Заключение. В настоящей работе рассмотрен новый метод списочного декодирования турбокодов, в рамках которого был предложен оконный алгоритм списочного декодирования сверточного кода с мягким выходом. Предложенный метод позволяет добиться выигрыша по сравнению с алгоритмом Scaled-Max-Log-MAP при длине информационного слова 512 вплоть до 0,19 дБ на полном списке. Также рассмотрен подход к уменьшению списка мягких решений на основе расстояния Евклида между элементами списка. Было показано, что при значительном уменьшении списка производительность декодера снизилась незначительно. На списках размером 16 и 32 выигрыш составляет 0,13 и 0,15 дБ соответственно.

список литературы

1. Козлов А. В. Декодирование LDPC-кодов в дискретном канале flash-памяти // ИУС. 2007. № 5(30). С. 31—35.

2. Белоголовый А. В., Крук Е. А. Многопороговое декодирование кодов с низкой плотностью проверок на четность // ИУС. 2005. № 1(14). С. 25—31.

3. Berrou C., Glavieux A., Thitimajshima P. Near Shannon limit error-correcting coding: turbo codes // Proc. IEEE Intern. Conf. on Communications. Geneva, Switzerland, 1993. P. 1064—1070.

4. Акмалходжаев А. И., Козлов А. В. Списочное декодирование турбо кодов // СПИСОК-2012. Матер. Межвуз. науч. конф. по проблемам информатики. 2012. С. 194—199.

5. Nill C., Sundberg C.-E. W. List and Soft Symbol Output Viterbi Algorithms: Extensions and Comparisons // IEEE Transactions on Communications. 1995. Vol. 43, N 2. P. 277—287.

6. Narayanan K. R., Stuber G. L. List Decoding of Turbo Codes // IEEE Transactions on Communications. 1998. Vol. 46, N 6. P. 754—762.

7. Bahl L., Cocke J., Jelinek F., Raviv J. Optimal decoding of linear codes for minimizing symbol error rate // IEEE Transactions on Information Theory. 1974. Vol. 20. P. 284—287.

8. Claussen H., Karimi H. R., Mulgrew B. Improved max-log-map turbo decoding by maximization of mutual information transfer // EURASIP J. on Applied Signal Processing. 2005. P. 820—827.

24

М. О. Алексеев

9. 3GPP LTE TS 36.212 V8.3.0: "Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding".

Сведения об авторах

Акмал Илхомович Акмалходжаев — Санкт-Петербургский государственный университет аэрокосмического приборостроения, кафедра безопасности информационных систем; программист; E-mail: Akmal.ilh@gmail.com Александр Владимирович Козлов — Санкт-Петербургский государственный университет аэрокосмического приборостроения, кафедра безопасности информационных систем; ведущий программист; E-mail: akozlov@vu.spb.ru

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

УДК 004.056.2

М. О. Алексеев

НОВАЯ КОНСТРУКЦИЯ СИСТЕМАТИЧЕСКОГО НАДЕЖНОГО КОДА

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

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

Введение. Появление криптоатак, ориентированных на особенности реализации криптографических алгоритмов, требует разработки методов проектирования защищенных архитектур вычислительных устройств. Такие криптоатаки, получившие название „атаки по сторонним каналам", основаны на сборе и анализе информации о физических особенностях криптографических модулей (как аппаратных, так и программных) [1, 2].

Одну из основных угроз для криптографических модулей представляют помехи, индуцируемые злоумышленником. Анализ работы устройства в условиях помех предоставляет атакующему дополнительную информацию, которая может быть использована для успешного взлома шифра [3].

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

Линейные помехоустойчивые коды, часто применяемые в аппаратных схемах для контроля ошибок, также не обеспечивают необходимый уровень защиты устройства. Если злоумышленник способен контролировать возникающие ошибки, то, генерируя помехи, приводящие к любой из qk -1 необнаруживаемых ошибок, соответствующих ненулевым кодовым словам, он обеспечивает ошибочный выход атакуемого блока вне зависимости от поступающих данных.

Надежные коды. Обеспечить защиту от описанной модели атаки позволяют нелинейные коды. Коды, названные надежными, обеспечивают обнаружение любой ошибки с заданной вероятностью. В настоящей работе приведено лишь определение надежных кодов; более подробно эти коды приведены в работах [4—6].

Пусть C е GF(pn) является (n,M) -кодом, где M =| C |.

Рекомендована кафедрой № 51 безопасности информационных систем

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