Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
267
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава 19. Помехоустойчивое кодирование в системах передачи

Рис. 19.25. Динамика декодирования сверточного кода по алгоритму Витерби

ются коды с длиной кодового ограничения M = 9 и скоростями R = 1/2, R = 1/3, обеспечивающие асимптотический выигрыш от кодирования около 7,8 дБ [7.10]. В 3G стандарте cdma2000 в дополнение к упомянутым выше предусмотрен код

19.5. Турбокодирование

с параметрами M = 9, R = 1/4. Сверточные коды, представляя весьма значительную собственную ценность, служат также основой для построения других кодов, например, турбокодов, кратко обсуждаемых в следующем разделе и позволяющих надежно передавать данные со скоростями, близкими к границе Шеннона.

19.5.1. Основные положения

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

Определение турбокодов впервые было дано в работе [7.17]. Турбокоды представляли собой отдельный класс двух параллельно каскадированных рекурсивных систематических сверточных кодов RSC с кодовой скоростью R = 1/2, конструктивной длиной K = 5 и псевдослучайным перемежителем длиной 65 536 битов.

Потенциал турбокодирования можно оценить по представленным результатам моделирования: с помощью данного кода авторам работы удалось получить вероятность ошибки на бит Pb = 10−5 для BPSK модуляции в канале с аддитивным белым гауссовским шумом при отношении сигнал/шум 0,7 дБ после 18 итераций декодирования, что всего лишь на 0,5 дБ выше теоретически достижимой границы Шеннона для подобных параметров кодирования и канала. Этот результат был существенно лучше того, что позволяли получить все другие известные в то время коды.

С тех пор идея турбокодирования стремительно развивалась, и термин «турбокоды» был расширен на разные схемы каскадирования. Основными направлениями развития турбокодов считаются:

сверточные турбокоды TCC (Turbo Convolutional Codes), в которых используется параллельное каскадирование двух или большего числа сверточных кодеров;

блочные турбокоды, или турбо коды произведения TPC (Turbo Product Codes), формируемые путем последовательного или параллельного каскадирования двух или большего числа блочных кодеров.

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

Глава 19. Помехоустойчивое кодирование в системах передачи

Рис. 19.26. Обобщенная схема турбокодера TCC

19.5.2.Обобщенная схема турбокодера TCC

спараллельным каскадированием

Обобщенная схема турбокодера TCC приведена на рис. 19.26. Из рисунка видно, что в кодере параллельно работают N кодеров.

Турбокодер формирует систематический код, в котором проверочная группа образуется из проверочных битов, генерируемых N кодерами RSC. Для регулирования общей скорости турбокода применяется схема прореживания проверочных битов. В канал связи передаются исходный информационный блок и прореженные проверочные биты. Общая кодовая скорость турбокода при использовании составляющих кодов со скоростью 1/2 равна: r = 1/(N + 1), где N — число кодеров турбокода. На практике часто ограничиваются использованием двух составляющих кодеров без перемежителя в первой ветви.

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

19.5.3. Сверточные турбокоды

Исследования показали [7.18], что рекурсивные систематические сверточные коды RSC являются более эффективными по сравнению с несистематическими сверточными кодами, поэтому сверточные турбокодеры строятся путем параллельного соединения двух или нескольких RSC-кодеров с небольшой длиной кодового ограничения (K = 3 . . . 5). Схема кодера такого турбокодера приведена на рис. 19.27.

Принцип работы турбокодера заключается в следующем [7.19]. На вход первого RSC-кодера по очереди поступают биты ui информационного блока. Значе-

19.5. Турбокодирование

Рис. 19.27. Схема турбокодера

ния битов x(0)i на систематическом выходе турбокодера совпадают со значениями входных битов. На проверочном выходе первого RSC-кодера формируются первые проверочные биты x(1)i . На вход второго RSC-кодера поступают информационные биты, номера которых определяются используемым перемежителем.

В результате на проверочном выходе получается вторая группа проверочных битов x(2)i .

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

После кодирования всего информационного блока на вход одного или всех составляющих кодеров могут подаваться несколько дополнительных «хвостовых» битов (tail bits), обеспечивающих завершение работы кодера в нулевом состоянии. С выхода турбокодера на модулятор поступают информационный бит x(0)i с систематического выхода первого RSC-кодера и два проверочных бита. В результате кодовая скорость r турбокода оказывается равной 1/3. Для получения других скоростей кодирования r применяется либо прореживание проверочных битов, либо использование по очереди проверочных битов то первого, то второго RSC-кодера.

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

Глава 19. Помехоустойчивое кодирование в системах передачи

Рис. 19.28. Схема декодера турбокода

ного кода, как и глубины перемежения, эффективность турбокодов повышается [7.19].

