Главная Помехоустойчивое кодирование



чины Zf (5.87),/ = О, 1,. .. , 14. Затем, умножив вектора = (2o,Zi,. . ., 214) на матрицу Л (рис. 4.14), вычислим составляюндае (5.88) вектора у. Переупорядочив последний в соответствии с правилом (4.96), получим вектор (5.85). Наконец, воспользовавшись перестановкой (4.20), найдем искомое кодовое слово как обратное ФМСП:

v=(14, О, 1, 10,0. 5, О, 10,2, О, 2, 14, 15, О, 3) =

= (Vo, 1, 2, э, V4, Vs, Ve, V7, V8, V9, Vio,Vii, V12, Vi3, V14),

где Vi G GF(2), / = 0, 1,. . ., 14. "

Укрупненный алгоритм декодирования РС-кода в частотной области. Ориентируясь на структуру рис. 6.4,5, вьщелим основные этапы декодирования:

1) преобразование Фурье - Мэттсона - Соломона;

2) нахождение полинома локаторов;

3) рекуррентное продолжение синдрома;

4) коррекция и извлечение сообщения.

На первом этапе принятое кодовое слово v \ возможно, искаженное помехами, подвергается л-точечному ФМС-преобразованию. Полученный вектор С = (Со, Cl, Cft-i) соответствует спектру для суммы кодового слова v и ошибки е, т. е. С= (у \-е)Фп= V + Е, Так как т составляющих pj- вектора F= (2; р) являются нулевыми, то соответствующие им т компонент вектора S = (5о = С;,51 = C;t +1 > • • >- i ~ = C/2 i) "в чистом виде" характеризуют конфигурацию ошибок е. Другими словами, эти т компонент аналогичны синдрому во временной области; причем если все они равны нулю, то считается, что в принятом слове V нет ошибок (иначе v обязательно искажено).

Второй этап упрощается (по сравнению с временным декодированием), так как отпадает надобность в полном решении ключевого уравнения (6.24), а достаточно найти лишь полином локаторов o{z). Поэтому сокращается количество операций при решении уравнения (6.24) с помощью ТБМ-метода, алгоритма Евклида или другого приема.

Например, для вычисления полинома o{z) воспользуемся методом, изложенным в гл. 2. Построим на w-компонентном векторе синдрома S усеченную побочно-диагональную ганкелеву матрицу типа (2.54), которую методом Гаусса приведем к трапецеидальному виду. Тогда в ее последней строке будет сформирован остаток R, т.е. полу-НОД [z, S(z)]. Далее используем безрекуррентную процедуру,основанную на соотношении типа (2.42), которое в нашем случае удобно представить в форме

(6.29)

где S - нормализованный синдром, получаемый из вектора S при умножении всех компонент последнего на (Sj - его самый левый ненулевой коэффициент); - старший коэффициент полинома o(z)]



ф - нормализованный вектор, полученный из вектора о при умножении компонент последнего на а JI

Третий этап сводится к вычислению спектра Е ошибок. Для этого осуществляется рекуррентное продолжение синдрома или, что то же самое, особое продолжение ганкелевой матрищ11, построенной на разрядном векторе синдрома. Подробно приемы вычисления указанных продолжений бьши рассмотрены в § 2.3. Заметим, что достаточно найти к составляюпщх продолжения. Однако для косвенной проверки правильности вычисления полинома o{z) и вектора £* целесообразно найти еще т продолжений последнего, которые должны совпадать с т компонентами синдрома. Цродолжения синдрома находятся на основании соотношения типа (2.27). Но в нашем случае вычисления удобно производить по рекуррентной формуле

(6.30)

+ GF(2),

где = 1, / = О, 1, ..., и - и; v - степень полинома а(2), т. е. число ошибок, исказивших принятое кодовое слово. При этом т старших составляющих спектра Е совпадают с соответствующими компонентами синдрома, характеризуюпщми "чистую" ошибку е, а именно:

Коррекция (четвертый этап) состоит в сложении векторов С, Е и вьщелении сообщения Q после отбрасывания нулевого вектора р длины т из суммы: V = СЕ = (Q; р).

Пример декодирования (с помощью алгоритма Гаусса, безрекуррентного вычисления полинома локаторов и продолжения синдрома по рекуррентной процедуре). Предположим, что кодовое слово (6.28) с символами G GF (2*) принято в виде следующего блока:

v- (О, 3, 1, 10, О, 5, О, 10, 2, О, 2, 14, 15, О, 3) =

= io, Vi, v2, v3, vi,Vs,vi,v;,vi,Vg, v[oyv[i,Vi2 , Via, v), (6.31)

гдеуеОЕ(2*), i =0,1,...,14.

Следовательно, v = v + где e - вектор ошибки, пара левых разрядов которого отлична от нуля: Cq = Ы; е i = 3,

Подвергая принятое слово v (6.31) и-точечному ФМС-преобраэо-ванию (реально вьшолняемому по быстрым алгоритмам), можно найти спектр С = F + £ для суммы безошибочного кодового слова v и ошибки е. Мы предоставляем читателю самостоятельно убедиться, что

(6, 15, 11, 4, 3, 11, 4, 11, 10, 5, 2; О, 3, 7, 13)



- (Со, Cl, С2, Сз, с4, Cs, Сб, с7, Cg, с9, Сю; Сц, Ci2,Ci3, с14)

(6.32)

Так как четьфе (т = 4) правых разряда, составляющих синдром 5, отличны от нуля, то принятое слово v ошибочно. Нормализованный

синдроме=5 5"= (0,1,5,11), где5л =5i = 3; =

Построим на векторе S = (13, 7,3, 0) усеченную побочно-диагональную матрицу, которую приведем к трапецеидальной форме:

13 7

3 ] О 0] О

3 0 0 О

13 7 3 0 О 15 3 О

О 7 3 0

13 7 ] 3 О О 15 ] 3 О

О 0 15 0

Переход ко второй матрице от первой осуществляется путем выравнивания левых коэффициентов во всех ее строках [вторая строка по правилам поля GF(2 ) умножается на элемент 7, а третья - на И], после чего первая строка добавляется к остальным. Для перехода к третьей матрице от второй нижняя строка умножается на элемент поля 9 и к ней прибавляется вторая строка, В последней строке трапецеидальной матрицы сформирован полу-НОД R= (5,0).

Используя соотношение (6.29), найдем нормализованный полином локаторов ф(г):

О, 5, О, О, О, О О, 5, 9, 15

О, 1, 5, 11 =5, 9, 6 = 6- (15,4,1)

О, 9, 15, О, 9, 13,

О, 6, 4, О О, 6, 10, 1

(2, 1)

где Си = 6 - старшая компонента полинома локаторов a(z); Р - полу-НОД [z*, S (z) ]; далее Р не используется.

Итак, безразмерный полином локаторов суть z -v Az 15. Можно убедиться, что полином 1 + 4х + 15х = 15 • (2 + 5xi- х) позиций оши-

бок получаемый иэ предьщущего при z = х~ , имеет корни: Ху - \ -

= а * = 2°; = 2 = = 2\ где а = 2- примитивный элемент поля. Следовательно, /1 = О, /2 = 1, что совпадает с позициями ошибок, введенными в кодовый блок (6.31).



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


0.028