Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


8.1.8. Недвоичные блоковые коды и каскадные блоковые коды

Недвоичные блоковые коды состоят из набора кодовых слов фиксированной длины, в которых каждый элемент кодового слова выбирается из алфавита, содержащего  символов, обозначаемых . Обычно , так что  информационных бит отображается одним из  символов. Длина недвоичного кодового слова обозначается через , а число информационных символов, закодированных блоком из  символов, обозначается . Минимальное расстояние недвоичного кода обозначается . Систематический блоковый код  содержит  информационных символов и  проверочных символов.

Среди различных типов недвоичных линейных блоковых кодов коды Рида-Соломона являются одними из самых важных для практических приложений. Как было указано раньше, они составляют подкласс БЧХ кодов, которые, в свою очередь, являются классом циклических кодов. Эти коды описываются параметрами

Такой код гарантированно исправляет до

                    (8.I.117)

ошибок символов. Конечно, эти коды могут быть расширены и укорочены так, как было описано ранее для двоичных блоковых кодов.

Распределение весов  класса кодов Рида-Соломона известно. Коэффициенты во взвешивающем полиноме определяются так:

,                     (8.1.118)

где  и .

Одно объяснение важности кодов Рида-Соломона – их хорошие дистанционные свойства. Второе объяснение их важности - существование эффективных алгоритмов декодирования жёстких решений, которые делают возможным реализовать относительно длинные коды во многих практических приложениях, где требуется кодирование.

Недвоичный код хорошо согласован с техникой -ичной модуляции для передачи  возможных символов. В частности, часто используется -ичная ортогональная система сигналов, например, -ичная ЧМ. Каждый из  символов в -ичном алфавите отображается в один из  ортогональных сигналов. Таким образом, передача кодового слова связана с передачей  ортогональных сигналов, где каждый сигнал выбирается из набора  возможных сигналов.

Оптимальный демодулятор для такого сигнала, искажённого в канале с АБГШ, состоит из  согласованных фильтров (или взаимных корреляторов) чьи выходы подаются к декодеру в форме мягких или жёстких решений. Если демодулятор вынес жёсткие решения, то вероятность ошибки символа  и параметры кода достаточны для характеристики качества декодера. Действительно, модулятор, канал с АБГШ и демодулятор формируют эквивалентный симметричный канал без памяти с дискретным (-ичным) входом и дискретным (-ичным) выходом, характеризуемый переходными вероятностями  и . Эта модель канала, которая иллюстрируется на рис. 8.1.17, является обобщением ДСК.

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

,                    (8.1.119)

где  - число ошибок, гарантированно исправляемое кодом.

Рис. 8.1.17. -ичный по входу, -ичный по выходу симметричный канал без памяти

Ошибке кодового слова соответствует вероятность ошибки символа

.                    (8.1.120)

Далее, если символы отображаются битами, то вероятность ошибки на бит, исходя из (8.1.120), равна

.                    (8.1.121)

Пример 8.1.13. Рассчитаем качество кода Рида-Соломона при . Соответствующие значения  равны 29, 27, 23 и 15. При модуляции используются  ортогональных сигнала ЧМ и некогерентное детектирование на приеме.

Вероятность ошибочного приёма символа определяется (5.4.46), и её можно выразить в виде

,(8.1.122)

где  - ОСШ на кодовый символ. Используя (8.1.122) в (8.1.120) и объединяя результат с (8.1.121), мы получим вероятность ошибки на бит. Результаты этих расчётов даны на рис. 8.1.18.

Заметим, что более мощные коды (больше ) дают худшее качество при низких ОСШ на бит, чем слабые коды. С другой стороны, при высоких ОСШ более мощные коды дают лучшее качество. Таким образом, имеется пересечение среди различных кодов, как показано для примера на рис. 8.1.18 для значений  и .

Рис. 8.1.18. Характеристики некоторых кодов Рида-Соломона, исправляющих  ошибок, с -позиционной ЧМ в канале с АБГШ (некогерентная демодуляция)

