Главная страница  Алгебраическая теория кодирования 

[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]

д(20

3 =

В поле характеристики р

ft=0 m=0

Это тождество приводит к следующему утверждению: 10.56. Теорема

im,4P-l

m=0 m=0

В частном случае С/ = 1, F = FiZ и р = 2. Отсюда получаем, что

д(20 у [] [(0(20)2+ Fa(2M20]2 ,

(а(20)2 4.Fa(20T(20 = 1 + {о\У + (0*)2 z* + ... ...+Fiz[Tp>z + (Tf>+TlM>)z2+...],

так что (10.57)

А< = Fiz + [FfT<i" + Vi {а?*Г] z + ... .

10.6. Примеры

Сначала мы продолжим рассмотрение примера 7.68, в которо» исследовался двоичный БЧХ-код с исправлением 3 ошибок и кодовое длиной 31, когда поле задается многочленами от а степени <5, гдв а* + + 1 = 0. Степенные симметрические функции от локаторов ошибок имели вид = 11101 = а", S3 = 10000 = а* и S = = 00010 = аЧ Согласно алгоритму 7.4, находим, что а(*) = aV+i + О -z + ai*z 4- 1 и = ah + az + aV. Тогда 1 + S = 1 + + a"z + a2«z2 + a*z3 + az* + ah + a«z« + . . . . Используя формулу

Si для i<6,

is\%oaSl%+aS[% для J>6, .3=1

получим, что

1 + 5(в) = 1 + a"z + aV -f + aV + +

-f a«z« -f az + a"z« + az -f ah<> + . . . .

Из условий цикличности и сопряженности вытекает, что Sq = = S31+Q = = SI = Ф а" = 5(). Значит, многочлен а(*) недопустим; он не имеет в GF (2*) трех различных корней, так как Af) = Sg - iS(6) = а* - а" = 1 0. Уместно сделать следующие коррективы.

Если предположить, что произошло не более четырех ошибок, то общее решение о = С/о(*) + FtC) примет вид о = о) + FiZt(*). (Заметим, что для двоичного кода U имеет четную, а F - нечетную степень, и если deg U 2 или deg F 2, то о должен иметь степень >4.) Согласно уравнению 10.57,

Af)=F?TP4F,(of"). Для рассматриваемого примера это дает

1 = F,W* + Fia28,

(10.61) (Fio-y + Fia-* = а-\

Решения этого квадратного уравнения имеют вид Fitt-* = ач или а" + 1 = а", Fi = а" или аз.

Если Fi = а", то о = 1 + a"z -f az + az + aOz*.

Если Fi = аз, то 0 = 1 -f a"z + az -f ah + a-z*.

Один из методов проверки этих возможных многочленов локаторов ошибок на допустимость - это установить, делят или не делят они многочлен z* - z. Это можно осуществить очень быстро. По модулю 0 (z) = Z* -Ь az + az + az -f a"

z* = ai*z3 -I- ah + az + ao, 25 „162З „2622 a"z + «3, ze = дзз j „822 „162 + a z2 = (z*)2 = a28z« 4- a"z* + az + a" = = a-3z3 -L ai5z2 + аЗг + aS z2* = a-6z« J- a-iz* + ah + a = = агз + a23z2 -l az +

225 „2426 „1524 J „822 „25 =



Следовательно, многочлен а (z) = 1 + a*z + a*z + az + аЩ должен иметь в GF (2) четыре различных корня. С помощью процеду! ры Ченя находим, что

а = (1 + ah) (1 + ah) (1 + ah) (1 + a"z).

Второй возможный многочлен локаторов ошибок также имеет четы корня в GF (25):

1 + a"z + a"z2 + azs + aV =

= (1 + a"z) (1 + ah) (1 + ah) (1 + azf

Итак, оказалось, что любая попытка исправить 4 ошибки с nfl мощью двоичного БЧХ-кода с исправлением 3 ошибок и блоково длиной 31 приводит к двузначности результата, так как каждь смежный класс, имеюнщй вес 4, содержит 2 лидера. Это свойств является следствием того, что рассматриваемый код получаетс выбрасыванием одного символа из кода Рида - Маллера. Ко;: такого типа изучаются в разд. 15.3.

В качестве второго примера рассмотрим двоичный БЧХ-кс с блоковой длиной 31 и исправлением 5 опшбок. Предполож! что Si = а\ S3 = a S = а, S = а\ Так как Sg = SI = а,

1 + 5 (z) = 1 + a*z +, a"z2 -f ah -f aV +

-f ai»z* + ah« + ah -f ah + a"z» + a-izi» + . . . .

Согласно алгоритму 7.64,

am (z) = 1 -f ah + a"z + aV -j- aV + ah\ t(i«) (z) = ah + a"z2 + aV -f aV + a"z».

С помощью обычных вычислений находим, что

Sm (z) =

Здесь

51° = a" Ф {S[y = (a)* = ao.

Многочлен локаторов ошибок (z) недопустим, и уместно внес! коррективы.

Если произошло не более шести ошибок, то, согласно уравне нию (10.57),

Полагая Sg = 5*1, получим квадратное уравнение относительно

(10.62)

1,10

-f Fia" + Via = (а -f F}*, + Fia" + FJa + F* = 0.

Как будет показано в разд. 11.1, это уравнение имеет в GF (2) два решения: либо Vi = а*, либо F = а*.

Если Fi = то о (z) = 1 + ah + ah + aV -f a"z* +

+ aV + и 1 -f 5 (z) =

+ az + az* -f az + az* + az. Так как в этом случае = а, SI = а* =5 5з = а, то мы должны отвергнуть гипотезу Fa = «2*.

Полагая Fj = а*, получим, что о (z) = 1 -f az -f az + aV + + aV -f az + az*. Процедура Ченя показывает, что этот многочлен допустим и имеет место разложение

а (z) = (1 -f z) (1 -f az) (1 -\- ah) (1 + ah) (1 + a*z) (1 + ah).

В общем случае если предположить, что произошло t + и ошибок, то, используя разложение в ряд для производящей функции А(), можно получить систему уравнений относительно и неизвестных коэффициентов многочленов U ж V. Эта система может не иметь решения (что случится, когда полученное слово лежит в смежном классе, все слова которого имеют вес >Z + и), может иметь несколько допустимых решений или единственное решение.

К сожалению, эти системы нелинейных уравнений бывают очень сложными, и ;ало что известно об условиях существования решений, условиях их единственности и правилах отыскания решений (решения), если они существуют. Если предположить, что произошла только t -\- I ошибка, то локатор этой дополнительной ошибки может быть найден с помощью решения единственного алгебраического уравнения с одной неизвестной Fi. Однако если произошло более чем Z + 1 ошибок, то ситуация очень быстро усложняется.

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

Задача

10.1. Рассмотрим БХЧ-код с исправлением двух ошибок над GF (4). Пред-полошим, - что l + S = l + 0z4-ai*22 j a23-f-0z*+. . . . Показать, что a(z) = l + + a2z4-a*z2 и что Xi = a, Ха, Yi = l, 2 = 1-



Глава 11

Линеаризированные многочлены и аффинные многочлены

11.1. Как найти их корни

Мы видели, что часто возникает ситуация, когда декодеру необ- ходимо знать корни многочлена / (z) над GF (р"), лежащие в этом! поле. Общим методом решения этой задачи является процедура Ченя, описанная в разд. 5.4. Для больших значений числа она требует значительного числа операций.

Однако существует специальный класс многочленов, корни кото-1 рых могут быть найдены значительно проще. Эти многочлены впервые I исследовались Оре [1933, 1934], который назвал их р-многочленами,\ но мы в силу причин, которые станут ясными из теоремы 11.12,] будем называть их линеаризированными многочленами.

11.11. Определение. Многочлен L (z) над GF (р™) называется линеаризированным, если L {z)= 2 LiZP.

Если Zfe g GF (p) и a", a, . . ., «""- - стандартный базис ноля] GF (р"), то отсюда получим важное утверждение.

11.12. Теорема. Пусть L (z)-линеаризированный многочлен] и Z = 2Zfta где е GP (р), тогда L (z) = ZL (а").

Используя для элементов L (а"), L (а), . . ., L (а"") стандарт-

ные выражения, получаем, что L (at) = 2 Xt, jo}, Х%, j б GF (р).

Следовательно, коэффициенты разложения многочлена L (z) по стандартному базису могут быть получены путем умножения вектор-строки Z = [Zo, Zj, . . ., Zm-i\ на [т X пг)-матрицу над GF (р):

[Zq, Zj, . . . , Zm-i\

0,0 Xo,i Xo,2 ••• Xo,m-l 1,0 1,1 1,2 ••• 1. m-l

Xm-l,0........m-l,n-l

Рассмотрим, например, многочлен

L (z) = z* -j- az + ai«2

над GF (2), где a - корень примитивного неприводимого двоичного многочлена + + I. Используя приведенные в приложении А таблицы логарифмов и антилогарифмов, получаем, что

L (1) = 1 + а + = а + «2 + а*,

L (а) = а* + а" + а" = + а\

L {а") = а» + а" + а» = а + a

L (а) = + + = а + a

L (а*) = а" + + = 1 + а\

так что X - двоичная, (5 X 5)-матрица вида

0 110 1 0 0 110 0 110 0 0 10 10 Ll О О О IJ

Если, например, необходимо найти корни многочлена (10.62) Z* + az -f + а",

то это эквивалентно уравнению

L (z) = а" = 1 + а\ что равносильно системе линейных двоичных уравнений

ГО 1 1 О П

[07 li 2) 3,

0 0 110 0 110 0 0 10 10

Ll о о о 1

= [1 0 0 0 1].

Эта система может быть решена с помощью методов, описанных в разд. 2.5. Ее решения - это Z = [О О О О 1] и Z = [О 1 1 1 1]. Следовательно, а* и а + + + а* = а* - корни многочлена (10.62) в GF (2); другие два корня лежат в GF (2").

Многочлен (10.62) получается путем вычитания из линеаризированного многочлена константы. Многочлены такого вида мы будем называть аффинными.

11.13. Определение. Многочлен А (z) над GF (р™) называется аффинным, если Л (z) = L (z) - и, где L (z) - линеаризированный многочлен, а м g GF (р").

Как было видно из примера, корни произвольного аффинного многочлена над GF (р"), лежащие в поле GF (р"), могут быть найдены




[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]

0.0218