Схемное построение декодера Витерби

Обобщенная структурная схема декодера, работающего по алгоритму Витерби, показана на рис. 16. Для каждого такта работы, соответствующего приему кодовых символов, полученных за один цикл опроса коммутатора кодера, вычислитель метрики ребер (BMP) вычисляет правдоподобие ребер, сливающихся в каждом узле. Например, в случае двоичного симметричного канала с жесткими решениями он вычисляет Хеммингово расстояние между каждым из путей, сливающихся в любом узле, и соответствующей последовательностью принимаемых кодовых символов, поступивших с выхода первой решающей схемы приемника, выносящей жесткие решения о значении каждого принимаемого кодового символа.

Вычислитель метрики путей (ВМП), для каждого из путей, выживших на предыдущем такте декодирования и хранимых в ЗУ путей, осуществляет следующие операции: вводит каждый из этих путей в аналог кодера, где генерируются 2q его возможных продолжений; вычисляет правдоподобие каждого из этих продолжений, для чего суммирует метрики выживших путей, хранимые в ЗУ метрики путей, с новыми вычисленными значениями метрик ребер; заносит вновь полученные пути в ЗУ путей, а их метрики — в ЗУ метрики путей, а затем отбирает из них пути, каждый из которых максимально правдоподобен для одного из узлов и сохраняет его в ЗУ путей, а его метрику — в ЗУ метрики путей. Затем эта же последовательность операций повторяется для следующего такта работы и т. д.

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

 

 

Рис. 16. Структурная схема декодера Витерби

 

Рис. 17. Случай выбора декодером Витерби отрезка неправильного пути

 

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

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

Интенсивно применяются сверточные коды и в спутниковых системах связи.