Пересечение также возникает для кодов с  при малых значениях ОСШ на бит. Аналогично, кривые для  и  пересекается в области больших значений ОСШ. Это характерное поведение кодированных сигналов при некогерентном детектировании.

Если демодулятор не выносит жёсткое решение по каждому кодовому символу, но, вместо этого, отправляет неквантованные выходы согласованных фильтров к декодеру, можно использовать декодирование мягких решений. Такое декодирование включает в себя формирование  корреляционных метрик, где каждая метрика соответствует одному из  кодовых слов и состоит из суммы выходов  согласованных фильтров, соответствующих  кодовым символам. Выходы согласованных фильтров можно (1) суммировать когерентно, (2) детектировать по огибающей, а затем суммировать или (3) квадратировать и затем суммировать. Если используется когерентное детектирование, а в канале действует АБГШ, расчет вероятности ошибки является простым обобщением двоичного случая, рассмотренного в разделе 8.1.4. С другой стороны, если используется детектирование огибающей или квадратичное детектирование и некогерентное сложение для формирования величин, по которым принимается решение, расчёт качества декодера значительно более сложен.

Каскадные блоковые коды. Каскадный код состоит из двух отдельных кодов, которые объединяются для образования большего кода. Обычно один из кодов выбирается недвоичным, а второй двоичным. Они соединяются каскадно, как показано на рис. 8.1.19.

Недвоичный  код образует внешний код, а двоичный – внутренний код. Кодовые слова формируются путём подразделения блока на  информационных бита по  группам, называемым символами, причём каждый такой символ состоит из  бит.  символов (с  битами каждый) кодируются в  символов внешним кодом, как это обычно делается при недвоичном кодировании. Внутренний кодер берет каждый -битовый символ и кодирует его в двоичный блоковый код длины . Таким образом, мы получаем каскадный блоковый код, имеющий длину  бита и содержащий  информационных  бита. Это значит, мы создали эквивалентный  длинный двоичный код. Биты в каждом кодовом слове передаются по каналу посредствам  ФМ или, возможно ЧМ.

Рис. 8.1.19. Блок-схема системы связи, использующей каскадный код

Также укажем, что минимальное расстояние для каскадного кода равно , где  - это минимальное расстояние для внешнего кода, a  - минимальное расстояние для внутреннего кода. Далее, скорость каскадного кода равна , что равно произведению скоростей двух кодов.

Декодер жёстких решений для каскадного кода удобно разделить на внутренний декодер и внешний декодер. Внутренний декодер выполняет жёсткое решение по каждой группе из  бита, соответствующие кодовому слову внутреннего кода, и выносит решение о  информационных битах, основываясь на алгоритме максимального правдоподобия (минимума расстояния). Эти  бит представляют один символ внешнего кода. Когда принят блок из   -битовых символов от внутреннего декодера, внешний декодер принимает жёсткое решение по  -битовым информационным символам, основываясь на декодирование по правилу максимального правдоподобия.

При каскадном кодировании возможно и декодирование мягких решений. Обычно оно выполняется по внутреннему коду, если он выбран так, что имеет немного кодовых слов, т.е.  не очень велико. Внешний код обычно декодируется посредствам декодера жёстких решений, особенно если длина блока велика и имеется много кодовых слов. С другой стороны, можно достичь достаточный выигрыш в качестве при использовании декодирования мягких решений по внутреннему и внешнему кодам, чтобы оправдать дополнительную сложность декодирования. Этот случай интересен для цифровых систем связи в радиоканалах с замираниями, как мы покажем в главе 14.

Мы завершим этот подраздел следующим примером.

Пример 8.1.14. Предположим, что код Хемминга (7, 4), описанный в примерах 8.1.1 и 8.1.2, используется как внутренний код при каскадном кодировании, причём в качестве внешнего кода используется код Рида-Соломона. Поскольку , выберем длину кода Рида-Соломона . Число информационных символов  в кодовых словах внешнего кода можно выбрать в области  для того, чтобы достичь желательную скорость кода.

 



<< ПредыдущаяОглавлениеСледующая >>