Главная страница  Дискретный канал связи 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [ 143 ] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189]

да ж> «1

tSt А ancuf

jr\. ™

* / ® \

W да «г

® © ® /® >

в ® i* ® «

« ® в

> @ е @ в

Окно ЙекоВироеания ДекоВер

Рис. 12.24. Наглядное представление работы декодера Витерби.

ными решениями декодера, но в случае некатастрофического кода декодер через короткое время обнаружит это.

Полезно представлять себе декодер Витерби как окно, через которое моЖно наблюдать часть решетки. Это иллюстрируется рис. 12.24. На рисунке можно видеть только часть решетки конечной длины, на которой отмечены выжившие пути. С течением времени решетка скользит влево - на практике довольно быстро. При появлении справа новых узлов некоторые пути продолжаются до них, а другие исчезают; самый старый столбец выходит из-под наблюдения налево. Со временем левый столбец узлов исчезает, и (при нормальной работе) лишь для одного из узлов этого столбца будет существовать проходящий через него путь.

На рис. 12.25 приведен пример работы алгоритма Витерби в случае сверточного (6,3)-кода с порождающими многочленами gy (х) = + X + 1 я g2 (х) = + I. Кодер для этого кода показан на рис. 12.3. Для простоты выберем в качестве информационной последовательности нулевую и (тоже для простоты) декодер с окном декодирования Ь, равным 15. Предположим, что

V = 10100000100000000000...;

это соответствует передаче нулевого кодового слова с тремя ошибками.

Диаграмма состояний декодера представлена на рис. 12.25. На третьей итерации декодер находит кратчайший путь к каждому узлу третьего кадра. Затем на г-й итерации декодер находит кратчайший путь к каждому узлу г-го кадра, продолжая пути, ведущие к узлам (г - 1)-го кадра и сохраняя кратчайший путь к каждому узлу.

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




10 10 10 10 =7lO 10 00 00 10 00 00 00 no 00.


Итерация 3


Итерачия k


0 12 3 4 5

Итерация 5


Итерация 6


Итерация 9


Итерация 10

• • •


о I 2 .1 4 5 6 7 8 9 101 1

Итерация 11


Итерация \1

• • «У» 6

О 1 2 3 4 5 6 7 8 О 10 11 12 13

Итерация 13


Итерация 7



Итерация 14


Итерация 8

Рис. 12.25. Пример работы алгоритма Витерби.

Итерация 15



436 t-n. 12. сБЁРТОчмыЁ коды

сохранять оба пути, относительно которых существует нёонрё* деленность. В нашем примере неопределенности сохраняются до тех пор, пока не выявляется более правдоподобный путь или сомнительный участок не исчезает из поля зрения декодера.

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

В нашем примере информационная последовательность может быть декодирована либо как

1 = 0 0 0 0 0 0 0...,

либо как

1 = 1 0 1 0 0 0 0 ....

Если сделать ширину окна декодирования более 15, то ошибка по-прежнему останется неисправляемой. Для исправления этой конфигурации ошибок требуется код с большим свободным расстоянием.

Декодер, символически изображенный на рис. 12.25, при практической реализации выглядит совершенно иначе. Например, выжившие пути через решетку представляются таблицей 15-битовых чисел. На каждой итерации некоторые 15-битовые числа сдвигаются влево, причем левый бит сбрасывается, а справа добавляется новый бит. Другие 15-битовые числа не наращиваются, а сбрасываются из таблицы.

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

В случае когда длина кодового ограничения мала, декодеры Витерби могут работать очень быстро. Например, практически возможно построить декодер со 128 узлами на каждом уровне, который производит 10 миллионов итераций в секунду.

12.9. АЛГОРИТМЫ ПОИСКА ПО РЕШЕТКЕ

Можно улучшить характеристики сверточного кода, увеличив длину кодового ограничения. Декодер Витерби, однако, быстро становится непрактичным: при длине кодового ограничения 10 декодер двоичного кода уже должен помнить 1024 выживших путей.




[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [ 143 ] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189]

0.0122