Главная > Помехоустойчивое кодирование > Кодирование с исправлением ошибок в системах цифровой связи
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

6.4. Описание сверточных кодов с помощью конечных автоматов и свойства расстояния

Сверточный кодер является конечным автоматом, и предыдущие рассмотрения показывают, что конечность числа его состояний играет основную роль в алгоритме Витерби. Состояние сверточного кодера определяется последними информационными символами, поступившими в регистр сдвига кодера. Состояниям приписываются номера от 0 до , причем обычно их двоичными представлениями являются последних информационных символов (самый последний поступивший в декодер символ соответствует младшему разряду). Текущее состояние и символ на выходе кодера полностью определяются предыдущим состоянием и символом, поступившим в кодер. Полное описание кодера, характеризующее связи между входными и выходными символами, дается диаграммой состояний, показанной на рис. 6.9 для кода с . Символ над дугой, задающей переход между состояниями, указывает информационный символ на входе кодера, вызывающий этот переход, а символы под дугой указывают соответствующие символы для канала на выходе кодера. Любая последовательность информационных символов определяет путь по диаграмме состояний, и символы для канала вдоль этого пути составляют соответствующую последовательность на выходе кодера.

Поскольку диаграмма состояний на рис. 6.9 эквивалентна графу потока сигналов [56], то при исследовании структуры и характеристик сверточных кодов можно применить теорию графов потоков сигналов [57, 58]. Любая величина, которая может быть

Рис. 6.9. Диаграмма состояния для сверточного кода с

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

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

Рис. 6.10. Граф потока сигналов для сверточного кода с

два — начальное и конечное. Соответствующий граф потока показан на рис. 6.10. Вычисляя коэффициент усиления графа стандартными методами [56], получаем производящую функцию

или после деления

Таким образом, имеются: один путь длиной 3 с входным весом 1 и выходным весом 5; два пути с входным весом 2 и выходным весом 6 (их длины равны 4 и 5); четыре пути с входным весом 3 и выходным весом 7 (длина одного из них равна 5, двух — 6 и одного — 7). Эта информация задает весовую структуру кода, которая в свою очередь определяет характеристики кода точно так же, как весовая структура блоковых кодов. Минимальный выходной вес пути, начинающегося и заканчивающегося в нулевом состоянии, называется свободным расстоянием (таким образом, для рассматриваемого кода с имеем

При оценках характеристик кодов иногда удобно использовать другой метод вычисления Для этого нужно записать следующие уравнения состояний:

где - значение накопленного коэффициента усиления от состояния 0 до состояния 1, учитывающее влияние всех других состояний. Как и на рис. 6.10, состояние 0 разделяется на начальное состояние и конечное состояние 0, которому приписывается номер Эти уравнения можно записать в матричной форме

где

Матрица переходов между состояниями имеет вид

В общем случае она является матрицей порядка .

Формальное решение этих уравнений может быть записано в виде

или в виде матричного степенного ряда

Поскольку пути, ведущие в точку 0, соответствуют то Если представить диаграмму состояний в виде полубесконечной решетки и интерпретировать каждое последующее умножение на А как изменение вектора состояний, вызванное переходом в решетке на следующий уровень, то станет ясно, что записанный степенной ряд действительно задает решение уравнения (6.5). Этот ряд дает также алгоритм для быстрого вычисления в случае большого числа состояний. Следует отметить, что операция умножения на вектор А является весьма простой, поскольку большинство его элементов равно 0. Для небольшого числа состояний можно вычислить обратную матрицу в (6.7) стандартным способом. Если, например, А определяется формулой (6.6), то обращение дает в виде (6.4). Можно показать [59], что при этой процедуре правильные результаты получаются для всех кодов, кроме кодов, допускающих катастрофическое распространение ошибок. Условия, позволяющие исключить такие коды, будут рассматриваться позднее в этой главе. Одно достаточное условие состоит, например, в том, что определитель отличен от 0.

Рассмотрим теперь функцию, получающуюся при подстановке значений Эта функция является производящей, в которой коэффициент при равен числу кодовых путей веса т. е.

Для кода с получаем

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

Для кода с получаем

Таким образом, полный информационный вес путей веса 5 равен 1, путей весов 6 и 7 — соответственно 4 и 12. В разд. 6.5 будет показано, как использовать величины для оценки вероятности ошибки символа.

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

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