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

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

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

201

В рабочем поле необходимо собрать схему для работы сверточного кода (5, [35 31]).

Схема представлена на рисунке 3.95

Рис. 3.95. Линия передачи с применением декодера Витерби.

Всостав линии с кодированием входят:

1.BernoulliBinaryGenerator

2.Convolutional Encoder

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

4.Viterbi Decoder

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

6.Display

Устанавливаем характеристики блоков для кода (5, [35 31])

202

Рис. 3.102. Параметры Bernoulli Binary Generator

Рис. 3.103. Convolutional Encoder

Рис. 3.96. Binary Symmetric Channel

203

Рис. 3.97 Viterbi Decoder

Рис. 3.98. Параметры Error Rate Calculation

Алгоритм Витерби находит широкое применение и реализует поиск максимально

204

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

Алгоритм Витерби для декодирования сверточных кодов

Рассмотрим алгоритм Витерби на примере кода со скоростью Rкод = 1/n.

Пусть, начиная с момента времени t = 0, на вход кодера подается информационная последовательность длиной L символов:

aL = (a0, a1, …, aL–1) (5)

Тогда на выходе кодера будет последовательность символов: bL = (b0, b1, ..., bL–1) (6)

Состояние кодера в момент t определяют как набор из w информационных символов: wt = (at, at–1, ..., at–L+1) (7)

Решетчатая диаграмма кода однозначно связывает информационную последовательность aL, последовательность состояний кодера wL и последовательность символов на его выходе bL. Каждой ветви bt в канале соответствует сигнал, который может быть представлен набором координат:

(8) ( ) () ( ) N t 2 t 1 t t S ...,, S , S S =

где N – размерность пространства сигналов.

Допустим, что в канале действует аддитивная помеха. Тогда поступающая на вход декодера последовательность принимаемого сигнала будет равна:

XL = SL + nL (9)

где SL = (S0, S1, ..., SL–1); nL = (n0, n1, …, nL–1);

N-мерный вектор помехи. ( ) ( ) () ( ) N t 2 t 1 t t n ...,, n , n n =

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

Декодированный путь можно указать одним из способов:

набором оценок кодовых ветвей SL = (S0, S1, ..., SL–1), составляющих путь;

последовательностью оценок состояний кодера WL = (w0, w1, …., wL–1);

последовательностью оценок информационных символов на входе кодера AL = (a0, a1,

…, aL–1), которые совпадают с первыми символами оценок состояний S = (s0, s1, …,st-ν+1).

205

Последовательность XL будет декодирована с минимальной вероятностью ошибки, если из всех возможных путей выбрать оценку SL, для которой максимальна апостериорная вероятность P(SL/XL). Передачу всех вариантов наборов aL считают равновероятной. В

этом случае декодирование по критерию максимума апостериорной вероятности равносильно декодированию по критерию максимума правдоподобия, когда выбирается оценка SL, обеспечивающая выполнение условия P(SL/XL) = max. В канале без памяти условная вероятность P(SL/XL) пропорциональна произведению условных плотностей

При декодировании выбирают последовательность сигналов SL = (S0, S1,…, SL–1) и

однозначно связанную с ней последовательность ветвей SL = (S0, S1, …, SL–1), которая обеспечивает минимум суммы: min ) S X ( МП 2 t 1 L 0 t N0 i ) i ( t = =ΣΣ = =

(13)

Выражение которая называется метрикой декодированного пути. Метрика пути содержит в качестве слагаемых метрики ветвей [4]: 2 ) i ( t N1 -i( i) t )S X ( МВ =Σ

(14)

В гауссовском канале метрика ветви пропорциональна квадрату Евклидова расстояния между вектором принимаемой суммы сигнала и помехи Xt и вектором сигнала St,

соответствующего ветви кода At. В дискретном канале для оценки расстояний используют метрику Хемминга.

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

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

Рассмотрим декодирование кода (7;5), символы которого передаются по дискретному каналу (см. рисунок 3) [5].

Вэтом случае метрика ветви (МВ) равна расстоянию Хемминга между набором символов (Х(1)Х(2)) на входе декодера и набором символов (S(1)S(2)), соответствующих данной ветви на решетчатой диаграмме. Если (Х(1)Х(2))=(01), то значения МВ для кода (7;5)

срешеткой, изображенной на рисунок 3, а) будут равны МВ(00) = 1, МВ(01) = 0, МВ(11) = 1

и МВ(10) = 2.

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

206

Метрика состояния (МС) равна метрике пути, который заканчивается в данном состоянии.

Шаг декодирования состоит в обработке декодером принимаемых из канала данных в интервале между двумя соседними отсчетами.

На рисунке 3 б) ...ж) показано развитие процесса декодирования символов сверточного кода со скоростью Rкод = 1/2 и длиной кодирующего регистра K = 3.

Ход работы

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

решении.

Модель лабораторной макета в MatLab/Simulink для сверточного декодирвания Витерби при «Мягком решении» представлена на рисунке 3.99.

Рис. 3.99 Модель лабораторной макета в MatLab/Simulink для сверточного декодирвания Витерби при «Мягком решении»

Модель лабораторной макет в MatLab/Simulink для сверточного декодирвания Витерби при «Жестком решении» представлена на рисунке 3.100.

207

Рисунок 3.100 - Модель сверточного декодера Витерби при жестком решении На рисунке 3.101 представлен график зависимости коэффициента битовых ошибок от

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

 

 

 

