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

Корольов / Теория связи

.pdf
Скачиваний:
230
Добавлен:
10.02.2016
Размер:
8.73 Mб
Скачать
n = (m +1)n0 .

На практике используются различные определения длин сверточных кодов. Следуя [3], назовем длиной кодового ограничения величину υ = mk0 , где m

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

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

5.8.2. Способы задания сверточного кода

Для получения слова систематического кода надо по известным информационным символам найти проверочные и расположить их на заданных позициях элементарного блока. Для простоты положим k0 =1, т. е. будем кодировать од-

ну последовательность информационных символов a0 , a1, a2 ,..., ai1,ai ,... ,

которая представляется многочленом

A(x)= a0 + a1x + a2 x2 +... + ai1xi1 + ai xi +....

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

B1(x)= b10 +b11x +b12 x2 +... +b1i xi +... ,

B2 (x)= b20 +b21x +b22 x2 +... +b2i xi +...,

……………………………..

Bn0 1(x)= bn0 10 +bn0 11x +bn0 12 x2 +... +bn0 1i xi +... .

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

1. Проверочные символы определяются по известным информационным с помощью n0 1 рекуррентных соотношений:

261

b1i = αj aj , ji

b2i = βj aj , ji

……………

bn0 1i = γ j aj . ji

где α , β , ... ,γ – известные двоичные коэффициенты; суммирование прово-

дится по модулю 2.

2. Последовательность проверочных символов Bj (x) находится с помо-

щью порождающего многочлена

g j (x)= go + g1x + g2 x2 +... + gm xm

по формуле

 

Bj (x)= A(x)g j (x),

(5.39)

Отсюда следует, что проверочный символ bji является сверткой информа-

ционной последовательности и коэффициентов порождающего многочлена

bji = goai + g1ai1 + g2ai2... + gmaim .

(5.40)

Как уже указывалось, соотношение (5.40) дало название этому классу кодов. Для задания всех проверочных последовательностей требуется n0 1 по-

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

Если кодируется k0 информационных последовательностей

A1(x), A2 (x),..., Ak (x), то систематический сверточный код со скоростью k0 n0 зада-

ется с помощью k0 (n0 k0 ) порождающих многочленов, а несистематический – с

помощью k0n0 многочленов. Порождающие многочлены хороших сверточных кодов приведены, например, в работе [3].

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

262

4. Для сверточного кода могут быть построены порождающая и проверочная матрицы. По сравнению с теми же матрицами блочного кода эти матрицы (как кодируемая и принятая последовательности) полубесконечны.

Пример 5.15. Пусть требуется применить простейший систематический сверточный код с параметрами: k0 =1, n0 = 2 , кодовым ограничением m =1 , ско-

ростью k0 n0 = 12 бит на один символ. Кодовое слово является полубесконечной последовательностью символов a0b0 , a1b1, a2b2 ,..., ai1bi1,aibi ,..., состоящей из элемен-

тарных блоков aibi . Рассмотрим способы задания этого кода.

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

bi = ai + ai1 .

(5.41)

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

2. Порождающий многочлен этого кода g(x)= go + g1x =1+ x . С помощью за-

данного многочлена g(x)

найдем проверочные символы для следующей инфор-

мационной последовательности a0 = 0 ,

a1 =1, a2 = 0 , a3 =1, a4 =1,..., которая опи-

сывается многочленом A(x)= x + x3 + x4 +... .

Используя (5.39),

получим

B(x)= A(x)+ xA(x)= x + x3 + x4 + x2 + x4 + x5 +...

... = x + x2 + x3 +... , что соответствует b0 = 0 , b1 =1, b2 =1 , b3 =1 , b4 = 0 .

3. Графические способы задания поясним по схеме кодера, для построения которого следует пользоваться заданием сверточного кода с помощью соотношения (5.41) или порождающего многочлена g(x)=1+ x .

Схема кодирующего устройства приведена на рис. 5.8. Кодер представляет собой линейную систему (со сложением по модулю 2), отклик которой на входную единицу равен (11), что соответствует коэффициентам многочлена g(x). При подаче на вход информационной последовательности выходная по-

263

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

 

Схема на рис. 5.8 позволяет пояснить задание сверточного кода с помо-

 

 

 

 

ai1

 

 

 

щью решетки. Решеткой назы-

a0a1

...ai ...

 

T

M2

bi

 

D

 

a b ...a b ...

вается граф,

узлы которого на-

 

 

 

 

 

S

 

 

 

 

ai

 

0 0 i i

