
Скляр в пересказе Орешкина
.pdf
7.8.Сверточные коды
Вотличие от блочных в случае сверточных кодов выходное кодовое слово из n бит зависит не только от входных k бит, но и от некого количества ранее кодированных. Это становится понятно из структуры сверточного кодера (рис.7.4).
1 |
2 |
3 |
... |
kK |
m m1, m2 , , mi ,
kK -разрядный регистр сдвига
1 + |
2 + |
... n + |
n cумматоров |
|
|
|
по модулю 2 |
U U1,U2 , ,Ui , ,
где Ui u1i , ,u ji , uni
i -я ветвь кодовых слов
u ji - j -й двоичный кодовый символ ответвляющегося слова Ui
Рис.7.4. Сверточный кодер
Как видно из рисунка, кодер состоит из сдвигового регистра, в который поступают информационные символы, после чего разряды сдвигового регистра складываются в той или иной комбинации и на выход поступает результат - кодовые символы. Отношение k/n - степень кодирования, как и прежде, является мерой добавленной избыточности. Целое число K является параметром, называемым длиной кодового ограничения (constraint, length); оно указывает число разрядов в кодирующем регистре сдвига.
Обратите внимание, что на вход кодера можно подавать биты, начиная как со старшего, так и с младшего разряда, это никоим образом не скажется на эффективности кодера, главное, чтобы и кодер и декодер "знали", какой способ они используют.
Выходное кодовое слово, как уже упоминалось ранее, будет зависеть не только от входного информационного, но и от ранее переданных (кодированных) слов. В примере
91

мы остановились в вычислении кодового слова, как только последний бит информацион-
ного слова поступил в сдвиговый регистр, теперь если закодировать такое же слово 101
сразу за первым, получится другое кодовое слово. Это происходит, потому что начальное состояние кодера (конкретно - сдвигового регистра) изменилось. Данную зависимость от ранее переданного можно назвать примером канала с памятью. Для того чтобы использо-
вать сверточный кодер как блочный, необходимо после каждого информационного слова возвращать кодер к начальному состоянию. В нашем случае надо подать на вход K – 1 ну-
лей, и тогда результативное кодовое слово U = 11.10.00.10.11. На практике кодер "чистят"
не каждый раз, а как можно реже.
Все последующие представления сверточного кодера рассмотрим в соответствии с условиями примера 7.4.
Описание через связи с сумматорами. Имея информацию о кодовом ограничении K,
количестве сумматоров и их связях со сдвиговым регистром, можно построить графическое представление кодера, как оно было представлено выше. Для приведенного примера из вы-
ражения "степень кодирования 1/2" можно сделать вывод о том, что на один входной бит по-
лучается два выходных, что говорит о наличии двух сумматоров. Описание связей обычно представлено либо двоичным кодом, либо в форме полинома. Для рассматриваемого примера связи будут
g 111 |
|
g (x) x2 |
x 1; |
|
1 |
или |
1 |
|
|
g2 101 |
g (x) x2 |
1. |
||
|
2
Полиномиальное представление. Обладая представленной информацией, можно провести математическое вычисление кодового слова по следующему алгоритму:
U(X ) m(X )g1(X ) чередуется с m( X )g2 ( X ) . Здесь m(x) - полином входного информационного слова.
m( X )g1 ( X ) ( X 2 1)(X 2 X 1) X 4 X 3 X 1 m( X )g2 ( X ) ( X 2 1)(X 2 1) X 4 1
m( X )g1 ( X ) 1X 4 1X 3 0 X 2 1X 1 m( X )g2 ( X ) 1X 4 0 X 3 0 X 2 0 X 1
U( X ) (1,1) X 4 (1,0) X 3 (0,0) X 2 (1,0) X (1,1)
Импульсная характеристика. Кодер возможно описать через его импульсную ха-
рактеристику и использовать ее в дальнейшем для расчета кодовых слов как суперпози-
цию импульсных возмущений.
Для нашего примера импульсная характеристика h = 11.10.11 как реакция кодера на пропущенную через него единицу. Используя импульсную характеристику, можно рас-
92

