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

Кодирование в телекоммуникационных системах.-2

.pdf
Скачиваний:
16
Добавлен:
05.02.2023
Размер:
11.42 Mб
Скачать

211

Рис. 3.103. Структура -размерного сверточного турбокодера

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

перемежителя, оно не может расти быстрее, чем логарифмически с ростом длины блока.

Поведение минимальное расстояния МТК существенно лучше.

Кодер -мерного МТК состоит из

,

≥ 3,

параллельных компонентных сверточных

кодеров и единичных блоковых перемежителей

( ),

=1,

2, . . . , , размеров

Ч

,

как

показано на рис. 7.2. (

Определим формально нулевой перемежитель (0)

как единичную

матрицу размеров

х .)

Предполагается,

что

все

компонентные

кодеры

это

систематические рекурсивные

кодеры скорости

=

1/2 и памяти

.

Двоичная

последовательность длины К

 

 

 

 

 

 

 

 

 

 

 

 

= 0

1 . . .

−1

 

 

 

 

(3.10)

 

это входная последовательность МТК. Это может быть информационная последовательность; в этом случае все компонентные кодеры – это коды с нейтрализацией

хвоста. Аналогично обычным турбо-кодам следует рассмотреть случай, когда

состоит из

информационных символов плюс хвост из

двоичных символов, так что

= + . В

частности, если все компонентные кодеры – это систематические рекурсивные сверточные

кодеры памяти 1, хвост состоит из 1 символа.

 

 

 

 

Последовательность

поступает на входы

ПБП,

описываемым

перестановочными

матрицами

( ) =

( ( )

), где = 1, 2, . . . , ,

, = 0,

1, . . . , − 1,

размеров х

. За

перемежителями следуют компонентные кодеры,

такие что -ая переставленная версия

, то

есть ( ) =

( ),

= 1, 2, . . . , , поступает на вход

-ого компонентного кодера.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

212

Выходная

последовательность

 

-ого

компонентного

кодера

(проверочная

последовательность) – это последовательность:

 

 

 

 

 

 

 

( ) = 0

( )

1

( ) . . .

 

−1

( ),

= 1, 2, . . . , .

 

(3.11)

Входная последовательность МТК,

 

 

 

 

 

 

 

 

 

 

 

=

(0) =

0

(0)

1

(0) . . .

−1

(0),

 

 

перемешивается

с выходными

 

последовательностями

компонентных кодеров и

передается по каналу. Кодовое слово многократного турбо-кода,

 

 

 

 

 

 

 

 

=

0

1 . . .

−1

 

 

 

(3.12)

где

=

(0)

(1) . . .

 

( ) ,

 

= 0, 1, . . . , − 1, так что длина блока кода равна

=( +1)

и результирующая

скорость равна

=

1/( +1). Кодовая скорость

может быть

увеличена выкалыванием символов.

Комбинация тождественного перемежителя и остальных перемежителей называется (

+1)-мерным перемежителем. Он может быть представлен в виде ( + 1)-мерной таблицы,

сконструированной так, что проекция ненулевого элемента на плоскость, образованную 0-ой

и -ой, = 1, 2, . . . , , осями давало быматрицу перестановок ( ), = 1, 2, . . . , .

Итеративное декодирование турбо-кодов

В данном разделе описано декодирование турбо-кодов. Предположим, что кодовая

последовательность

=

0

1 . . .

−1, сконструированная из трех последовательностей,

(0) =

, (1), and

(2), передается по дискретному каналу без памяти. Пусть

 

 

 

 

 

 

=

0 1 . . .

−1

(3.13)

где

= (0) (1)

(2) ,

= 0, 1, . . . , − 1, означает принятую последовательность и пусть

 

 

 

 

 

(0) (0) = (

= 0)

(3.14)

означает априорную вероятность, что информационный символ

= 0, =0, 1, . . . ,

− 1.

На практике обычно

(

= 0) = 1/2.

 

 

 

Итеративный алгоритм декодирования турбо-кодов похож на итеративный алгоритм распространения доверия кодирования МППЧ кодов. Декодер состоит из двух

компонентных апостериорно-вероятностных декодеров. Процесс декодирования состоит из

итераций; каждая итерация, в свою очередь,

состоит из двух фаз. В результате -ой фазы, =

1, 2, -ой итерации = 1, 2, . . . , , вычисляется последовательность:

 

( )( ) = 0

( ) ( ) 1

( ) ( ) . . .

−1

( ) ( )

(3.15)

 

 

 

 

 

 

 

213

где

( )

( ) апостериорная вероятность 2, что информационный символ

= 0, = 0, 1,

. . . ,

− 1.

Удобно вместо ( ) ( ) оперировать с соответствующими логарифмическими

отношениями правдоподобия, то есть,

 

 

 

 

 

 

 

