8.2.6. Недвоичные k-дуальные коды и каскадные кодыНаше обсуждение свёрточных кодов до сих пор было сконцентрировано, прежде всего, на двоичные коды. Двоичные коды особенно пригодны для каналов в которых возможно использовать двоичную или четверичную ФМ с когерентной демодуляцией. Однако, имеется много приложений для которых ФМ и когерентная демодуляция не подходит или невозможна. В этих случаях используется другая техника модуляции, например -ичная ЧМ, в соединении с некогерентной демодуляцией. Недвоичные коды особенно хорошо согласуются с -ичными сигналами, которые демодулируются некогерентно. В этом разделе мы опишем класс недвоичных свёрточных кодов, называемых -дуальными кодами, которые легко декодируются посредством алгоритма Витерби, используя декодирование мягких или жёстких решений Они также подходят как внешний код или как внутренний код в каскадном коде, который также будет описан ниже. Дуальный свёрточный кодер со скоростью 1/2 можно представить так, как показано на рисунке (8.2.16). Он состоит из двух -битовых регистров сдвига и генераторов функций. У него два -битовых выхода. Заметим что код, рассмотренный в примере (8.2.3), является 2-дуальным свёрточным кодом. Рис. 8.2.16. Кодер для -дуального кода со скоростью 1/2 генераторов функций для -дуальных кодов были даны Витерби и Джекобсом (1975). Их можно выразить в форме где означает единичную матрицу. Общая формула для передаточной функции -дуального кода со скоростью 1/2 была найдена Оденвальдером (1976). Она выражается так: (8.2.37) где представляет расстояние Хемминга для -ичных символов, показатель для представляет число ошибок в информационных символах, которые имеют место при выборе ветви на дереве или в решётке, отличающейся от соответствующих ветвей пути из одних нулей, показатель для равен числу ветвей для данного пути. Заметим, что минимальное свободное расстояние равно символам ( битам). Низкоскоростные -дуальные свёрточные коды можно генерировать различными путями, простейший сводится к повторению каждого символа, генерированного кодом со скоростью 1/2, раз, где ( соответствует появлению каждого символа один раз). Если каждый символ в частной ветви дерева или решётки или диаграммы состояний повторяется раз, то увеличивается параметр расстояний от до . Следовательно, передаточные функции для -дуального кода со скоростью равна . (8.2.38) При передаче длинных информационных последовательностей параметр длина пути в передаточной функции можно подавить, положив . Результирующую передаточную функцию можно дифференцировать по и положить затем . Это даёт , (8.2.39) где представляет число ошибок в символах, связанных с путём имеющим расстояние от пути с одними нулями, как было описано ранее в разделе (8.2.3).Выражение (8.2.3.) можно использовать для расчёта вероятности ошибки для -дуальных кодов при различных условиях в канале. Качество -дуальных кодов с -ичной модуляцией. Предположим, что -дуальный код используется в соединении с -ичными ортогональными сигналами в модуляторе, где . Каждый символ кодера отображается в один из возможных ортогональных сигналов. Считается, что в канале действует АБГШ. Демодулятор состоит из согласованных фильтров. Если декодер осуществляет декодирование жёстких решений, качество кода определяется вероятностью ошибки символа . Эта вероятность ошибки была рассчитана в главе 5 для когерентного и некогерентного детектирования. По мы можем определить согласно (8.2.28) или (8.2.29), что является вероятностью ошибки при парном сравнении пути из одних нулей с путём, который отличается в символах. Вероятность ошибки на бит имеет верхнюю границу . (8.2.40) Множитель используется для превращения вероятности ошибки символа в вероятность ошибки на бит. Вместо декодирования жёстких решений предположим, что декодер осуществляет декодирование мягких решений, используя выход демодулятора, который использует квадратичный детектор. Выражение для вероятности ошибки на бит (8.2.40) всё ещё применимо, но теперь определяется так (смотри раздел 12.1.1): , (8.2.41) где , a скорость кода. Это выражение следует из результата (8.1.63.). Каскадные коды. В разделе 8.1.8 мы рассмотрели каскадное объединение двух блоковых кодов для того, чтобы сформировать длинный блоковый код. Теперь, поскольку мы описываем свёрточные коды, мы расширим нашу точку зрения и рассмотрим каскадное объединение блокового кода со свёрточным кодом или каскадное объединение двух свёрточных кодов. Как было описано раньше, внешний код обычно выбирается недвоичным с выбором кодового символа из алфавита символов. Этот код может быть блоковым кодом, таким как код Рида-Соломона или свёрточным кодом, таким как -дуальный код. Внутренний код может быть как двоичным, так и недвоичным и блоковым или свёрточным. Для примера, в качестве внешнего кода можно выбрать код Рида-Соломона, а -дуальный код можно выбрать в качестве внутреннего. В такой каскадной схеме число символов внешнего кода , так что каждый символ внешнего кода отображается -битовым символом внутреннего -дуального кода. Для передачи символов можно использовать -ичные ортогональные сигналы. Декодирование такого кода также может принимать различные формы. Если внутренний код свёрточный и имеет короткое кодовое ограничение, алгоритм Витерби обеспечивает эффективный способ декодирования, используя декодирование либо мягких, либо жёстких решений. Если внутренний код блоковый, и декодер для этого кода обеспечивает декодирование мягких решений, внешний декодер также может выполняться с мягким решением, используя в качестве входов метрики, соответствующие каждому кодовому слову внутреннего кода. С другой стороны, внутренний декодер может выполнять декодирование жёстких решений после получения кодовых слов и отправлять жёсткое решение внешнему декодеру. Тогда внешний декодер должен формировать декодирование жёстких решений. Следующий пример описывает каскадный код, в котором внешний код свёрточный, а внутренний - блоковый. Пример 8.2.5. Предположим, что мы сконструировали каскадный код, выбрав -дуальный код в качестве внешнего кода и блоковый код Адамара в качестве внутреннего. Для конкретности, выберем 5-дуальный код со скоростью 1/2 и код Адамара (16, 5) в качестве внутреннего кода. Дуальный код со скоростью 1/2 имеет минимальное свободное расстояние , а код Адамара имеет минимальное расстояние . Следовательно, каскадный код имеет эффективное минимальное расстояние 32. Поскольку имеется 32 кодовых слова в коде Адамара и 32 возможных символа во внешнем коде, в итоге каждый символ внешнего кода отображается в одно из 32 кодовых слов кода Адамара. Вероятность ошибочного декодирования символа внутренним кодом можно определить из результатов качества блоковых кодов, данных в разделах 8.1.4 и 8.1.5, соответственно, для декодирования мягких и жёстких решений. Сначала предположим, что во внутреннем декодере осуществляется жёсткое решение с вероятностью ошибки декодирования кодовых слов (символов внешнего кода), обозначенную , так как . Тогда качество внешнего кода и, следовательно, качество каскадного кода можно получить, используя эту вероятность ошибки в соединении с передаточной функцией для 5-дуального кода, определенной в (8.2.32). С другой стороны, если декодирование мягких решений используется во внешнем и внутреннем декодерах, метрики для мягкого решения о каждом принимаемом кодовом слове кода Адамара передаются на алгоритм Витерби, который вычисляет результирующие метрики для конкурирующих путей решётки. Мы дадим численные результаты качества каскадных кодов этого типа в нашей дискуссии о кодировании в каналах с релеевскими замираниями.
|