Тема 5. Кодирование канала (часть 3) (774436), страница 4
Текст из файла (страница 4)
23. Сввртвчный кодер (степень кодирования 1/2, К= 3) Один из способов реализации кодера заключается в определении л векторов связи, по одному на каждый из л сумматоров по модулю 2. Каждый вектор имеет рэзмерносп К и описывает связь регистра сдвига кодера с соответствующим сумматором по модулю 2. Единица на (-й позиции вектора указывает на то, что соответствующий разряд в регистре сдвига связан с сумматором по модулю 2, а нуль в данной позиции указывает, что связи между разрядом и сумматором по модулю 2 не существует. Для кодера на рис. 7.3 можно записать вектор связи я, для верхних связей, а й, — для нижних.
Предположим теперь, что вектор сообщения ш = 1 О 1 закодирован с использованием сверточного кода и кодера, показанного на рис. 7.3. Введены три бита сообщения, по одному в момент времени й, г, и г,, как показано на рис. 7.4. Затем для очистки регистра в моменты времени г4 и г, введены (К вЂ” 1) = 2 нуля, что в результате приводит к смещению конечного участка на всю длину регистра. Последовательность на выходе выглядит следующим образом: 1 1 1 О О О 1 О 1 1, где крайний левый символ представляет первую передачу. Для декодирования сообщения нужна полная последовательность на выходе (включающая кодовые символы).
Для удаления сообщения из кодера требуется на единицу меньше нулей, чем имеется разрядов в регистре, или К вЂ” 1 очищенных бит. В момент времени г, показан нулевой выход, зто должно дать читателю возможность убедиться в том, что в момент времени г, регистр устанавливается в исходное состояние. Таким образом, в момент времени гь уже можно передавать новое сообщение. 7.2.1.1. Реакция кодера на импульсное возмущение Мы можем описать кодер через сто импульсную характеристику, т.е. в виде отклика кодера на единичный проходящий бит. Рассмотрим содержимое регистра (рис.
7.3) при прохождении через него двоичной единицы. 7.2. П едставление сверточного кодера 409 Вмход и! иг и! о о о иг о 14 и1 ! 1 иг и! о о те иг Выходнея лооледоеетельнооть: 11 10 00 1О 11 Рис. 74. Сверточное кодирование последовательности сообщения со степенно кодирования 1/2 кодераи с Х = 3. Глава7. Канальноаксдноованна1часть2 -жюВремя Кодер и! иг 1 1 Кодовое елово ветви Содержимое регистра и 1 1 1 0 ! 1 100 010 001 Входная последовательность 1 0 0 Выходная последовательность !1 10 !1 Последовательность на выходе при единице на входе называется откликом кодера на импульсное возмущение, или его импульсной характеристикой.
Для входной последо- вательности щ = 10 1 данные на выходе могут быть найдены путем сулерлазиции или линейного сложения смещенных во времени входных "импульсов". Выход Вход, т 1! 10 11 ОО 00 10 00 11 Сумма ло модулю 2 11 10 00 10 !! 7.2.1.2. Полииомиальное представление Иногда связи кодера описываются с помощью налиналиальнага генератора, аналогичного используемому в главе 6 для описания реализации обратной связи регистра сдвига циклических кодов. Сверточный кодер можно представить в виде набора из и полиномиальных генераторов, по одному для каждого из и сумматоров по модулю 2. Каждый полипом имеет порядок К вЂ” 1 нли меньше и описывает связь кодирующего регистра сдвига с соответствующим сумматором по модулю 2, почти так же как и вектор связи.
Коэффициенты возле каждого слагаемого поли- нома порядка (К вЂ” 1) равны либо 1, либо О, в зависимости от того, имеется ли связь между регистром сдвига и сумматором по модулю 2. Для кодера на рис 7.3 7.2. Представление сверточного кодера 411 Обратите внимание на то, что эти данные на выходе такие же, как и на рис. 7.4, что указывает на линейность свертачных кодов — точно так же кы и в блочных кодах в главе 6. Название свертачиый кодер (сопчо!ог!опа1 епсодег) возникло именно вследствие этого свойства генерации данных на выходе с помощью линейного сложения (или свертки) смещенных во времени импульсов последовательности на входе с импульсной характеристикой кодера.
Такие устройства часто описываются с помощью матричного генератора бесконечного порядка [6). Отметим, что в рассмотренном выше примере входной последовательности из 3 бит и последовательности на выходе из 10 бит эффективная стелень кодирования составляет й1н = 3/1О, что значительно меньше величины 1/2, которую можно было бы ожидать, зная, что каждый бит данных на входе порождает пару канальных битов на выходе. Причина этого заключается в том, что финальные биты данных нужно провести через кодер. Все канальные биты на выходе требуются в процессе декодирования. Если бы сообщение было длиннее, скажем 300 бит, последовательность кодовых слов на выходе содержала бы 640 бит и значение для степени кодирования кода 300/640 было бы значительно ближе к 1/2.
дер тем не менее является оптимальным; в том смысле, что путь декодирования такой же, как и путь, полученный с помощью декодера критерия максимального правдоподобия, действующего "грубой силой", однако предварительный отказ от неудачных путей снижает сложность декодирования. В качестве великолепного пособия для изучения структуры сверточных кодов, декодирования на основе критерия максимального правдоподобия и реализации кода можно порекомендовать работу 18].
Существует несколько алгоритмов, которые дают яриблизителыгые решения задачи декодирования на основе критерия максимального правдоподобия, включая последовательный 19, !О) и пороговый 111]. Каждый из этих алгоритмов является подходящим для узкоспециальных задач; однако все они близки к оптимальному. Алгоритм декодирования Витерби, напротив, осуществляет декодирование на основе критерия максимального правдоподобия шире, следовательно, является оптимальным.
Это не означает, что алгоритм Витерби в любой реализации является наилучшим; при его использовании существуют жесткие условия, налагаемые на аппаратное обеспечение. Алгоритм Витерби обсуждается в разделах 7.3.3. и 7.3.4. 7.3.2. Модели каналов: мягкое или жесткое принятие решений Перед тем как начать разговор об алгоритме, который задает схему принятия максимально правдоподобного решения, давайте сначала опишем канал.
Последовательность кодовых слов (У ', опредсляемую словами ветви, каждое из которых состоит из я кодовых символов, можно рассматривать как бесконечный поток, в отличие от блочного кода, где исходные данные и их кодовые слова делятся на блоки строго определенного размера. Последовательность кодовых слов, показанная на рис. 7.1, выдается сверточным кодером и подается на модулятор, где кодовые символы преобразуются в сигналы. Модуляция может быть низкочастотной (например, модуляция импульсными сигналами) или полосовой (например, модуляция Р5К или ГИК).
Вообще, за такт в сигнал к(г) преобразуется 1 символов, где 1 — целое, причем 1 = 1, 2, ..., а м = 2'. Если 1 = 1, модулятор преобразует каждый кодовый символ в двоичный сигнал. Предполагается, что канал, по которому передается сигнал, искажает сигнал гауссовым шумом. После того как искаженный сигнал принят, он сначала обрабатывается демодулятором, а затем подается на декодер.
Рассмотрим ситуацию, когда двоичный сигнал передается за отрезок времени (О, Т), причем двоичная единица представляется сигналом л(г), а двоичный нуль— сигналом гг(г). Принятый сигнал имеет вид г(г) = л(г) э я(г), где я(г) представляет собой вклад гауссового шума с нулевым средним. В главе 3 мы описывали детектирование г(г) в два основных этапа На первом этапе принятый сигнал переводится в число г(7) = а, + пы где а, — это компонент сигнала г(Т), а ле — компонент шума.
Компонент шума ла — это случайная переменная, значения которой имеют гауссово распределение с нулевым средним. Следовательно, г(7) также будет случайной гаусговой величиной со средним а, или аь в зависимости от того, какая величина была отправлена — двоичная единица или двоичный нуль. На втором этапе процесса детектирования принимается решение о том, какой сигнал был передан. Это решение принимается на основе сравнения г(7) с порогом. Условные вероятности г(Т), р(г)г,) и р(4г,), показанные на рис. 7.8, обозначены как правдоподобие л и зь Демодулятор, представленный на рис. 7.1, преобразует упорядоченный по времени набор случайных переменных (г(7)) в кодовую последовательность У, и подает ее на декодер. Выход демодулятора можно Гпааа 7.
Канальное коциоование: часть 2 настроить по-разному. Можно реализовать его в виде нсесткой схемы принятия решений относительно того, представляет ли г(7) единицу или нуль. В этом случае выход демодулятора квантуется на два уровня, нулевой и единичный, и соединяется с декодером (это абсолютно та же схема пороговых решений, о которой шла речь в главах 3 и 4).
Поскольку декодер работает в режиме жесткой схемы принятия решений, принятых демодулятором, такое декодирование называется лсгстким. Правдоподобие ет р(г! в1) Правдоподобие ег р (г) ег) г(г) г" ~ 000 001 010 011 100 101 110 111 В.уроенееая схема мягких решений 2-уроеневая схема жестких решений Рас. 7.8.
Жесткая и мягкая схемы декодирования 17.3. Формулировка задачи сеерточного кодирования 421 Аналогично демодулятор можно настроить так, чтобы он подавал на декодер значение г(7), квантованнов более чем на два уровня. Такая схема обеспечивает декодер большим количеством информации, чем жесткая схема решений. Если выхол лемолулятора имеет более двух уровней квантования, то декодирование называется мягким. На рис. 7.8 на оси абсцисс изображено восемь (3-битовых) уровней квантования. Если в демодуляторе реализована жесткая схема принятия двоичных решений, он отправляет на декодер только один двоичный символ. Если в демодуляторе реализована мягкая двоичная схема принятия решений, квантованная на восемь уровней, он отправляет на декодер 3-битовое слово, описывающее интервал, соответствующий г(7).
По сути, поступление такого 3-битового слова, вместо одного двоичного символа, эквивалентно передаче декодеру меры достоверности вместе с решением относительно кодового символа. Согласно рис. 7.8, если с демодулятора поступила на декодер последовательность 1 1 1, это равносильно утверждению, что с очень высокой степенью достоверности кодовым символом была 1, в то время как переданная последовательность 1 О О равносильна утверждению, что с очень низкой степенью достоверности кодовым символом была 1. Совершенно ясно, что в конечном счете каждое решение, принятое декодером и касающееся сообщения, должно быть жестким; в противном случае на распечатках компьютера можно было бы увидеть нечто, подобное следующему: "думаю, это 1", "думаю, это О" и тзь То, что после демодулятора не принимается жесткое реигение и на декодер поступает больше данных (мягкое принятие решений), можно понимать как промежуточный этап, необходимый для того, чтобы на декодер поступило больше информации, с помощью которой он затем сможет восстановить последовательность сообщения (с более высокой достоверностью передачи сообщения по сравнению с декодированием в рамках жесткой схемы принятия решений).