ходятся в

полубесконечной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.8. Кодер сверточного кода 1/2

прямоугольной координатной

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

комбинации элементарного блока из n0

символов.

 

 

 

 

 

 

 

 

 

 

Для рассматриваемого примера кодовая решетка изображена на рис. 5.9 в

предположении, что верхнее ребро, ис-

 

0b0

 

0b1

 

 

 

 

 

 

 

 

ходящее из каждого узла, соответству-

0

 

00

 

 

00

 

00

 

 

 

1b1

11

 

11

11

 

 

 

 

 

 

 

 

 

ет

поступающему информационному

1 1b0

0b1

01

 

01

01

 

 

 

 

 

 

 

 

 

символу ai

= 0 , а нижнее ai =1. Поэтому

 

 

 

1b1

 

10

 

 

10

 

10

 

 

Рис. 5.9. Кодовая решетка

на

первых

двух фрагментах решетки

 

 

 

 

 

 

 

 

 

 

 

 

 

верхние ребра помечены наборами 0b0 и 0b1 , а нижние – 1b0 и 1b1 . Для получения маркированной решетки требуется определить согласно (5.41) значения проверочных символов. Результаты вычислений отражены на правых фрагментах решетки.

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

264

последовательности 01011 соответствует путь и кодовое слово 00 11 01 11 10, в котором последовательность проверочных символов совпадает с получаемой согласно (5.40).

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

Пример 5.16. Пусть дан несистематический сверточный код с параметрами

k0 =1, n0 = 2 , скоростью

1

2

, кодовым ограничением m = 2

. Он задается много-

 

 

 

 

членами G1(x)= x2 + x +1 и G2 (x)= x2 +1 .

Схема кодера приведена на рис.5.10. В отличие от примера 5.14 кодовое слово состоит из элементарных блоков, не содержащих информационные символы. Первые символы каждого блока s1i являются сверткой информационной последовательности и многочлена G1(x), а вторые s2i - сверткой той же после-

довательности и многочлена G2 (x). Заметим, что если один из многочленов при-

равнять 1, то получим систематический сверточный код.

ai

 

 

 

 

 

 

 

 

s1i ,s2i

 

 

 

 

 

 

 

 

 

 

 

 

 

ai2

 

 

 

 

 

ai1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кодовая решетка, построенная по правилам примера 5.14, показана на рис. 5.11.

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

265

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

00

00

00

00

00

регистр. Порядок обозначения узлов выбран

 

11

 

11

11

10

11

11

11

так, что при ai = 0 регистр переходит в сле-

 

 

00

00

 

 

 

01

 

10

10

10

дующее состояние по верхнему ребру, а при

 

 

01

01

 

 

 

 

 

01

01

01

11

 

ai =1 – по нижнему. Маркировка ребер сов-

 

 

10

10

 

 

 

 

 

 

 

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

падает с комбинацией элементарного блока,

 

посылаемого в канал. По-прежнему информационной последовательности соответствует путь на кодовой решетке и кодовое слово. Если входные символы 0 1 1 0 , то по решетке находим кодовое слово 00 11 01 01.

5.8.3. Алгоритм декодирования Витерби

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

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

Пусть для простоты передается нулевое кодовое слово, а в канале произошла трехкратная ошибка, так что принятая последовательность имеет вид 10 10 00 00 10 00 ... 00 ... Результаты поиска ближайшего пути после приема 14 элементарных блоков показаны на рис. 5.12. Промежуточные этапы работы декодера при сделанных предположениях подробно рассмотрены в [3].

266

На правой части рисунка видны четыре пути, ведущие в каждый узел решетки. Рядом проставлены расстояния (меры расходимости) этих путей от принятой последовательности на отрезке из 14 блоков. Мера верхнего пути значительно меньше мер нижних. Поэтому можно предположить, что верхний путь наиболее вероятен. Однако декодер Витерби, не зная следующих фрагментов принимаемой последовательности, вынужден запомнить все четыре пути на время приема L элементарных блоков. Число L называется шириной окна декодирования. Понятно, что для уменьшения ошибки декодирования следует выбирать L достаточно большим, в несколько раз превышающим длину блока, что, естественно, усложняет декодер. В данном случае L =15 .

Отметим, что тактика выбора и последующего анализа только одного пути с наименьшим расстоянием составляет сущность более экономного последовательного декодирования [3, 26].

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

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

267

ная последовательность равна 00000... или 10100.... Очевидно, расширение окна декодирования не позволяет исправить такую ошибку. Ее исправление возможно при использовании кода с большей корректирующей способностью.

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

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