(e)

log

 

(e)

 

 

 

 

n

 

 

 

zn

 

 

 

(3.16)

 

 

 

(e)

 

 

 

1

 

 

 

 

 

n

 

и вместо ( )( ) оперировать с последовательностью:

 

( )( ) = 0

( ) ( )

1

(

) ( ) . . .

 

−1

(

) ( )

(3.17)

 

Можно использовать обозначение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rn(0) )

 

 

z(0)

(0) log

P(un

0

rn(0) )

log

 

 

(0)

 

log

P(un

 

0

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

(3.18)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

P(u

 

1

r(0) )

1

(0)

P(u

 

 

1

r(0) )

 

 

 

 

n

n

 

 

 

 

 

 

 

n

 

 

 

n

 

 

 

 

n

 

 

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

,

при условии, что принят символ . Оно называется внутренней информацией (intrinsic

information) об информационном символе

=

 

 

 

(0)

. Предполагается, что оба компонентных

декодера хранят в памяти последовательность

 

(0)(0) =

0

 

(0)

(0)

1

(0)

(0) . . .

 

−1

(0) (0) и

используют ее на каждом шаге итеративного процесса декодирования.

 

 

 

 

 

Пусть

(0),

(1),

and

(2)

означают

 

 

последовательности

принятых

символов,

соответствующих

переданным

 

 

информационной

последовательности (0)

=

,

первой

проверочной

последовательности

(1), и

второй

 

проверочной

 

последовательности

(2),

соответственно. Пусть, далее,

 

 

` (0)

означает

 

последовательность

принятых

символов,

соответствующих последовательности

за исключением принятого символа

(0), то есть,

 

 

`n(0) =

 

0

(0)

1

(0) . . .

−1

(0)

 

 

 

 

+1

(0) . . .

 

 

 

 

 

 

 

(3.19)

Аналогично, пусть

 

(

)

( )

означает последовательность апостериорных вероятностей

для символов последовательности

за исключением

( )

 

 

( ) после -ой фазы

-ой итерации,

то есть

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( ) ( ) =

0

( ) ( )

1

(

) ( ) . . .

 

 

−1

(

) ( )

+1

( ) ( ) . . .

 

 

 

(3.20)

На первой фазе первой итерации первый компонентный декодер, используя

(0)

,

(1) и

 

(0) (0) =

0

(0) (0)

 

1

(0) (0) . . .

 

 

 

 

 

−1

(0) (0)

 

 

+1

(0) (0) . .

 

 

 

(3.21)

вычисляет логарифмическое отношение правдоподобия

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P(r(0) , r(1)

 

r

(0) u

n

0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(1) (1) log

 

 

`n

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P(r(0) , r(1)

 

u

 

1)

 

 

 

 

 

 

 

 

 

(3.22)

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

`n

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

для информационных символов

=

(0) ,

 

 

= 0, 1, . . . ,

− 1.

 

 

 

 

 

214

Для вычисления (1) (1) декодер использует БКВР алгоритм апостериорновероятностного декодирования описанный а параграфе 4.5. Величина (1) (1)

называется внешней информацией (extrinsic information) первого компонентного декодера об информационном символе при первой итерации. Первый компонентный декодер вычисляет последовательность:

(1)(1) = 0

(1) (1) 1

(1) (1) . . . −1(1) (1)

(3.23)

используя формулу

 

 

 

 

(1) (1) =

(0) (0) +

(1) (1)

(3.24)

и посылает ее второму компонентному декодеру.

На второй фазе первой итерации второй компонентный декодер, зная

последовательность

(1) (1), вычисляет апостериорные вероятности (1) (1), = 0, 1, . . . ,

− 1, и, следовательно,

` (1) (1). Используя

`

(0),

 

(2), и (1)(1), декодер, вычисляет внешнюю

информацию (2) (1),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P(r(0) , r(2)

 

r(0)

 

u

n

0)

 

 

 

 

 

 

 

 

y(2)

(1) log

`n

 

 

n

 

 

 

(3.25)

 

P(r(0)

, r

 

 

u

 

1)

 

n

 

(2)

n

 

 

 

 

`n

 

 

 

 

 

 

 

 

Затем декодер вычисляет новое логарифмическое отношение правдоподобия и посылает:

(2)(1) = 0

(2) (1) 1

(2) (1) . . .

−1

(2) (1)

(3.26)

первому компонентному декодеру. Это завершает первую итерацию.

Рассмотрим теперь -ую итерацию,

= 2, 3, . . . ,

. На первой фазе

-ой итерации первый

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

правдоподоподобий

(2)( − 1), вычисляет последовательность апостериорных вероятностей

(2)( − 1) и, следовательно,

(2) (

− 1). Используя

(0) ,

(1), и

(2) ( − 1), первый

компонентный декодер вычисляет

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

− 1, и

(1) ( ),

= 0, 1, . . . , − 1.

Затем он посылает

(1)( ) второму компонентному декодеру и т.д.. Идея состоит в том, что на

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

вероятностей и вычисляет новую апроксимацию апостериорных вероятностей.

 

 

Декодер чередует эти фазы декодирования в течение итераций. Решение

,

= 0, 1, . . .

, − 1, получается сравнением финального логарифмического отношения (2)

(

) с порогом

0:

 

 

215

 

 

 

(2)

 

 

 

 

 

0, если

zn

(I)

0;

 

u

n

 

z(n2) (I)

0.

(3.27)

 

1, если

 

 

 

 

 

 

 

 

(Если

( )

=

0, тогда декодер использует правило бросания монеты и принимает

решение

= 0 или

= 1 с вероятностью 1/2.) Итеративный декодер иллюстрируется на рис.

2.3.1, где

=

0 1 . . . −1. Итеративное декодирование многократных турбо-кодов

аналогично итеративному декодированию обычных турбо-кодов. Декодирование

многократных турбокодов с

компонентными кодами состоит из

итераций, каждая

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

 

Рис. 3.104. Итеративный декодер для турбо-кодов

Разработка модели системы связи с использованием турбо-кодов

В диалоговом окне приложения Simulink необходимо собрать схему, представленную на

рисунке 3.116.

216

Рис. 3.105. Модель системы связи с использованием турбо-кодов

Всостав проектируемой системы связи входят следующие элементы:

1.Bernoulli Binary Generator;

2.Turbo Encoder;

3.Binary Symmetric Channel (канал передачи);

4.Turbo Decoder;

5.Error Rate Calculation (анализатор ошибок);

6.Дисплей, отображающий комбинацию на входе кодера;

7.Дисплей, отображающий комбинацию на выходе кодера;

8.Дисплей, отображающий комбинацию на выходе декодера;

9.Дисплей анализатора ошибок, отображающий частоту ошибок, число

обнаруженных ошибок, количество символов по сравнению.

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

Сначала необходимо выполнить настройку генератора бинарных последовательностей Бернулли (Bernoulli Binary Generator) (рис. 3.106):

217

Рисунок 3.107. Настройка Bernoulli Binary Generator для 32 бит

В представленном случае будет использоваться входная последовательность, состоящая из 32 бит

Далее необходимо выполнить настройку турбо-кодера и декодера (рис. 3.111 и рис.

3.112):

Рис. 3.107. Настройка Turbo Encoder

218

Рис. 3.108. Настройка Turbo Decoder

На следующем шаге необходимо выполнить настройку двоичного канала передачи информации (Binary Symmetric Channel) (рис. 3.109):

Рис. 3.109. Настройка Binary Symmetric Channel

219

Стоит отметить, что на данном этапе параметр «вероятность ошибки» необходимо задать малым, для того чтобы проверить работоспособность системы в целом (вероятность ошибки выступает аналогом отношения сигнал/шум в реальном аналоговом канале связи).

Далее настройка анализатора ошибок (Error Rate Calculation) (рис.3.110).

Рис. 3.110. Настройка Error Rate Calculation

Заключительный шаг – запуск работы всей системы. После запуска спроектированной системы будут получены следующие результаты:

Рис. 3.111. Результаты работы системы связи на основе турбо-кодера

220

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

Одной из основных характеристик, характеризующих помехоустойчивость кода,

является зависимость количества обнаруженных ошибочных бит от вероятности ошибки.

Вероятность ошибки – является аналогом шумов в реальном аналоговом канале передаче.

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

Для турбо кода, с входной последовательностью, состоящей из четырех бит и со скоростью кодирования R=1/3 зависимость количества ошибок от вероятности ошибок представлена в таблице 3.7:

Таблица 3.7. Зависимость вероятности ошибок от количества ошибочных бит для турбо кода

P

0

0

0

0

0

0,5

 

0,

 

0,7

 

0,8

0,9

1

ош

,01

,1

,2

,3

,4

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

0

0

0

0

0

0,4

 

0,

 

0,53

 

0,62

0,56

0,562

bits

,062

,281

,343

,375

,437

37

406

 

1

 

5

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

0,7

 

 

 

 

 

 

 

 

 

 

бит

0,6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ошибочных

0,5

 

 

 

 

 

 

 

 

 

 

0,4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вероятнгость

0,3

 

 

 

 

 

 

 

 

 

 

0,2

 

 

 

 

 

 

 

 

 

 

0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

0,01

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

 

 

 

 

 

Вероятность ошибок

 

 

 

Рис. 3.112. Зависимость вероятности ошибок от количества ошибочных бит

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]