19.5.4. Декодирование турбокодов

Декодирование кодовых слов турбокода осуществляется на основе разделения потока битов на несколько кодовых блоков (для кодера рис. 19.27 число кодовых блоков равно двум), причем информационные части этих блоков с точностью до перемежения идентичны. Это позволяет использовать параллельную схему декодирования, в которой два декодера производят декодирование своих кодовых блоков. Так как информационные части кодовых блоков идентичны, декодированную информацию первого (второго) декодера можно использовать в качестве априорной информации для второго (первого) декодера с целью многократного уточнения результатов декодирования [7.18]. В этом состоит принцип итерационного декодирования турбокода.

Вариант построения турбодекодера представлен на рис. 19.28. Декодер представляет собой каскадное соединение двух элементарных декодеров с «мягкими» входным и выходным сигналами (Soft-In Soft-Out — SISO). Каждый декодер выносит решение о значении декодируемого символа на основе критерия максимума апостериорной вероятности (Maximum A-Posteriory — MAP), обеспечивающего минимум вероятности ошибочного декодирования каждого бита и способного формировать мягкие решения для декодируемых битов [7.19] (апостериорная вероятность — условная вероятность случайного события при условии того, что известны апостериорные данные, т. е. данные, полученные после опыта). Мягкие решения обычно представляются с помощью логарифма отношения правдоподобия (Log Likelihood Ratio — LLR).

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

Каждый SISO-декодер имеет два входа:

вход для сигнала, представляющего собой мягкое решение демодулятора;

вход для сигнала апостериорной внешней информации от декодера второго элементарного кода.

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

19.5. Турбокодирование

ного информационного бита, а знак соответствует предполагаемому решению в виде 0 или 1. Существенным является то, что решение о каждом информационном бите вырабатывается каждым декодером с использованием сведений об информационных битах, содержащихся только в проверочной группе данного составного кода. Следовательно, апостериорная достоверность решения декодера оказывается некоррелированной с мягкими решениями демодулятора по каждому информационному биту, а также с информацией об информационных битах, содержащихся в проверочной группе другого составляющего кода. Поэтому оказывается возможным использовать внешнюю информацию каждого элементарного кода в качестве априорных сведений о передаваемых символах в процессе декодирования в другом составляющем декодере, осуществляя, таким образом, декодирование по методу МАР.

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

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

Методы построения SISO элементарных декодеров практически сводятся к использованию двух различных алгоритмов декодирования элементарных кодов, способных вырабатывать мягкие выходные решения о передаваемых информационных символах:

алгоритм MAP, другое название BCJR (L. R. Bahl, J. Cocke, F. Jelinek, J. Raviv), и его упрощенные реализации log-MAP и max-log-MAP;

алгоритм Витерби с мягким входным и выходным сигналом (Soft In Soft Out Viterbi Algorithm — SOVA).

Алгоритм MAP позволяет реализовывать потенциальные возможности турбокодов, однако он часто оказывается сложнее в реализации, чем метод SOVA, который, в свою очередь, может проигрывать алгоритму МАР в помехоустойчивости до 1 дБ при больших значениях глубины перемежения и кодового ограничения RSC.

Логарифм отношения правдоподобия

Мягкие решения в процессе декодирования представляются с помощью логарифма отношения правдоподобия LLR. Использование LLR упрощает процесс обмена информацией между декодерами составляющих кодов при итеративном декодировании турбокодов [7.19].

P (uk = −1 |y¯)
P (uk = +1

Глава 19. Помехоустойчивое кодирование в системах передачи

Значение LLR битов данных uk обозначается L(uk) и определяется как логарифм отношения вероятностей двух возможных значений бита:

23

L(uk) = ln

P (uk = +1)

.

(19.49)

 

 

P (uk = −1)

 

Знак L(uk) показывает, какое из значений бита uk (±1) более правдоподобно, а амплитуда определяет надежность этого значения. В случае если L(uk) ≈ 0, то P (uk=+1) ≈ P (uk = −1) ≈ 0,5, следовательно, надежность данного решения минимальна. При L(uk) 0 имеется определенность в принимаемом решении.

Зная L(uk), можно вычислить вероятность того, что uk = +1 или uk = −1. Для этого, учитывая, что P (uk = −1) = 1 − P (uk = +1), выражение (19/49) примет следующий вид:

eL(uk) =

 

 

P (uk = +1)

 

 

 

 

 

,

 

 

 

− P (uk =

 

 

откуда

1

−1)

 

2

 

 

3 e±L(uk)/2.

 

P (uk = ±1) =

 

e−L(uk)/2

(19.50)

1 + e−L(uk)

Рассмотренный выше логаритфм отношения правдоподобия LLR L(uk) выражается через априорную безусловную вероятность приема символа uk.

Аналогичным образом определяется условный (апостериорный) LLR L(uk |y¯), основанный на апостериорной вероятности P (uk = ±1 |y¯) того, что выходной бит декодера будет принимать значения uk±1 при наблюдении на выходе канала передачи данных последовательности y¯:

2 |y¯) 3