2.Полученные меры расходимости ребер суммируются с расстоянием путей, которые они продолжают.

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

В результате этих операций к каждому узлу нового столбца вновь ведет один путь. Например, пусть новый блок из канала равен 00. Рассмотрим продолжение пути к нижнему узлу решетки, в который можно попасть из состояния кодера 10 по ребру 01 или из состояния 11 по ребру 10 (рис. 5.11). В обоих случаях расстояние этих ребер от принятого блока 00 равно 1. Однако суммарное расстояние пути, продолженного из состояния 10, равно 6, а пути из состояния 11 равно 7. Поэтому второй путь будет отброшен вместе с ребром 01, которое входило в нижний узел на предыдущем шаге декодирования (рис. 5.12). Оценка информационного символа производится по левому ребру пути, находящемуся в окне декодирования. Согласно правилу построения кодовой решетки принимается, что информационный символ равен 0, если ребро верхнее, и равен 1, если ребро нижнее.

268

Si (t)).
T = nτ

5.9. Помехоустойчивость систем передачи дискретных сообщений

5.9.1. Две процедуры приема сигналов

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

кодового слова передается одно из дискретных сообщений Xi ,i =1, M x .

Для передачи используется, соответственно, M x разных сигналов Si (t),i =1, M x .

Принимаемый сигнал y(t) во многих случаях можно представить в виде

суммы

 

y(t)= Si (t)+n(t), 0 t T .

(5.42)

полезного сигнала и аддитивного гауссовского белого шума n(t) со спектраль-

ной плотностью N0 . Задача приема заключается в том, чтобы по наблюдениям

YT = (y(t),0 t T ) входного процесса y(t) на интервале (0,T ) определить, какой из сигналов Si (t) был передан.

Выбор наилучшего (оптимального) приемника требует введения критерия, на основе которого можно сравнивать качество различных методов. В рассматриваемом случае передачи дискретных сообщений таким критерием качества может служить вероятность ошибки, т.е. вероятность того, что после анализа реализации YT входного процесса, содержащей сигнал Si (t), будет при-

нято неверное решение о передаче сигнала S j (t), j i .

Оптимальный приемник обеспечивает минимальную вероятность ошибки или, что то же самое, максимальную вероятность правильного решения p(Si YT ), вычисленную для данной реализации (максимальную апостериорную вероятность сигнала

Введенный критерий качества позволяет указать наилучший способ обработки реализации входного процесса. Действительно, необходимо вычислить все апостериорные вероятности p(Si YT ) и сравнить их между собой. Затем следует выбрать сигнал S j , апостериорная вероятность p(Si YT ) которого мак-

269

симальна, а вероятность ошибки 1p(Si YT ) минимальна. Для вычисления p(Si YT ) воспользуемся формулой Байеса

 

p(S

Y )=

1

 

p(S

)w(Y S

),

(5.43)

 

w(Y )

 

 

i

T

i

T i

 

 

 

 

 

T

 

 

 

 

где p(Si )

– априорная вероятность использования сигнала Si

для передачи

сообщения;

w(YT ) и w(YT Si )

– безусловная и условная плотности распределения

вероятностей YT , которые при известной (принятой) реализации входного про-

цесса YT превращаются в конкретные числа. Величина w(YT ) не зависит от Si и

может не учитываться при сравнении апостериорных вероятностей. Напротив, функция w(YT Si ) играет основную роль в задаче построения оптимального приемника. Эта функция после подстановки отрезка реализации YT входного процесса зависит лишь от переданного сигнала Si и называется функцией прав-

доподобия.

Для того чтобы подчеркнуть, что w(YT Si )после приема сигнала и подста-

новки YT не является плотностью распределения, введем ее новое обозначение:

L(Si )= w(YT Si ).

Таким образом, оптимальный прием может быть осуществлен на основе вычисления L(Si ) и выбора максимального значения произведения p(Si )L(Si )

При равных вероятностях p(Si )= 1M x ,i =1, M x , оптимальный прием базируется

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

Из статистической радиотехники [20] известно, что для модели (5.42)

 

 

1

T

 

 

 

2

 

L(Si )= C exp

N0

(y(t)Si (t))

dt .

 

 

0

 

Максимум функции правдоподобия достигается при таком сигнале Si ,

для которого минимально значение интеграла

di2 (YT , Si )= T(y(t)Si (t))2dt .

(5.44)

0

 

270

Соседние файлы в папке Корольов