0,6

 

 

 

 

 

 

 

 

 

0,5

 

 

 

 

 

 

 

 

 

0,4

 

 

 

 

 

 

 

 

 

0,3

 

 

 

 

 

 

 

 

 

0,2

 

 

 

 

 

 

 

 

 

0,1

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

-6

-4

-2

0

2

4

6

8

10

12

 

 

 

-0,1

 

 

 

 

 

 

Рисунок 3.101 - График зависимости коэффициента битовых ошибок от отношения сигнала к шуму (красным обозначено жесткое декодирование, синим – мягкое)

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

208

3.5. Турбокодирование. Обобщенная схема турбокодера TCC с параллельным каскадированием. Сверточные турбокоды. Декодирование турбокодов.

Характеристики помехоустойчивости сверточных турбокодов ТСС. Исследование турбокодов с использованием ПО MATLAB.

Принципы построения турбо-кодов

В данном разделе приведены основные теоретические данные одного из важнейших классов итеративно декодируемых кодов – турбо-кодов (turbo codes) и с их обобщением – многократными турбо-кодов (multiple turbo codes). Турбо-кодирование основано на двух фундаментальных идеях: построение кодов с кодовыми словами, обладающими квазислучайными свойствами и построение декодеров, основанных на легко реализуемых алгоритмах итеративного декодирования [1]. Турбо-коды обладают хорошими характеристиками, особенно при больших длинах кодов и умеренных требованиях к вероятности ошибки на бит.

Параллельное каскадирование двух сверточных кодов

Турбо-код можно определить как параллельное каскадирование (parallel concatenation)

двух сверточных кодов. Кодер состоит из двух параллельных систематических кодеров скорости =1/2 и памяти = 2 (компонентные кодеры (constituent encoders)) с обратной связью (recursive encoders) имеющих рациональные порождающие подматрицы:

G (1

 

1 D2

)

 

 

 

(3.1)

 

D D2

1

 

 

и простого блокового перемежителя (ПБП). Входом турбо-кодера служит двоичная

информационная последовательность длины

 

= 0 1 . . . −1

(3.2)

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

ассоциированного с вторым

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

=

+ ,

= 0 1 . . . −1

 

(3.3)

209

 

Рис. 3.102. Систематический сверточный кодер скорости

= 1/3, основанный на

 

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

где

память составного кодера. Первые

символов этой последовательности – это

символы информационной последовательности

, последние

символов образуют хвост,

приводящий первый компонентный кодер в нулевое состояние. Поскольку кодирование систематическое, входная последовательность (включая хвост) имеет вид:

(0) = 0 (0) 1 (0) . . . −1 (0) = . (3.4)

Первый компонентный кодер генерирует проверочную последовательность:

(1) = 0 (1) 1 (1) . . . −1 (1). (3.5)

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

мы можем использовать БКВР алгоритм апостериорно вероятностного декодирования

кодовой последовательности первого компонентного кодера.

 

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

 

поступает в ПБП,

определенный перестановочной

матрицей = ( ),

= 0, 1, . . . ,

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

 

−1 размеров ( х

). Выходная

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

(2) =

ПБП

поступает

во

 

второй компонентный кодер,

генерирующий проверочную последовательность

 

 

 

 

 

 

(2) =

0

(2)

1

(2) . . .

−1

(2)

(3.6)

Вообще говоря, второй кодер не переходит в конце кодирования в нулевое состояние. В

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

210

ПБП, использованный во втором кодере, перестановочной матрицей . С помощью введения вектора перестановки индексов (indexpermutation vector) длины можно дать альтернативное определение ПБП:

 

 

 

 

 

=(

0

1 . . .

−1)

 

 

(3.7)

где 0 ≤

′ ≤

− 1,

= 0, 1, . . . ,

− 1,

′ =

′′ если

=

′ и

′ таково, что

= 1, то есть

– это единственный ненулевой элемент в -ом столбце перестановочной матрицы .

Комбинация

трех последовательностей,

(0), (1),

и

(2)

дает полную

передаваемую

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

 

 

 

 

 

 

 

 

 

 

 

=

0 1 . . .

 

−1

 

 

 

(3.8)

где =

(0)

(1)

(2) ,

= 0, 1, . . . ,

− 1, такая что общая длина блока кода = 3 .

Поскольку, как правило

 

, скорость кода

≈ 1/3.

 

 

 

 

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

кодера – это рекурсивные сверточные кодеры памяти = 1 с порождающей матрицей.

G (1

 

1

)

(3.9)

 

 

 

D

1

 

 

В этом случае хвост состоит из одного

символа

−1, равному 0, если вес

информационной последовательности четный, и равен 1, если вес нечетный. Такая входная последовательность приводит оба компонентных сверточных кодера памяти = 1 в нулевое состояние. Поэтому решетки компонентных сверточных кодеров начинаются и заканчиваются в нулевом состоянии и мы можем использовать БКДР алгоритм для декодирования обоих составных кодов.

Важной особенностью обычных турбо-кодов является слабый рост минимального расстояния min с ростом длины кода.

Параллельное каскадирование трех и более сверточных кодов

Обычные турбо-коды имеют относительно плохое минимальное расстояние. При относительно высоких отношениях сигнал-шум это вызывает эффект “зависания” вероятности ошибки декодирования, при котором вероятность ошибки очень медленно убывает с ростом отношения сигнал-шум. Этот участок графика называется “полом” (floor).

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