L(uk |y¯) = ln . (19.51)

Искажающее влияние канала связи оценивается логарифмом отношения правдоподобия LLR L(yk |xk ), который связан с вероятностью приема из канала связи символа yk при передаче xk ±1 и определяется следующим образом:

 

2

P (yk

xk = +1)

3 .

 

L(yk |xk ) = ln

 

|

(19.52)

P (yk

|xk = −1)

Если предположить, что передаваемый бит xk передается через канал с аддитивным гауссовским шумом при использовании BPSK-модуляции, то условная вероятность приема символа yk определяется так:

 

1

 

Eb

2

 

P (yk |xk = ±1) =

σ

 

e

2

(yk±a) ,

(19.53)

где Eb — энергия, приходящаяся на один передаваемый бит, σ2 — дисперсия шума и a — коэффициент затухания (при a = 1 получается канал с аддитивным белым гауссовским шумом без затухания).

Таким образом, для случая передачи по каналу с гауссовским шумом с модуляцией BPSK выражение (19.52) можно привести к виду:

|

2P (yk |xk = −1) 3

)eb2

(yk+a)2 *

 

 

 

 

P (yk |xk = +1)

 

e

Eb

(yk−a)

2

 

 

 

L(yk xk ) = ln

 

 

 

 

= ln

 

 

E

 

 

=

 

 

 

 

Eb

 

Eb

 

 

 

Eb

 

 

 

=

 

(yk + a)2

 

(yk − a)2 =

 

4yka = Lcyk, (19.54)

 

 

2

2

2

19.5. Турбокодирование

где Lc = 2Eσb2 4a определяет надежность канала связи и зависит только от отношения сигнал/шум и коэффициента затухания канала. Отсюда следует, что для канала с гауссовским шумом и двоичной фазовой модуляцией условный LLR L(yk |xk ) будет определяться произведением принятого символа yk на надежность канала Lc.

MAP-алгоритм декодирования двоичных сверточных турбокодов

Алгоритм декодирования МАР был предложен в 1974 году для оценки апостериорной вероятности состояний и переходов марковского источника. Этот алгоритм также известен под названием BCJR, данным ему по первым буквам фамилий авторов (L.R. Bahl, J. Cocke, F. Jelinek, J. Raviv) [7.18]. Они в своих работах показали, как с помощью данного алгоритма можно декодировать блоковые и сверточные коды. В отличие от алгоритма Витерби SOVA, который минимизирует вероятность ошибки последовательности символов, MAP-алгоритм оптимален в смысле минимизации вероятности ошибки на бит. Однако MAP-алгоритм при работе обрабатывает все возможные пути кодовой решетки, что оказывается неприемлемо сложным для применения в реальных системах. Поэтому широкого распространения до открытия турбокодов он не получил.

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

Основываясь на принятой последовательности yk MAP алгоритм для каждого декодируемого бита xk вычисляет вероятность того, что этот бит равен +1 или –1. В соответствии с (3) данная операция эквивалентна определению апостериорного LLR L(uk |y¯). Применяя теорему умножения вероятностей P (a b) = P (a |b )P (b), определяющую вероятность P (a b) совместного появления зависимых событий a и b, выражение (19.51) приводится к виду:

L(u

 

y¯) = ln

P (uk = +1

y¯)

.

(19.55)

 

 

k |

2P (uk = −1 y¯)

 

 

3

 

Как показано в [7.19], значение апостериорного LLR L(uk |y¯) может быть представлено в следующем виде:

L(uk |y¯) = L(uk) + Lcyks + Le(uk).

(19.56)

Первое слагаемое L(uk) является априорной информацией о значении бита uk. В начале итерационного процесса различные значения uk, как правило, равновероятны и L(uk) = 0. В процессе итеративного декодирования турбокода декодер каждого составляющего кода обеспечивает другие декодеры оценкой априорного LLR L(uk).

Второе слагаемое Lcyks является мягким выходом канала связи для систематического бита uk, значение которого после передачи по каналу равно yks. При большом отношении сигнал/шум надежность канала Lc также велика, и текущий систематический бит будет оказывать значительное влияние на апостериорный LLR L(uk |y¯). Для канала связи с низким отношением сигнал/шум Lc невелико и, соответственно, значение систематического бита не будет сильно воздействовать на L(uk |y¯), вычисляемый MAP-декодером.

Глава 19. Помехоустойчивое кодирование в системах передачи

