Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
4.2. Декодер максимального правдоподобия для сверточных кодов — алгоритм ВитербиКак было показано выше, сверточные коды можно рассматривать как частный случай блочных кодов. Отсюда следует, что декодер максимального правдоподобия сверточного кода, задаваемого проверочной матрицей вида (4.1.1), может быть реализован так же, как описанный в гл. 2 декодер максимального правдоподобия блочного кода с которого изображен на рис. 4.2а, предполагая, что передача ведется по двоичному симметричному каналу (ДСК). После того как основные понятия будут проиллюстрированы на этом простом примере, можно легко описать декодер максимального правдоподобия минимальной сложности и для произвольного сверточного кода и произвольного канала без памяти. В § 2.8 было показано, что в случае ДСК, в котором символы 0 и 1 кодовых векторов с вероятностью Обращаясь к представлению кода с помощью дерева, видим, что декодер максимального правдоподобия должен выбирать тот путь на дереве, у которого соответствующая кодовая последовательность отличается от принятой последовательности в наименьшем числе символов. Однако, так как пути, соответствующие передаваемым кодовым векторам, постоянно сливаются, можно с тем же успехом ограничиться в поиске лишь множеством путей на решетчатой диаграмме, показанной на рис. 4.4. Исследование этой диаграммы показывает, что для принятия решения о начальных сегментах наиболее вероятной переданной последовательности (наиболее близкой к принятой последовательности) нет необходимости рассматривать всю принятую последовательность длины следующем уровне сравнивать в каждом узле два пути, выжившие на предыдущем уровне. Так, в узле а после четвертого ребра в сравнении будут участвовать пути, выжившие при сравнениях в узлах а и с после третьего ребра. Например, если принята последовательность 01000111 (рассматриваем первые четыре ребра), то путем, выжившим в узле на третьем урсзне, будет путь 00000000 с расстоянием 2, а в узле с — 110101 с расстоянием также 2. При переходе от третьего уровня узлов к четвертому символы принятой последовательности в точности совпадают с продолжением пути, выжившего в узле с, и находятся на расстоянии 2 от продолжения пути, выжившего в узле а. Следовательно, на четвертом уровне в узле а выживает информационная последовательность 1100, которой соответствует кодовая последовательность 11010111, находящаяся на (минимальном) расстоянии 2 от принятой последовательности. Таким образом, можно двигаться по решетчатой диаграмме, запоминая на каждом ее уровне в каждом состоянии только один выживший путь и расстояние от него до принятой последовательности; это расстояние является метрикой рассматриваемого канала. Единственная трудность, которая может возникнуть при этом, связана с тем, что при сравнении сходящихся путей расстояния (метрики) могут совпадать. В этом случае можно просто бросить монету, чтобы выбрать один из них, как это делалось ранее для кодовых слов блочных кодов, находящихся на одинаковом расстоянии от принятой последовательности. Если сохранить оба одинаково правдоподобных пути, то последующие принятые символы будут влиять на изменение их метрик абсолютно идентично, так что это не улучшит окончательный выбор. Алгоритм декодирования, описанный выше, был впервые предложен Витерби [1967а]. Для того чтобы он мог быть лучше понят и оценен, на рис. 4.7 приведена решетчатая диаграмма рассмотренного выше кода с растущими значениями расстояний и соответствующими им выжившими путями в случае, когда принята последовательность 0100010000. Также очевидно, что при принятии последних решений по полной решетчатой диаграмме, приведенной на рис. 4.4, из четырех возможных состояний решетки при поступлении хвоста декодера будут вначале рассматриваться лишь два и затем одно состояние. На первый взгляд описанный алгоритм декодирования является очень привлекательным, но на практике он неприемлем, так как приводит к задержке декодирования, равной В, и кроме того, к необходимости для каждого состояния иметь память для записи путей длины В (для хранения последовательностей входных двоичных символов, ведущих в множество, наиболее вероятное из четырех состояний на каждом уровне узлов). В § 4.7 и 5.6 будет показано, что характеристики не сильно ухудшаются при соответствующем уменьшении задержки и памяти до величины в несколько длин кодового ограничения. Однако пока будем игнорировать эту проблему и довольствоваться тем, что число вычислений метрики, приходящихся на один информационный символ, снизилось до величины, растущей экспоненциально по
Рис. 4.7 Пример декодирования для кодера, изображенного на рис. 4.2а, и ДСК (метрики состояний декодера приведены в кружочках) Другое описание алгоритма можно получить, воспользовавшись представлением кода с помощью диаграммы состояний, приведенной на рис. 4.5. Предположим, что найден путь на направленной диаграмме состояний, достигающий узла а после Таким образом, оказывается, что диаграмма состояний также является системной диаграммой этого декодера. С каждым узлом (состоянием) связаны регистр памяти, в котором запоминается ближайший к принятой последовательности путь, ведущий в данное состояние после каждого перехода, и регистр метрики, в котором хранится (минимальное) расстояние между этим путем и принятой последовательностью. Дальнейшие сравнения выполняются на каждом шаге между двумя путями, ведущими в каждый узел. Таким образом, для каждого состояния должно быть предусмотрено отдельное устройство сравнения, т. е. всего в предыдущем примере необходимы четыре тамих устройства. Обобщение описанного выше алгоритма на случай сверточных кодов с произвольной длиной кодового ограничения К и произвольной рациональной скоростью Обобщение этого алгоритма на случай произвольного канала без памяти также почти очевидно. Во-первых, следует заметить, что можно отобразить так же, как в § 2.9 векторы путей
где
где
Максимизация этой величины эквивалентна максимизации выражения
где Декодирование по максимуму правдоподобия произвольных решетчатых «одов осуществляется точно так же, как декодирование сверточных кодов с помощью алгоритма Витерби. Таким образом, лишь кодер решетчатых кодов существенно отличается от кодера сверточных кодов, как уже указывалось в § 4.1. Конечно, было бы желательным порождать кодовые символы с помощью более простых сверточных кодеров, если бы характеристика были одними и теми же. В гл. 5 будет показано, что в большинстве приложений это действительно так.
|
1 |
Оглавление
|