считать кодовое слово для входного 101, учитывая, что в кодер поступает по одному биту за такт.
Входные |
1-й |
2-й |
3-й |
4-й |
5-й |
биты, m |
такт |
такт |
такт |
такт |
такт |
1 |
11 |
10 |
11 |
|
|
0 |
|
00 |
00 |
00 |
|
1 |
|
|
11 |
10 |
11 |
Сумма |
|
|
|
|
|
по модулю |
11 |
10 |
00 |
10 |
11 |
2
Диаграмма состояний. Сверточный кодер принадлежит классу устройств, извест-
ных как конечный автомат (finite-state machine). Это общее название дано системам, об-
ладающим памятью о прошедших сигналах. Прилагательное "конечный" показывает, что существует ограниченное число состояний, которое может возникнуть в системе. Состоя-
ние дает некоторое представление о прошлых событиях (сигналах) и об ограниченном на-
боре возможных выходных данных в будущем. Для сверточного кода состояние представ-
лено содержимым K – 1 разрядов (рис.7.5). Знание состояния плюс знание следующих данных на входе является необходимым и достаточным условием для определения дан-
ных на выходе.
00
|
|
Выходной |
|
11 |
а = 00 |
символ |
|
11 |
|
||
|
|
||
|
00 |
|
|
b = 10 |
|
c = 10 |
Состояние |
|
кодера |
||
|
|
|
|
|
10 |
|
|
01 |
d = 11 |
01 |
|
Входной бит 0
10
Входной бит 1
Рис.7.5. Диаграмма состояний
93
Для нашего примера состояния регистра выбраны следующие: а = 00, b = 10, c = 01
и d = 11. Диаграмма иллюстрирует все возможные смены состояний для кодера. Сущест-
вует всего два исходящих из каждого состояния перехода, соответствующих двум воз-
можным входным битам. Далее для каждого пути между состояниями записано ответв-
ляющееся слово на выходе, связанное с переходами между состояниями. При изображении путей сплошной линией принято обозначать путь, связанный с нулевым входным битом, а пунктирной линией - путь, связанный с единичным входным битом.
Отметим, что за один переход невозможно перейти из данного состояния в любое произ-
вольное. Так как за единицу времени перемещается только один бит, существует два воз-
можных перехода между состояниями, в которые регистр может переходить за время про-
хождения каждого бита. Например, если состояние кодера - 00, при следующем смещении
возможно возникновение только состояний 00 или 10.
Древовидные диаграммы. Несмотря на то что диаграммы состояний полностью описывают кодер, по сути, их нельзя использовать для легкого отслеживания переходов кодера в зависимости от времени, поскольку диаграмма не представляет динамики изме-
нений. Древовидная диаграмма (tree diagram) прибавляет к диаграмме состояния времен-
ное измерение. Древовидная диаграмма сверточного кодера из рассматриваемого примера изображена на рис.7.6.
В каждый последующий момент прохождения входящего бита процедура кодиро-
вания может быть описана с помощью перемещения по диаграмме слева направо, причем каждая ветвь дерева описывает ответвленное слово на выходе. Правило ветвления для на-
хождения последовательности кодовых слов следующее: если входящим битом является нуль, то движение вверх; если входящий бит - это единица, то вниз. Предполагается, что первоначально кодер содержал одни нули. Следуя этой процедуре, видим, что входная по-
следовательность 11011 представляется жирной линией, нарисованной на древовидной диаграмме (см. рис.7.6). Этот путь соответствует выходной последовательности кодовых слов 1101010001.
Дополнительное временное измерение в древовидной диаграмме (по сравнению с диаграммой состояния) допускает динамическое описание кодера как функции конкрет-
ной входной последовательности. Однако число ответвлений растет как 2L, где L - это ко-
личество ветвлений на каждом такте, что для описания очень неудобно и занимает мно-
го места.
94