Последнее слагаемое Le(uk) вычисляется на основе взаимосвязи закодированных битов с учетом априорной информационной последовательности L(un) и принятой из канала последовательности y¯, за исключением принятого систематического бита yks и априорной информации L(uk). Поэтому Le(uk) называется внешней информацией для бита uk. Выражение (19.56) показывает, что внешняя информация Le(uk) от MAP декодера может быть получена из его мягкого решения L(uk |y¯) вычитанием априорной информации L(uk) и мягкого выхода демодулятора Lcyks для систематического бита uk. Внешняя информация Le(uk) зависит от априорной информации L(un), n = k, и принятых систематических битов и не зависит от априорной информации L(uk) и систематического бита yks.

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

Затем декодер первого составляющего кода на основе последовательности Lc(1) формирует оценку условного LLR L11(uk |y¯) для каждого бита данных uk. Индекс 11 показывает, что L(uk |y¯) вычислялся на первой итерации первым декодером. На первой итерации отсутствует априорная информация о значениях систематических битов, поэтому значения L(uk) в выражении (19.56) должны быть равны нулю. Затем начинает работать второй декодер. Он принимает канальную последовательность Lc(2), включающую перемеженную версию систематических битов Lcyks и проверочные Lcyki биты второго кодера. Кроме того, теперь турбодекодер может использовать условный LLR L11(uk |y¯) при формировании априорной информации L(uk) для второго декодера. Как видно из рис. 19.29, внешняя информация первого декодера используется в качестве априорной для второго после перемежения, необходимого для организации последовательности в том же порядке, что и поступающие на второй декодер систематические биты. Таким образом, второй декодер формирует оценку условного LLR L12(uk |y¯) с использованием канальной последовательности Lc(2) и внешней информации Le(uk) первого декодера. На этом заканчивается первая итерация.

На второй итерации первый декодер для получения условного LLR L21(uk |y¯) снова обрабатывает канальную последовательность Lc(1), но при этом используется априорная информация L(uk), полученная из апостериорного LLR L12(uk |y¯), вычисленного вторым декодером на первой итерации. Затем снова работает второй декодер, формируя улучшенную оценку LLR L22(uk |y¯), и т. д. При этом средняя вероятность ошибки на информационный бит постепенно уменьшается. Однако с каждой новой итерацией величина улучшения становится все меньше. Поэтому для снижения сложности декодера итеративный процесс прекращается после выполнения некоторого небольшого (порядка 8–10) количества итераций. Иногда для завершения декодирования используется какой-либо критерий, оценивающий возможное улучшение на следующих итерациях. Это позволяет значительно сократить среднее число итераций и сложность декодера при незначительных потерях в эффективности.

После выполнения заданного количества итераций или срабатывания условия завершения из деперемеженной оценки LLR Li2(uk |y¯) второго декодера форми-

19.5. Турбокодирование

Рис. 19.29. Схема МАР-декодера турбокода

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

Как было отмечено выше, алгоритм МАР в своем непосредственном виде характеризуется существенной сложностью и большими вычислительными затратами. В связи с этим на основе MAP-алгоритма были разработаны алгоритмы декодирования с мягким решением — max-log-MAP и log-МАР, которые используются в декодерах составляющих кодов при итеративном декодировании и сложность которых значительно меньше сложности MAP-алгоритма.

19.5.5.Характеристики помехоустойчивости сверточных турбокодов ТСС

Исследованию помехоустойчивости турбокодов посвящено значительное число работ. Рассмотрим основные результаты, впервые полученные в работе [7.17], для сверточного турбокода с длиной кодового ограничения K = 5, скоростью r = 1/2, образующими полиномами G0 = 37 и G1 = 21, перемежителем длиной 256 × 256 = 65 536 битов в канале связи с аддитивным белым гауссовским шумом и BPSK модуляцией. Результаты моделирования в виде графиков зависимостей вероятности ошибки на бит Pb от отношения сигнал/шум Eb/N0 приведены на рис. 19.30.

Из графиков видно, что с увеличением числа итераций для отношений сигнал/шум Eb/N0 > 0,5 дБ вероятность ошибки снижается. При малом числе итераций снижение вероятности ошибки больше, при большом числе итераций — меньше. При числе итераций больше 18 дальнейшее увеличение их числа для данного кода к снижению вероятности ошибки не приводит. При 18 итерациях вероятность ошибки Pb = 10−5 достигается при отношении сигнал/шумEb/N0 = 0,7 дБ, что лишь на 0,5 дБ выше теоретической границы для данного канала.

Из графиков рис. 19.30 также видно, что при большом числе итераций и вероятностях ошибки Pош < (10−5 . . . 10−6) наблюдается эффект насыщения (error