Резюмируя сказанное, декодер Витерби на каждом шаге вычисляет метрики ребер,
добавляет их ко всем метрикам узлов, накопленных ранее, а затем отбрасывает большее
расстояние из двух, ведущих к каждому узлу. Поскольку всего имеется
узлов (т.е.
состояний регистра), сложность декодера определяется только длиной кодового ограниче-
ния
и остается фиксированной вне зависимости от теоретически неограниченного чис-
ла кодовых слов (путей).
Возвращаясь к сделанному предположению о единственности выживающего пути
для каждого узла, отметим, что поскольку расстояние Хэмминга целочисленно, то всегда
существует вероятность того, что два пути, ведущие к одному и тому же узлу, обладают
одинаковыми текущими расстояниями относительно
. Возможны различные стратегии
преодоления неопределенности этого типа. Одна из них использует случайный выбор:
присвоение реверса честной монеты одному из путей и провозглашение его выжившим в
случае выпадания реверса при бросании монеты. Подобное действие, конечно, нарушает
оптимальность декодирования, хотя сопровождающие его энергетические потери, как
правило, незначительны. Альтернативой является признание обоих конкурирующих путей
выжившими и запоминание их до тех пор, пока дальнейшие шаги не разрешат неопреде-
ленность. Последняя стратегия сохраняет оптимальность декодирования ценой увеличе-
ния требуемой памяти.
Пример 9.3.4. Рассмотрим декодирование наблюдения
для кода
из примера 9.3.1. Рис. 9.9 иллюстрирует данный процесс с указанием метрик узлов, распо-
ложенных непосредственно около них, и кадров, содержащих пары принятых символов
наблюдения на текущем шаге. Декодер начинает процесс в предположении нулевого (т.е.
00) начального состояния кодирующего регистра. Начальные
шаги отвечают
переходному состоянию кодирующего регистра, когда только одна ветвь входит в каждое
состояние (см. рис. 9.9) и все пути оказываются выжившими. На первом шаге декодер
сравнивает первую группу из
символов наблюдения с двумя ребрами, выходящими
из состояния (00). Согласно их расстоянию Хэмминга от группы символов 01 как сплош-
ное, так и пунктирное ребра решетки приобретают метрику, равную 1, которая приведена
рядом с ними. Следовательно, метрики двух узлов, до которых дошли ребра, становятся
равными единице. На следующем шаге расстояние измеряется между второй группой на-
блюдаемых символов 00 и двумя парами ветвей, исходящих из узлов (00) и (10), приводя к
метрикам, которыми помечены ветви. После добавления к метрикам узлов предшествую-
щего этапа они обновляют метрики узлов (00) и (10), а также образуют метрики еще двух
узлов (01) и (11). Начиная с третьего шага в любой узел решетчатой диаграммы рис. 9.9
входят по две ветви, означающие, что декодер должен решить какая из них выживает. На-
чиная с этого шага, откажемся от показа метрик ребер, чтобы не перегружать рисунок.
Как видно, на третьем шаге имеются два пути, ведущие к узлу (00). Их расстояния от на-
блюдаемых символов 010011 составляют величины, равные 3 и 2 соответственно. Первый
из них не выживает, и декодер отбрасывает его вместе с соответствующей метрикой, что
отражено перечеркиванием пути и отсутствием его на рисунке следующего этапа. Второй
путь является выжившим и запоминается со своей метрикой до следующего шага. Анало-
гичным образом декодер определяет выжившие пути и для остальных узлов. В ходе по-
следующих шагов процедура декодирования продолжается подобно рассмотренному, со-
храняя в памяти только
выживших путей, и каждая диаграмма на рис. 9.9 изо-
бражает только пути, выжившие на предшествующем этапе.
На 7–м шаге декодер впервые сталкивается с проблемой неоднозначности: два пути
приходят в узел (01) с одинаковыми расстояниями, как и в узел (11). Выбор выжившего
пути, иллюстрируемый рисунком, отражает его реализацию посредством подбрасывания
монеты. Аналогичные события происходят на 8–м и 9–м шагах. Читатель может убедить-
ся (задача 9.19), что любое альтернативное решение неопределенности не изменит окон-
чательного результата декодирования за исключением числа шагов, после которых воз-