|
|
|
|
|
|
|
|
00 |
a |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
00 |
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Ветвь |
|
|
00 |
a |
|
|
11 |
b |
|
||
|
|
|
|
|
|||||||
|
|
|
10 |
c |
|
||||||
|
|
|
|
||||||||
|
|
|
|
|
|
|
|||||
кодовых |
|
|
|
|
|
||||||
|
|
|
11 |
b |
|
|
|
||||
слов |
|
|
|
|
|
01 d |
|
||||
|
|
00 |
a |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
11 |
a |
|
||||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
10 |
c |
00 |
b |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
11 |
b |
|
|
|
||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
01 |
c |
|
|||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
0 |
|
a |
|
|
|
|
01 |
d |
10 |
d |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
00 |
a |
|
|||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||
1 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
11 |
a |
11 |
b |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|||||
|
|
|
|
10 |
c |
|
|
|
|||
|
|
|
|
|
|
||||||
|
|
|
|
|
10 |
c |
|
||||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
|
|
|
11 |
b |
|
|
00 |
b |
01 |
d |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
11 |
a |
|
|||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
01 |
c |
|
b |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
01 |
d |
|
|
00 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
01 |
c |
|
|||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
10 |
d |
10 |
d |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
00
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
00
11
10
01
11
00
01
10
t1 |
t2 |
t3 |
t4 |
t5 |
Рис.7.6. Древовидное представление кодера (степень кодирования 1/2, K = 3)
Решетчатая диаграмма. Исследование древовидной диаграммы на рис.7.6 пока-
зывает, что после третьего ветвления в момент времени t4 структура повторяется (древо-
видная структура повторяется после K ответвлений, где K - длина кодового ограниче-
ния).
Решетчатая диаграмма, использующая повторяющуюся структуру, дает более удобное описание кодера, по сравнению с древовидной диаграммой. Решетчатая диаграм-
ма показана на рис.7.7.
95

Состояние |
|
|
|
|
|
|
|
|
|
|
|
|
|
a = 00 |
t1 |
00 |
t2 |
00 |
t3 |
00 |
t4 |
00 |
t5 |
00 |
t6 |
||
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
11 |
|
11 |
|
11 |
|
11 |
|
Ветвь |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
кодового |
|
|
|
|
|
|
|
11 |
|
11 |
|
11 |
|
слова |
b = 10 |
|
|
|
|
|
|
00 |
|
00 |
|
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
10 |
|
10 |
|
10 |
|
10 |
|
c = 01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
01 |
01 |
01 |
01 |
01 |
01 |
|
d = 11 |
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
|
|
|
Входной бит 0
Входной бит 1
Рис.7.7. Решетчатая диаграмма кодера (степень кодирования 1/2, K = 3)
7.9. Декодирование сверточных кодов
Если все входные последовательности сообщений равновероятны, минимальная вероятность ошибки получается при использовании декодера, который сравнивает услов-
ные вероятности и выбирает максимальную. Принцип максимального правдоподобия яв-
ляется фундаментальным достижением теории принятия решений - это формализация способа принятия решений, основанного на "здравом смысле", когда имеются статистиче-
ские данные о вероятностях.
Последовательное декодирование. Самым первым появился алгоритм последо-
вательного декодирования. В ходе работы последовательного декодера генерируется ги-
потеза о переданной последовательности кодовых слов и рассчитывается метрика между этой гипотезой и принятым сигналом. Эта процедура продолжается до тех пор, пока мет-
рика показывает, что выбор гипотезы правдоподобен, в противном случае гипотеза после-
довательно заменяется, пока не будет найдена наиболее правдоподобная. При этом поиск происходит методом проб и ошибок. Для мягкого или жесткого декодирования можно разработать последовательный декодер, но обычно мягкого декодирования стараются избегать из-за сложных расчетов и требования большого объема памяти.
96
Рассмотрим ситуацию, когда используется кодер, изображенный на рис.7.4, и по-
следовательность m = 11011 кодирована в последовательность кодовых слов
U = 1101010001. Допустим, что принятая последовательность Z является фактически пра-
вильной передачей U. У декодера имеется копия кодового дерева (см. рис.7.5), и он может воспользоваться принятой последовательностью Z для прохождения дерева. Декодер на-
чинает с узла дерева в момент t и генерирует оба пути, исходящие из этого узла. Декодер следует пути, который согласуется с полученными n кодовыми символами. На следующем уровне дерева декодер снова генерирует два пути, выходящих из узла, и следует пути, со-
гласующемуся со второй группой символов. Продолжая аналогичным образом, декодер быстро перебирает все дерево.
Допустим теперь, что принятая последовательность Z является искаженным кодо-
вым словом U. Декодер начинает с узла дерева в момент t1 и генерирует оба пути, выхо-
дящих из этого узла. Если принятые п кодовых символов совпадают с одним из сгенери-
рованных путей, декодер следует этому пути. Если согласования нет, то декодер следует
наиболее вероятному пути, но при этом ведет общий подсчет несовпадений между при-
нятыми символами и ответвляющимися словами на пути следования. Если две ветви ока-
зываются равновероятными, то приемник делает произвольный выбор. На каждом уровне дерева декодер генерирует новые ветви и сравнивает их со следующим набором п приня-
тых кодовых символов. Поиск продолжается до тех пор, пока все дерево не будет пройде-
но по наиболее вероятному пути и при этом составляется счет несовпадений.
Если счет несовпадений превышает некоторое число (оно может увеличиваться по-
сле прохождения дерева), декодер решает, что он находится на неправильном пути, отбра-
сывает этот путь и повторяет все снова. Декодер "помнит" список отброшенных путей,
чтобы иметь возможность избежать их при следующем прохождении дерева. Допустим,
кодер кодирует информационную последовательность m = 11011 в последовательность кодовых слов U. Предположим, что четвертый и седьмой биты переданной последова-
тельности U приняты с ошибкой.
t1 |
t2 |
t3 |
t4 |
t5 |
m |
|
|
|
|
1 |
1 |
0 |
1 |
1 |
= |
|
|
|
|
U |
|
|
|
|
11 |
01 |
01 |
00 |
01 |
= |
|
|
|
|
Z |
|
|
|
|
11 |
00 |
01 |
10 |
01 |
=
97

