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



Расчеты показывают, что для поля GF(2*) уравнения четвертой и более высоких степеней вьподнее (по числу операций) решать с помощью БПФ, а ниже четвертой степени - с помощью обычного ДПФ.

По существу классический вариант ДПФ (без факторизации матрицы) эквивалентен последовательно упорядоченному перебору корней, т. е. является одной из форм процедуры Ченя [22,40].

В последнем случае, организуя вычисления по схеме Горнера (1.31) - см. § 1.2, можно для каждого испытываемого корня ограничиться умножением на одну и ту же константу.

Аналогично можно исследовать на сложность методы решения уравнений на основе ФМС-преобразования и в других конечных полях.

Еще один универсальный метод решения уравнений (с помощью аффинного кратного) будет изложен далее.

5.6. СИСТЕМЫ УРАВНЕНИЙ НАД ПОЛЯМИ ГАЛУА

Системы линейных уравнений с произвольной матрицей. Некоторые задачи в теории помехоустойчивого кодирования, например по восстановлению стираний, вызьшают необходимость решать системы линейных уравнений над тем или иным алгебраическим полем. Наибольшее распространение получили следующие методы решения системы линейных уравнений [32, 33]: метод Гаусса последовательного исключения неизвестных и приведения матрицы системы уравнений к треугольному или диагональному виду; метод Крамера, основанный на составлении определителей. Мы рассмотрим одну из разновидностей первого метода - приведение матрицы системы к так назьюаемой треугольной идемпотентной форме L, удовлетворяющей свойству i Эта форма характеризуется следующими особенностями: каждый элемент, расположенный ниже главной диагонали (как и в любой 1реугольной форме), равен нулю; на главной диагонали расположены нули или единицы; всякий элемент столбца, имеющего нуль на главной диагонали, равен нулю; всякий элемент строки, имеющий единицу на главной диагонали, равен нулю.

Процедура приведения квадратной матрицы порядка v к форме L основана

на следующем алгоритме [§].

1. Если верхняя строка матрицы является нулевой или ее левый элемент

отличен от нуля, то перейти к п. 3.

2. Если левый элемент первой строки равен нулю, то переставить первый столбец с самым левым столбцом, в котором верхний элемент отличен от нуля и на главной диагонали стоит нуль; если же подходящего столбца нет, то поменять местами первый столбец с самым левым столбцом, в котором отличны от нуля оба элемента (верхний н на главной диагонали).

3. Разделить все члены первого столбца на его самый верхний элемент.



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

5.Циклически сдвинуть строки вверх, а столбцы влево. Если полученная матрица не имеет форму L, то вернуться к п. 1.

Проиллюстрируем данный алгоритм на используемом далее примере матрицы с двоичными элементами:

1 о о

а О О О О

а 1 1 О

1 1 О О

а О О О О

О О О О

п. 5

а О О О О

О О О О

О О О О

1 О О 1

(5.89)

Решениями уравнения XL = О являются линейные комбинации (ненулевых) строк матрицы L - Е, где Е - единичная матрица порядка v.

Система неоднородных линейных уравнений. Пусть система v линейных уравнений с V неизвестными задается неоднородным уравнением ХМ = Q или эквивалентным однородным

м - Р J

= 0,

где j3 - ненулевой вектор (строка).

Приводя матрицу М к треугольной идемпотентной форме L (с соответствующей трансформацией вектора Q в вектор р), составим матрицу - к которой присоединим снизу строку Если хотя бы одно произведение компоненты q иа соответствующий диагональный элемент отлично от нуля, то уравнение ХМ = 0 решений не имеет. Если же все v произведений равны нулю, то х = 0 является одним из решений. Другие решения равны сумме строки /з с линейными комбинациями ненулевых строк матрицы L Е.

Рассмотрим пример решения системы уравнений

(5.90) Неизвестный

где Q = [1101]; М - первая матрица в соотношении (5.89); X -четырехкомпонеитный вектор.

В процессе приведения матрицы М (5.89) в уравнении (5.90) к форме L строка/?= (1101) преобразуется к виду/3 = (0001);

а«

а"

а«

(5.89)

Вычитая из матрицы L (5.89) единичную матрицу Е и располагая столбцы в естественном порядке (а, а. а\а**), получим



а»

а"

а»

Таким образом, одно из решений заданной системы суть =/?" = (1000),

(1010); (0101);

а остальные 7 решений равны: Х2 ~ & " у\ = (0100); Хз = 3" +32 = х0"+Уз = (1001); Xs = 0" -Ух +32 = (ОНО); х = 0 -у +33 = 7 = "+32+33= (1011); х0" +уу +У2-Уз- (0111).

Решение уравнений с помощью аффинного кратиого« Линеаризованным полиномом/, (х) над полем GF( = р ) назьшается полином вида

£(x) =Z,oX + Z,iJc+l2x* + ... + IwX = £ Lx , (5.91)

i = О

коэффициенты которого принадлежат полю GF(p). Аффинным полиномом над полем GF( - р) называется полином! (х) -/3, гдеZ, (х) - линеаризованный полином.

Для того чтобы найти корни полинома L{x) - 0, поступаем следующим образом.

1. Вычисляем значения полинома L (л) (5.91) в следующих точках: х е ( а**, а, а, а, ..., а*" *} , где а - примитивный элемент поля GF(p*), а в фигурных скобках представлен канонический базис этого поля; для GF(2) всегда можно принять а = 2.

2. По полученным значениям L{Oi), Ь{<Х), L{a~) составляем матрицу М (с присоединенной строкой разложения 0 по тому же базису), которую приводим к треугольной идемпотентной форме L .

3. Вычисляем корни заданного полинома как линейные комбинации последней и остальных ненулевых строк матрицы из п. 2.

Пример 5 Л 8. Пусть над полем GF (2 ) задан полином

(5.92)

L{x~0),

тт1{х) =х® + 15х* + 7х+3х; 0= 14= (1101).

Находим: Z, (1) = О = (0000); 1 (2) = О = (0000); I (3) = 14 (1101); I (4) = = 14 = (1101). Таким образом, получаем систему (5.90): ХМ= . Заменяя полученные там двоичные векторы на соответствующие элементы поля GF(2), найдем: Xi =4; х2 = 3; х3 = 10; х4 = 15; х5 = 6; х = 9; х7 = 8; xg = 11.

Оказывается, для произвольного полинома /(х) степени v можно составить аффинный полином Z-(х) - 0, кратный /(х) над полем GF(p*). Тогда корни полинома/(х) будут среди корней полинома Z. (х) - 0.

Метод составления аффинного кратного полинома £ (х) - 0 по заданному полиному fix) следующий [8]:

1. Находим значения x по модулю/(х) для1 = v,v + I,,. ., iv - l)p.

2. Вычисляемх* по модулю/(х) для / =0, 1, 2, . . ., - 1.

3. Образуем линейную комбинацию



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.014