Прокис Дж. - Цифровая связь (1266501), страница 87
Текст из файла (страница 87)
Если декодер осуществляет декодирование жестких решений, качество кода определяется вероятностью ошибки символа Р„. Эта вероятность ошибки была рассчитана в главе 5 для когерентного и некогерентного детектирования. По Р„мы можем определить Р„(д) согласно (8.2.28) пли 18.2.29), что является вероятностью ошибки при парном сравнении пути из одних нулей с путем, который отличается в д символах. Вероятность ошибки на бит имеет верхнюю границу 2к-г Р, < „ХР Р(с/). 18.2.40) 1 а=л Множитель 2' /(2" — 1) используется для превращения вероятности ошибки символа в вероятность ошибки на бит. 42В Вместо декодирования жестких решений предположим, что декодер осуществляет декодирование мягких решений, используя выход демодулятора, который использует квадратичный детектор. Выражение для вероятности ошибки на бит (8.2.40) все еще применимо, но теперь Р,(Н) определяется так (смотри раздел 12.1.1): Р„[Д = „~, ехр~-~у,й,хф К,(~у,й„д)/, (8.2.41) =О где а Ь' - 1/'2г скорость кода.
Это выражение следует из результата (8.1.63.). Каскадные коды. В разделе 8.1.8 мы рассмотрели каскадное объединение двух блоковых кодов для того, чтобы сформировать длинный блоковый код. Теперь. поскольку мы описываем сверточные коды, мы расширим нашу точку зрения и рассмотрим каскадное объединение блокового кода со сверточным кодом илн каскадное объединение двух сверточных кодов. Как было описано раньше, внешний код обычно выбирается недвоичным с выбором кодового символа из алфавита д = 2' символов.
Этот код может быть блоковым кодом, таким как код Рида-Соломона пли сверточным кодом, таким как /г-дуальный код. Внутренний код может быть как двоичным. так и недвоичным н блоковым пли сверточным. Для примера, в качестве внешнего кода можно выбрать код Рида-Соломона, а я-дуальный код можно выбрать в качестве внутреннего. В такой каскадной схеме число символов внешнего кода д=-2', так что каждый символ внешнего кода отображается /;-битовым символом внутреннего к-дуального кода. Для передачи символов можно использовать М-ичные ортогональные сигналы.
Декодирование такого кода также может принимать различные формы, Если внутренний код сверточный и имеет короткое кодовое ограничение, алгоритм Витерби обеспечивает зффективныГ~ способ декодирования, используя декодирование либо мягких, либо жестких решений. Если внутренний код блоковый, и декодер для этого кода обеспечивает декодирование мягких решений, внешний декодер также может выполняться с мягким решением. используя в качестве входов метрики. соответствующие каждому кодовому слову внутреннего кода. С другой стороны, внутренний декодер может выполнять декодирование жестких решений после получения кодовых слов и отправлять жесткое решение внешнему декодеру. Тогда внешний декодер должен формировать декодирование жестких решений.
Следующий пример описывает каскадный код, в котором внешний код сверточный, а внутренний — блоковый. Пример 8.2.5. Предположим„что мы сконструировали каскадный код, выбрав /гдуальный код в качестве внешнего кода и блоковый код Адамара в качестве внутреннего. Для конкретности. выберем 5-дуальный код со скоростью 1/2 и код Адамара (1б, 5) в качестве внутреннего кода. Дуальный код со скоростью 1/2 имеет минимальное свободное расстояние О„= 4, а код Адамара имеет минимальное расстояние Ы „= 8. Следовательно, каскадный код имеет эффективное минимальное расстояние 32.
Поскольку имеется 32 кодовых слова в коде Адамара и 32 возможных символа во внешнем коде, в 4П итоге каждый символ внешнего кода отображается в одно из 32 кодовых слов кода Адамара. Вероятность ошибочного декодирования символа внутренним кодом можно определить из результатов качества блоковых кодов, данных в разделах 8.1.4 и 8.1.5, соответственно, для декодирования мягких и жестких решений. Сначала предположим, что во внутреннем декодере осуществляется хлесткое решение с вероятностью ошибки декодирования кодовых слов (символов внешнего кода), обозначенную Р,„, так как М = 32 .Тогда качество внешнего кода и, следовательно, качество каскадного кода можно получить, используя эту вероятность ошибки в соединении с передаточной функцией для 5-дуального кода, определенной в (8.2.32).
С другой стороны, если декодирование мягких решений используется во внешнем и внутреннем декодерах, метрики для мягкого решения о каждом принимаемом кодовом слове кода Адамара передаются на алгоритм Витерби, который вычисляет результирующие метрики для конкурирующих путей решетки. Мы дадим численные результаты качества каскадных кодов этого типа в нашей дискуссии о кодировашш в каналах с релеевскимп замираниями.
8.2.7. Другие алгоритмы декодирования сверточных кодов Алгоритм Витерби, описанный в разделе 8.2.2, это оптимальный алгоритм гк декодирования для сверточных кодов. Однако он требует вычисления 2 метрик каждого узла решетки и хранения 2"' ' метрик н 2" " выживших последовательностей, каждая нз них имеет длину около 5кК бит Вычислительное время и память для хранения требуемого для реализации алгоритма Витерби, делают его практически неприемлемыл~ для сверточных кодов с большим кодовым ограничением.
Еще до открытия оптимального алгоритма Витерби, были придуманы другие алгоритмы для декодирования сверточных кодов. Самым ранним был алгоритм последовательного декодирования, впервые предложенный Возенкрафтом и впоследствии модифицированньш Фано (1963). Последовательный алгоритм декодирования Фано ищет наиболее правдоподобный путь по дереву или решетке путем проверки каждьш раз одного пути.
Приращение, добавляемое к метрике вдоль ветви пропорционально вероятности принимаемого сигнала для этой ветви, как в алгоритме Витерби, за исключением того. что к метрике каждой ветви добавляется отрицательная константа прибавляется. Величина этой константы выбирается так. что метрика правильного пути будет в среднем увеличиваться. в то время как метрика для любого неправильного нуги в среднем будет уменьшаться. Путем сравнения метрики претендующего пути с меняющимся (увеличивающимся) порогом алгоритм Фано обнаруживает и отвергает неправильные пути. Для большей конкретности рассмотрим канал без памяти.
Метрика для 1-го пути по дереву или решетке от первой ветви до В-й ветви можно выразить так (8.2.42) где (8.2.43) В (8 2,43) г,„,— выходная последовательность демодулятора, р(г, )сь ) означает условную ФПВ г,„, при условии кодового бита с(') (т-й бит в у-й ветви ('-го пути), а л'.— положительная константа. Л выбирается, как сказано выше, так, что неправильные пути будут иметь уменьшающиеся метрики, в то время как правильный пугь в среднем увеличивает метрику. Заметим, что член р(г„„) в знаменателе не зависит от кодовой последовательности и, следовательно, может быть включен в постоянную. Метрика, определенная (8.2.43), в общем применима при декодировании как жестких, так и мягких решений. Однако она может быть особенно упрощена, когда используется декодирование жестких решений. В частном случае, если мы имеем ДСК с переходной вероятностью ошибки р, метрика для каждого принятого символа, согласующаяся с формулой (8.2,43), определяется так ~!о8,~2(1 - р)) — Л, при г,„, = с"„', '(! о8„2Л вЂ” Л„.
при г,„, ~ с('„' (8.2.44) г,„,— выходы жестких решений демодулятора, (ю) с, — т-и кодовыи символ в у-й ветви 1-го луги дерева, Л,, — скорость кода. Заметим, что эти метрики требуют хотя бы приближенного знания вероятности ошибки р. Пример 8.2.6. Предположим, что для передачи информации по ДСК с вероятностью ошибки р = 0,1 используется двоичный сверточный код ео скоростью Л вЂ” 1/3. с Вычисление согласно (8.2.44) дает 1 052 Ие ~;.„, =с,',)„ (8.2.45) ЯЮ,фИ.
Для упрощения расчетов метрики (8 2.45) можно нормировать. Они хорошо аппроксимируются так: — 5 Г = с('), /Ю ~ с». ~~В' (8.2.46) Поскольку скорость кода равна 1/3, то кодер имеет три выходных символа на каждый входной символ. Тогда метрики ветвей, согласующиеся с (8.2.46), равны р(.') =3-Ы l влн, что эквивалентно, )(,' =1 — 21~, (ю) (8.2.47) 429 где ()( — хеммингово расстояние трех принятых бит от трех битов на ветви. Так «м образом, метрики )(,.