Давайте проследим за траекторией пути декодирования (рис.7.8). Допустим, что критерием возврата и повторного прохождения путей будет общий счет не согласующих-
ся путей, равный 3. На рис.7.8 числа у путей прохождения представляют собой текущее значение счетчика несовпадений. Итак, прохождение дерева будет иметь следующий вид.
|
|
|
|
|
|
|
|
00 |
a |
|
00 |
|
|
|
|
|
|
|
|
|
|
11 |
|
||
|
|
|
|
|
00 |
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
||
|
|
|
|
|
|
|
|
11 |
b |
|
|
|
|
|
|
|
|
|
|
|
|
01 |
|
||
|
|
|
00 |
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
|
11 |
|
||
|
|
|
|
|
|
|
|
10 |
|
|
||
Ветвь |
|
|
|
|
|
|
|
|
00 |
|
||
|
|
|
|
11 |
|
b |
|
|
|
|
||
кодовых слов |
|
|
|
|
01 d |
|
01 |
|
||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
a |
|
|
|
|
|
|
10 |
|
||
|
00 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
00 |
|
||
|
|
|
|
|
|
|
|
11 |
a |
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
||
|
|
|
|
|
10 |
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
||
|
|
|
|
|
|
|
|
00 |
b |
|
|
|
|
|
|
|
|
|
|
|
|
01 |
|
||
|
|
|
11 |
|
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
c |
|
11 |
|
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
00 |
|
||
|
|
|
|
|
01 |
|
d |
|
|
|
|
|
|
|
|
|
|
|
|
d |
|
01 |
|
||
|
|
|
|
|
|
|
|
10 |
|
|
||
|
a |
|
|
|
|
|
|
|
10 |
|
||
0 |
|
|
|
|
|
|
3 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
00 |
|
|
1 |
|
|
|
|
2 |
|
|
00 |
a |
|
|
|
|
|
|
|
|
|
|
11 |
|
||||
|
|
|
|
|
11 |
|
a 2 |
|
|
|
||
|
|
|
1 |
|
|
3 |
|
10 |
|
|||
|
|
|
|
|
|
|
11 |
b |
|
|
||
|
|
|
|
|
|
|
|
01 |
|
|||
|
|
|
10 |
|
c |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
2 |
|
|
2 |
c |
|
11 |
3 |
|
|
|
|
|
|
|
10 |
|
||||
|
|
|
|
|
|
|
2 |
00 |
||||
|
|
|
|
|
00 |
b |
|
|
3 |
|||
|
|
|
|
|
|
3 |
|
01 |
|
|||
|
|
0 |
|
|
|
|
1 01 |
|
|
|||
|
|
|
|
|
|
d |
|
10 |
|
|||
|
|
11 b |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
|
2 |
|
|
|
00 |
3 |
|
|
|
|
|
|
|
11 |
a |
|
||||
|
|
|
|
|
|
|
c |
2 |
11 |
|
||
|
|
|
|
|
01 |
|
1 |
|
3 |
|||
|
|
|
|
1 |
|
2 |
|
10 |
||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
00 |
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
2 |
||
|
|
|
|
01 |
d |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
11 |
|
||
|
|
|
|
|
|
|
|
01 |
c |
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
||
|
|
|
|
|
10 |
|
d |
|
|
|
|
|
|
|
|
|
|
|
10 |
d |
|
01 |
|
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
10 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t1 |
|
t2 |
|
t3 |
|
|
t4 |
|
t5 |
|
t6 |
|
Z = |
11 |
|
00 |
|
01 |
10 |
|
01 |
|
||
|
Рис.7.8. Схема последовательного декодирования |
Декодирование с обратной связью. Декодер с обратной связью реализует жест-
кую схему принятия решений относительно информационного бита в разряде j, исходя при этом из метрик, полученных из разрядов j, j + 1,…, j + т, где т - заранее установ-
ленное положительное целое число. Длина упреждения (look-ahead length) L определяет-
98

