приводит к изменению мягких выходных LLR, которые рассчитываются с
помощью уравнения (6.13) |
ˆ |
ˆ |
ˆ |
L(d ) |
Lc (x) Leh (d ) |
Le (d ). |
После всех четырех итераций мягкий выход декодера даст следующие
значения ˆ
L(d )
2,6 |
-2,5 |
-2,6 |
2,5 |
В результате проведенных итераций в декодере получены правильные решения по каждому биту данных с высоким уровнем доверия к этим решениям. Итеративное декодирование турбокодов напоминает процесс решения кроссвордов. Первый проход по кроссворду, вероятно, содержит несколько ошибок. Некоторые слова нуждаются в подгонке, но когда буквы в нужных строках и столбцах не подходят, нужно вернуться и исправить слова, вписанные после первого прохода.
6.4 Кодирование с помощью рекурсивного систематического кода
Ранее были описаны основные идеи сочетаний, итераций и мягкого декодирования на примере простого композиционного кода. Затем эти идеи применялись при реализации турбокодов, которые образуются в результате параллельных сочетаний сверточных кодов [18].
Рассмотрим простые двоичные сверточные кодеров со скоростью кодирования 1/2, длиной кодового ограничения К и памятью порядка К -1. На вход кодера в момент k, подается бит dk, и соответствующим кодовым словом будет битовая пара (uk ,vk ) , где
G1 g1i и G2 g2i – генераторы кода, a dk представлен как двоичная
цифра. Этот кодер можно представить как линейную систему с дискретной конечной импульсной характеристикой (finite impulse response – FIR), порождающую хорошо знакомый несистематический сверточный (nonsystematic convolutional — NSC) код, разновидность которого показана на рис. 6.7.
|
K 1 |
|
|
|
|
|
|
uk |
g1i dk i |
по |
модулю |
2, |
g1i |
0, |
1 , |
|
i 0 |
|
|
|
|
|
(6.42) |
|
|
|
|
|
|
|
|
|
K 1 |
|
|
|
|
|
|
vk |
g2i dk i |
по |
модулю |
2, |
g2i |
0, |
1 . |
|
i 0 |
|
|
|
|
|
|
206
Соответствующую решетчатую структуру можно увидеть в разделе 5 (сверточные коды). В данном случае длина кодового ограничения равна К = 3 и используются два генератора кода – G1 111 и G2 101 .
{uk}
|
|
|
|
|
|
|
|
|
{dk} |
|
|
dk |
dk-1 |
dk-2 |
|||
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{vk}
Рис. 6.7 Несистематический сверточный кодер
Хорошо известно, что при больших значениях Eb/N0 достоверность передачи с кодом NSC выше, чем с систематическим кодом с той же памятью. В качестве составляющих компонентов для турбокода был предложен класс сверточных кодов с бесконечной импульсной характеристикой. Такие же компоненты используются в рекурсивных систематических сверточных
(recursive systematic convolutional — RSC) кодах, поскольку в них предварительно кодированные биты данных постоянно должны подаваться обратно на вход кодера. При высоких степенях кодирования коды RSC дают значительно более высокие результаты, чем самые лучшие коды NSC, при любых значениях Eb/N0. Двоичный код RSC со степенью кодирования 1/2 получается из кода NSC с помощью контура обратной связи и установки одного из двух выходов (uk или vk) равным dk. На рис. 6.8, а показан пример такого RSC-кода с К = 3, где ak получается из рекурсивной процедуры
|
K 1 |
|
|
|
ak |
dk |
gi 'ak 1 по |
модулю 2, |
(6.43) |
|
i 0 |
|
|
|
а gi ' равно g1i если uk |
dk , и g2i |
– если vk |
dk . На рис. 6.8, б изображена |
|
решетчатая диаграмма RSC – кодера, структурная схема которого представлена на рис. 6.8, а.
207
{dk} |
|
{uk} |
|
dk dk-1 dk-2
{vk}
а)
Кодовое слово ветви
Состояние |
uv |
|
|
|
t1 |
00 |
t2 |
||
a = 00 |
|
|
|
|
|
|
|
|
|
11 |
|
11 |
|
|
b = 10 |
00 |
|
|
10 |
c = 01 |
|
01 |
01 |
d = 11 |
10 |
|
|
б) |
|
Рис. 6.8 Структурная схема систематического сверточного кодера а) и его решетчатая структура б)
Конкатенация кодеров RSC.
Рассмотрим параллельную конкатенацию двух RSC кодеров, подобных кодеру изображенному на рис. 6.8, а. Хороший турбокод строится из составных кодов с небольшой длиной кодового ограничения K = 3 –5. На рис. 6.9 приведена в качестве примера структурная схема такого турбокодера.
208
{dk} |
|
{uk} |
|
dk dk-1 dk-2
Устройство |
{v1k} |
|
чередования |
||
|
{vk}
dk dk-1 dk-2
{d’k}
{v2k}
Рис. 6.9 Схема турбокодера в виде параллельного соединения двух RSC кодеров
Без переключателя степень кодирования кодера равна 1/3, а при использовании переключателя степень кодирования будет равна 1/2. Ограничений на количество соединяемых кодеров нет. Кодеры, входящие в составной кодер, должны иметь одинаковую длину кодового ограничения и степень кодирования.
На рис. 6.10 представлена функциональная схема составного турбокодера. В приведенной схеме кодер дублируется дважды. Первый кодер получает поток входных битов, для каждого из которых генерирует один контрольный бит С1. Вход второго кодера – это подвергнутый чередованию исходный входной поток, дающий последовательность контрольных битов С2. Затем исходный входной бит и два контрольных бита объединяются (мультиплексируются) и в результате получается последовательность I1C11C21I2C12C22..., т.е. за первым входным битом следует контрольный бит
209
кодера 1, за ним идет контрольный бит кодера 2 и т.д. Степень кодирования результирующей последовательности равна 1/3. Если использовать только половину контрольных битов, чередуя выходы двух кодеров, можно получить степень кодирования 1/2.
|
|
I |
Мультиплексор |
|
|
|
C1 |
IC1C2IC1C2.... |
|
|
|
|
||
|
Кодер 1 |
|
IC1IC2.... |
|
|
|
|
||
|
|
|
|
Прореживание |
Устройство |
Кодер 2 |
C2 |
|
|
чередования |
|
|
|
|
|
|
|
|
Рис. 6.10 Функциональная схема турбокодера
Турбокодер, изображенный на рис. 6.10, выдает кодовые слова IC1C2IC1C2... Распределение весовых коэффициентов кодовых слов зависит от
того, сколько кодовых слов из одного кодера комбинируются с кодовыми словами из другого кодера. Интуитивно понятно, что следует избегать спаривания кодовых слов с малым весовым коэффициентом из одного кодера с кодовыми словами с малым весовым коэффициентом из другого кодера. Большого количества таких спариваний можно избежать, сконфигурировав надлежащим образом устройства чередования. При этом, устройство, которое перемежает данные случайным образом, более эффективно, чем рассмотренные ранее блочные устройства чередования.
Для кодера, изображенного на рис. 6.9, кодовое слово с минимальным весовым коэффициентом для каждого из кодеров порождается входной последовательностью с весовым коэффициентом 3 (00…00111000…00) и тремя последовательными единицами. Другая последовательность, порождающая кодовые слова с малым весом, представлена последовательностью с весовым коэффициентом 2 (00…00100100…00). Однако после перемежения, внесенных устройством чередования, любая из этих опасных структур имеет слабую вероятность появления на входе второго кодера, что делает маловероятной возможность комбинирования одного кодового слова с малым весом с другим кодовым словом с малым весом.
6.5 Декодер с обратной связью
Использование алгоритма Витерби является оптимальным методом декодирования для минимизации вероятности появления ошибочной последовательности. К сожалению, этот алгоритм (с жесткой схемой на выходе) на подходит для генерации апостериорной вероятности (a posteriori
210