ся как L = m + 1, количество принятых кодовых символов, выраженных через соответст-
вующее число входных битов, задействованных для декодирования информационного би-
та. Решение о том, является ли информационный бит нулем или единицей, принимается в зависимости от того, на какой ветви путь минимального расстояния Хэмминга переходит в окне упреждения (look-ahead window) из разряда j в разряд j + т.
Поясним это на конкретном примере. Рассмотрим декодер с обратной связью,
предназначенный для сверточного кода со степенью кодирования 1/2 (см. рис.7.4). Древо-
видная диаграмма и работа декодера с обратной связью при L = 3 приведена на рис.7.9.
Иными словами, при декодировании бита из ветви j декодер содержит пути из ветвей j, j + 1 и j + 2.
|
|
t1 |
t2 |
t3 |
t4 |
t5 |
|
|
|
|
|
|
00 |
a |
00 |
|
|
|
|
|
11 |
||
|
|
|
|
00 |
a |
|
|
|
|
|
|
|
10 |
||
|
|
|
|
|
11 |
b |
|
|
|
|
|
|
01 |
||
|
|
Ветвь |
00 |
a |
|
|
|
|
|
|
c |
11 |
|||
|
|
кодовых |
|
10 |
|||
|
|
|
00 |
||||
|
|
слов |
|
11 |
b |
|
|
|
|
|
|
|
|||
|
|
|
|
|
01 |
||
|
|
|
|
|
01 d |
||
|
|
|
a |
|
10 |
||
|
|
00 |
|
|
|
||
|
|
|
|
|
00 |
||
|
|
|
|
|
11 |
a |
|
|
|
|
|
|
11 |
||
|
|
|
|
10 |
c |
|
|
|
|
|
|
|
10 |
||
|
|
|
|
|
00 |
b |
|
|
|
|
|
|
01 |
||
|
|
|
11 |
b |
|
|
|
|
|
|
01 |
c |
11 |
||
|
|
|
|
|
|||
|
|
|
|
|
00 |
||
|
|
|
|
01 |
d |
|
|
|
|
|
|
d |
01 |
||
|
|
|
|
|
10 |
||
0 |
a |
|
|
10 |
|||
|
|
|
|
||||
1 |
|
|
|
|
00 |
a |
00 |
|
|
|
|
11 |
|||
|
|
|
|
11 |
a |
|
|
|
|
|
|
|
10 |
||
|
|
|
|
|
11 |
b |
|
|
|
|
|
|
01 |
||
|
|
|
10 |
c |
|
|
|
|
|
|
|
|
11 |
||
|
|
|
|
|
10 |
c |
|
|
|
|
|
|
00 |
||
|
|
|
|
00 |
b |
|
|
|
|
|
|
|
01 |
||
|
|
|
|
|
01 |
d |
|
|
|
|
|
|
10 |
||
|
|
11 |
b |
|
|
|
|
|
|
|
|
|
00 |
||
|
|
|
|
|
11 |
a |
|
|
|
|
|
|
11 |
||
|
|
|
|
01 |
c |
|
|
|
|
|
|
|
10 |
||
|
|
|
|
|
00 |
b |
|
|
|
|
|
|
01 |
||
|
|
|
01 |
d |
|
|
|
|
|
|
|
|
11 |
||
|
|
|
|
|
01 |
c |
|
|
|
|
|
|
00 |
||
|
|
|
|
10 |
d |
|
|
|
|
А |
|
d |
01 |
||
|
|
|
|
|
10 |
||
|
|
|
B |
|
10 |
||
|
|
|
|
|
|
||
|
А |
|
|
|
В |
|
|
|
11 |
00 |
01 |
00 |
|
01 |
|
|
|
|
|||||
|
Принятая последовательность, шаг А |
|
|
|
Принятая последовательность, шаг В
Рис.7.9. Пример декодирования с обратной связью
99
Начиная из первой ветви, декодер вычисляет 2L (восемь) совокупных метрик путей расстояния Хэмминга и решает, что бит для первой ветви является нулевым, если путь минимального расстояния содержится в верхней части дерева, и единичным, если путь минимального расстояния находится в нижней части дерева. Пусть принята последова-
тельность Z = 1100010001. Рассмотрим восемь путей от момента t1 до момента t3 в блоке,
обозначенном на рис.7.10 буквой А, и рассчитаем метрики, сравнивая эти восемь путей для первых шести принятых кодовых символов (три ветви вглубь умножить на два симво-
ла для ветви). Выписав метрики Хэмминга общих путей (начиная с верхнего пути), видим,
что они имеют следующие значения: |
|
|
|
метрики верхней части |
3, 3, 6, 4; |
|
метрики нижней части |
2, 2, 1, 3. |
Видим, что наименьшая метрика содержится в нижней части дерева. Следователь-
но, первый декодированный бит является единицей (и определяется сдвигом вниз на дере-
ве). Следующий шаг будет состоять в расширении нижней части дерева (выживающий путь) на один разряд глубже, и здесь снова вычисляется восемь метрик, теперь уже для моментов t2 - t4.
Таким образом, процедура продолжается до тех пор, пока не будет декодировано все сообщение целиком. Декодер называется декодером с обратной связью, поскольку най-
денное решение подается обратно в декодер, чтобы потом использовать его в определении подмножества кодовых путей, которые будут рассматриваться следующими. В канале BSC
декодер с обратной связью может оказаться почти таким же эффективным, как и декодер,
работающий по алгоритму Витерби. Важным параметром разработки сверточного декодера с обратной связью является L, длина упреждения. Увеличение L приводит к повышению эффективности кодирования, но при этом растет сложность конструкции декодера.
Алгоритм сверточного декодирования Витерби. В алгоритме Витерби, по сути,
реализуется декодирование, основанное на принципе максимального правдоподобия; од-
нако в нем уменьшается вычислительная нагрузка за счет использования особенностей структуры конкретной решетки кода. Преимущество декодирования Витерби перед деко-
дированием по методу "грубой силы" заключается в том, что сложность декодера Витерби не является функцией количества символов в последовательности кодовых слов. Алго-
ритм включает в себя вычисление меры подобия (или расстояния) между сигналом, по-
лученным в момент времени t1 , и всеми путями решетки, входящими в каждое состояние в момент времени t1 . В алгоритме Витерби не рассматриваются те пути решетки, которые,
согласно принципу максимального правдоподобия, заведомо не могут быть оптимальны-
ми. Если в одно и то же состояние входят два пути, выбирается тот, который имеет луч-
100