Рефетека.ру / Математика

Контрольная работа: Построение порождающего полинома циклического кода по его корням (степеням корней)

Оглавление


Предисловие

1. Краткие теоретические сведения

1.1 Полиномиальное представление двоичных чисел

1.2 Циклический код

1.3 Поле

1.4 Поля Галуа

1.4.1 Примитивный элемент поля и циклическая группа

1.4.2 Модульная арифметика и деление полиномов

1.4.3 Построение конечного поля

1.4.4 О корнях полиномов и минимальных полиномах

2. О циклических кодах и корнях порождающего полинома с точки зрения конечных полей

2.1 Нахождение порождающего полинома по последовательности степеней корней

Заключение

Список литературы

Приложения


Предисловие


На сегодняшний день одна из самых крупных таблиц содержащих параметры двоичного циклического кода представлена в [1] и часть таблиц в приложении. Построение кода, при помощи данных указанных в таблице, не имея представлений о математическом описании циклических кодов проблематично. Данная работа будет полезна тем, кому необходимо использовать циклические коды в прикладных целях, а, следовательно, нет необходимости глубоко изучать их структуру. В рамках данной работы не рассматриваются алгоритмы кодирования и декодирования, а только алгоритм построения порождающего полинома циклического кода.


1. Краткие теоретические сведения


1.1 Полиномиальное представление двоичных чисел


Весьма удобным является представление двоичных чисел в виде полиномов степени n -1, где n – количество разрядов числа.

Идея представления числа в виде полинома состоит в следующем – основание системы счисления заменяется некоторой фиктивной переменной, например x. Степень этой переменной будет соответствовать номеру разряда числа, а коэффициент значению самого разряда. Рассмотрим пример: Запишем двоичное число и его разложение в виде степеней двойки (аналогично переводу в десятичную систему счисления): Построение порождающего полинома циклического кода по его корням (степеням корней). Теперь, заменим двойку на фиктивную переменную x, при этом получим выражение:Построение порождающего полинома циклического кода по его корням (степеням корней).

Исключив элементы с нулевым коэффициентом, получим полиномиальное представление числа: Построение порождающего полинома циклического кода по его корням (степеням корней).


1.2 Циклический код


Циклические коды относят к классу линейных кодов. Для обеспечения коррекции ошибок к блоку информационных разрядов добавляется блок контрольных разрядов. Значения контрольных разрядов формируются путем некоторых линейных операций над информационными разрядами, поэтому такие коды называются линейными. Линейный код называется циклическим, если слово Построение порождающего полинома циклического кода по его корням (степеням корней) принадлежит данному коду, и слово Построение порождающего полинома циклического кода по его корням (степеням корней) также принадлежит этому коду. Проще говоря, если циклически сдвинуть кодовую комбинацию, то в результате также получится кодовая комбинация, принадлежащая данному коду. Это самое важное свойство циклических кодов. Циклический код задается при помощи порождающего полинома g(x). На сегодняшний день существуют таблицы с параметрами кода - длина, мощность корректирующая способность и корни порождающего полинома. Порождающий полином, как правило, представлен в виде степеней его корней. Обозначим за n длину кода, если длину n можно представить в виде Построение порождающего полинома циклического кода по его корням (степеням корней), где m – целое положительное число, то такой код называют кодом с тривиальной длиной.


1.3 Поле


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

Операция умножения обозначается как Построение порождающего полинома циклического кода по его корням (степеням корней), сложение, как Построение порождающего полинома циклического кода по его корням (степеням корней).

Результатом умножения и сложения элементов поля является элемент также из этого поля.

Для любого элемента поля не равного нулю, существует обратный элемент по сложению и умножению, так что Построение порождающего полинома циклического кода по его корням (степеням корней) и Построение порождающего полинома циклического кода по его корням (степеням корней)

Поле всегда содержит мультипликативную единицу 1, так что Построение порождающего полинома циклического кода по его корням (степеням корней)и аддитивную единицу 0, так что Построение порождающего полинома циклического кода по его корням (степеням корней).

Для умножения и сложения выполняются правила ассоциативности, коммутативности и дистрибутивности.


1.4 Поля Галуа


Конечное поле или поле Галуа – это поле (далее конечное поле обозначено, как GF(p)), содержащее конечное число элементов. Нужно отметить, что аксиомы 1 – 5, справедливы, как для поля с конечным числом элементов, так и с бесконечным, но главное отличие конечных полей от бесконечных определяет аксиома 2. Из этого вытекает, что на понятие «умножение» и «сложение» накладывается ряд ограничений. Выполнение аксиомы 2 осуществляется выполнением по модулю некоторого числа p, называемым характеристикой поля.

Конечные поля существуют не при любом числе элементов, а только когда количество элементов поля – простое число p или его степень pm, где m – целое положительное число. В первом случае поле называется простым и обозначается, как GF(p), а во втором называется расширением простого поля и обозначается GF(pm) .

Рассмотрим некоторое поле GF(p). Такое поле содержит p элементов, операции сложения и умножения над элементами этого поля производятся по модулю числа p. Рассмотрим расширение этого поля - GF(pm). Элементами Построение порождающего полинома циклического кода по его корням (степеням корней)расширения поля будут являться полиномы степени Построение порождающего полинома циклического кода по его корням (степеням корней) и меньше, с коэффициентами из поля GF(p). Приведем аналогию - простое поле содержит буквы алфавита, а расширение этого поля содержит слова определенной длины, составленные по некоторым правилам из букв, лежащих в основном поле.


1.4.1 Примитивный элемент поля и циклическая группа

Основное свойство конечных полей – это связь между собой ненулевых элементов поля Построение порождающего полинома циклического кода по его корням (степеням корней) и возможность их выражения через степень элемента Построение порождающего полинома циклического кода по его корням (степеням корней), называемого примитивным, это означает, что любой элемент поля можно представить, как степень примитивного элемента, т.е. Построение порождающего полинома циклического кода по его корням (степеням корней) и т.д. Множество Построение порождающего полинома циклического кода по его корням (степеням корней) элементов расширения поля образуют циклическую мультипликативную группу. Это означает, что все элементы расширения находятся в следующем отношении: Построение порождающего полинома циклического кода по его корням (степеням корней). Таким образом, умножая элемент Построение порождающего полинома циклического кода по его корням (степеням корней)на себя можно получить любой элемент расширения поля (мультипликативность), но очевидно, что правило умножения должно быть специфическим, иначе, невозможно обеспечить нужную степень полинома и обеспечить цикличность, т.е. после Построение порождающего полинома циклического кода по его корням (степеням корней)умножений начнется повторение.

Правило умножения в расширении поля аналогично правилу умножения многочленов с последующим приведением по модулю некоторого специального полинома Построение порождающего полинома циклического кода по его корням (степеням корней)степени m. Приведение означает деление результата умножения на полином Построение порождающего полинома циклического кода по его корням (степеням корней)и использованию только остатка от деления, нужно отметить, что при делении сложение производится по правилам для основного поля, т.е. сложение проводится по модулю числа p.

Выше было сказано, что полином Построение порождающего полинома циклического кода по его корням (степеням корней) должен быть специальным, это означает, что любые операции, выполняемые по модулю Построение порождающего полинома циклического кода по его корням (степеням корней)должны оставаться обратимыми, иначе система не образует поле. Таким образом, полином Построение порождающего полинома циклического кода по его корням (степеням корней)должен быть неприводимым в поле GF(p), т.е. его нельзя разложить на множители, используя только многочлены с коэффициентами из поля GF(p). Аналогом неприводимого полинома является простое число. На сегодняшний день не существует систематического способа поиска неприводимых полиномов. Наиболее обширная таблица неприводимых полиномов представлена в книге [1].

Резюме: Расширение поля содержит полиномы степени m-1 и меньше, с коэффициентами из основного поля. Любой элемент расширения поля можно получить, как степень примитивного элемента Построение порождающего полинома циклического кода по его корням (степеням корней). Умножение проводится по модулю неприводимого над полем GF(p) полиномом. Описанная выше теория может показаться запутанной, но ниже будет дан пример, который поможет понять изложенные теоретические сведения.


1.4.2 Модульная арифметика и деление полиномов

Рассмотрим, сложение и умножение по модулю некоторого числа p, это означает проведение операции по обычным правилам, а затем деление результата на число p. Например, умножим 7 на 3 по модулю 10. Обозначим проведение операции по модулю, как «mod» Построение порождающего полинома циклического кода по его корням (степеням корней). Построение порождающего полинома циклического кода по его корням (степеням корней) Теперь получившийся результат, разделим на 10 и возьмем остаток, остаток равен единице, следовательно Построение порождающего полинома циклического кода по его корням (степеням корней). Но так как, для работы с двоичными циклическими кодами нам понадобится конечное поле GF(2), которое содержит два элемента – нуль и единицу, то рассмотрим сложение по модулю два. Сумма по модулю два обозначается знаком Построение порождающего полинома циклического кода по его корням (степеням корней).

1Построение порождающего полинома циклического кода по его корням (степеням корней)1 = 0

1Построение порождающего полинома циклического кода по его корням (степеням корней)0 = 1

0Построение порождающего полинома циклического кода по его корням (степеням корней)0 = 0

0Построение порождающего полинома циклического кода по его корням (степеням корней)1 = 1

Нетрудно убедиться, что если сложить две единицы и разделить на два, то остаток от деления будет равен нулю, а если сложить единицу с нулем и разделить на два, то остаток будет равен единице.

Деление полиномов.

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


Построение порождающего полинома циклического кода по его корням (степеням корней)


Рассмотрим деление пошагово:


Построение порождающего полинома циклического кода по его корням (степеням корней)


Не трудно убедиться, что на первом шаге делимое можно взять два раза, то есть умножить делимое на Построение порождающего полинома циклического кода по его корням (степеням корней): Построение порождающего полинома циклического кода по его корням (степеням корней). Теперь если сложить Построение порождающего полинома циклического кода по его корням (степеням корней) и Построение порождающего полинома циклического кода по его корням (степеням корней) по модулю два, то так как Построение порождающего полинома циклического кода по его корням (степеням корней) присутствует в обоих операндах, то эти элементы сокращаются, так как они одинаковые. Итак, результат первого шага деления:


Построение порождающего полинома циклического кода по его корням (степеням корней)


Далее нужно взять делитель один раз, т.е. умножить его на Построение порождающего полинома циклического кода по его корням (степеням корней)и сложить результат по модулю два с результатом предыдущего шага. Таким образом, получим:


Построение порождающего полинома циклического кода по его корням (степеням корней)


Итак, Построение порождающего полинома циклического кода по его корням (степеням корней)- частное от деления, а Построение порождающего полинома циклического кода по его корням (степеням корней) - остаток.

Умножение полиномов.

Умножим полином Построение порождающего полинома циклического кода по его корням (степеням корней) на полином Построение порождающего полинома циклического кода по его корням (степеням корней).

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

Вычитание полиномов аналогично сложению, вычитание заменяется суммированием.

1.4.3 Построение конечного поля

Определение: Многочленом Построение порождающего полинома циклического кода по его корням (степеням корней) над конечным полемПостроение порождающего полинома циклического кода по его корням (степеням корней) называют многочлен, коэффициенты которого лежат в Построение порождающего полинома циклического кода по его корням (степеням корней).

Построение порождающего полинома циклического кода напрямую связано с расширением конечного поля, рассмотрим построение расширения поля. Так как в рамках данной работы рассматриваются двоичные циклические коды, то не трудно догадаться, что основное поле Галуа будет состоять из двух элементов – нуля и единицы - GF(2). Построим расширение поля GF(24), это поле пригодно для построения циклического кода длины 15, так как 24-1 = 15. Для построения расширения поля нужно выбрать полином по модулю которого оно будет построено, исходя из того, что m = 4 необходим полином четвертой степени. Из таблицы в книге [1] или таблицы из приложения выберем полином Построение порождающего полинома циклического кода по его корням (степеням корней). Примитивный элемент Построение порождающего полинома циклического кода по его корням (степеням корней) поля – x. Напомним, что расширение поля является мультипликативной группой примитивного элемента Построение порождающего полинома циклического кода по его корням (степеням корней), в нашем случае это x, а также умножение будет проводиться по модулю неприводимого полинома Построение порождающего полинома циклического кода по его корням (степеням корней). Начнем со степени элемента x равной 0.

Построение порождающего полинома циклического кода по его корням (степеням корней)

Умножим Построение порождающего полинома циклического кода по его корням (степеням корней) на Построение порождающего полинома циклического кода по его корням (степеням корней)по модулю полинома Построение порождающего полинома циклического кода по его корням (степеням корней): Построение порождающего полинома циклического кода по его корням (степеням корней), разделим х на Построение порождающего полинома циклического кода по его корням (степеням корней), остаток от деления равен х. Не будем рассматривать формирование элементов соответствующих 1-3 степеням, рассмотрим формирование элементов для степеней 4 и 5:

Рассмотрим вычисление элемента Построение порождающего полинома циклического кода по его корням (степеням корней)


Построение порождающего полинома циклического кода по его корням (степеням корней)


Рассмотрим вычисление элемента Построение порождающего полинома циклического кода по его корням (степеням корней)

Построение порождающего полинома циклического кода по его корням (степеням корней)


И так далее, пока не будет получено 24= 16 элементов. Ниже представлено представление поля GF(24), полученного способом, изложенным выше.


Построение порождающего полинома циклического кода по его корням (степеням корней)Построение порождающего полинома циклического кода по его корням (степеням корней)

Таблица 1. Представление поля GF(24).


1.4.4 О корнях полиномов и минимальных полиномах

Минимальным полиномом или функцией минимума элементаПостроение порождающего полинома циклического кода по его корням (степеням корней) поля GF(pm) называется полином mi(x) наименьшей степени с коэффициентами из GF(p), для которого Построение порождающего полинома циклического кода по его корням (степеням корней) является корнем, иначе говоря, mi (Построение порождающего полинома циклического кода по его корням (степеням корней))=0.

Рассмотрим теорему, которая является ключевой для построения порождающего полинома кода по последовательности корней, ее доказательство можно найти в книгах [1] и [2].

Теорема. 1. Предположим, что fi(x) над GF(p) является минимальным полиномом элемента Построение порождающего полинома циклического кода по его корням (степеням корней) из GF(pm). Тогда f(x) является также минимальным полиномом элементаПостроение порождающего полинома циклического кода по его корням (степеням корней).

Определение. Два элемента из GF(pm) называются сопряженными, если они являются корнями одного и того же минимального полинома над GF(p) (это означает, что коэффициенты полинома лежат в GF(p)).

Следствие 1 теоремы 1:

Можно сделать вывод, что у элемента может быть не один сопряженный элемент, таких элементов может быть m или меньше. Используя теорему 1 можно составить последовательность сопряженных элементов, такую последовательность в литературе еще называют циклотомическим классом. Множество элементов, входящие в циклотомический класс (сопряженные элементы) можно найти по следующей формуле:


Построение порождающего полинома циклического кода по его корням (степеням корней) (1)


Где, С – циклотомический класс, s – степень элемента для которого находятся сопряженные элементы, p – показатель основного поля, m – число элементов расширения поля.

Рассмотрим пример нахождения циклотомического класса для элемента Построение порождающего полинома циклического кода по его корням (степеням корней)из GF(24). Здесь и далее будем представлять элемент, как его степень.

Итак, s = 1, p = 2, m = 4.

Построение порождающего полинома циклического кода по его корням (степеням корней)

Таким образом, для элемента Построение порождающего полинома циклического кода по его корням (степеням корней) будут сопряженными элементы Построение порождающего полинома циклического кода по его корням (степеням корней)

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

Следствие 2 из теоремы 1:

Два сопряженных между собой элемента будут иметь один и тот же минимальный полином.

Теорема 2. Минимальный полином элемента Построение порождающего полинома циклического кода по его корням (степеням корней) равен


Построение порождающего полинома циклического кода по его корням (степеням корней),


где Построение порождающего полинома циклического кода по его корням (степеням корней) сопряженные элементы Построение порождающего полинома циклического кода по его корням (степеням корней)

Следствие из теоремы 2: Все элементы GF(pm) являются корнями полиномов.

Построим минимальный полином для элемента Построение порождающего полинома циклического кода по его корням (степеням корней)из GF(24). Сопряженные элементы для Построение порождающего полинома циклического кода по его корням (степеням корней) найдены выше.

Используя теорему 2, запишем минимальный полином в общем виде:


Построение порождающего полинома циклического кода по его корням (степеням корней)


Теперь нужно раскрыть скобки, по обычным правилам, не приводя подобные, помня что, операция вычитания определена по правилам для поля GF(2), и она эквивалента операции сложения.


Построение порождающего полинома циклического кода по его корням (степеням корней)


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

Теперь, нужно заменить элементы Построение порождающего полинома циклического кода по его корням (степеням корней) разложения на элементы из GF(pm), с учетом вышесказанного, раскрыть скобки, привести подобные, не забывая, что операция сложения проводится по модулю p (в данном примере по модулю два, так как в качестве основного поля выбрано GF(2)).

Резюме: Для нахождения минимального полинома для элемента Построение порождающего полинома циклического кода по его корням (степеням корней) из GF(pm) необходимо:

Построить расширение поля по модулю некоторого неприводимого над GF(p) полинома.

Построить циклотомический класс для элемента Построение порождающего полинома циклического кода по его корням (степеням корней), учитывая то, что одинаковые элементы в классе учитываются только один раз и то, что степень элемента класса может превышать максимальную степень элементов расширения поля.

При помощи теоремы 2 записать разложение минимального полинома, используя в качестве корней элементы циклотомического класса.

Раскрыть скобки разложения, не приводя подобные.

Проверить, не превышает ли степень Построение порождающего полинома циклического кода по его корням (степеням корней) максимальную степень элементов GF(pm) (см. выше).

Заменить элементы Построение порождающего полинома циклического кода по его корням (степеням корней) на элементы поля.

Раскрыть скобки, привести подобные, учитывая тот факт, что суммирование ведется по модулю p.

Рассмотрим подробнее следствие 2 из теоремы 1:

Циклотомический класс для элемента Построение порождающего полинома циклического кода по его корням (степеням корней): {1, 2, 4 ,8} для этих четырех элементов будут одинаковые минимальные полиномы.

Рассмотрим более подробно пример нахождения минимальных полиномов для GF(24).

Построение GF(24) рассмотрено выше, будем пользоваться готовым результатом.


Построение порождающего полинома циклического кода по его корням (степеням корней)Построение порождающего полинома циклического кода по его корням (степеням корней)

Таблица 2. Представление GF(24).


Начнем с элемента Построение порождающего полинома циклического кода по его корням (степеням корней). Исходя из формулы 1, запишем множество сопряженных элементов:


Построение порождающего полинома циклического кода по его корням (степеням корней)


Так как все элементы получились одинаковыми, то циклотомический класс будет состоять из одного элемента – {0}.


При помощи теоремы 2 запишем: m0(a0) = (x - a0 ), заменим a0 на элемент поля.

Минимальная функция для элемента a0: m0(a0) = (x + 1)

Элемент Построение порождающего полинома циклического кода по его корням (степеням корней).

Используя формулу 1, получим циклотомический класс. {1, 2, 4, 8}.

Используя теорему 2, запишем разложение минимального полинома.


Построение порождающего полинома циклического кода по его корням (степеням корней)


Теперь заменим a на элементы поля, после раскрытия скобок и приведения подобных получим минимальный полином для элементов со степенями 1, 2, 4, 8.

Элемент Построение порождающего полинома циклического кода по его корням (степеням корней).

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

Элемент Построение порождающего полинома циклического кода по его корням (степеням корней).

Используя формулу 1, запишем циклотомический класс: C = {3,6,12,24}, как видно элемент со степенью 24 отсутствует в представлении поля GF(24). Если разделить Построение порождающего полинома циклического кода по его корням (степеням корней)на полином, по модулю которого производилось построение GF(24), то получим остаток Построение порождающего полинома циклического кода по его корням (степеням корней). Построение порождающего полинома циклического кода по его корням (степеням корней)

Используя теорему 2, запишем разложение минимального полинома:


m3(x) = (x – a3 ) (x – a6 ) (x – a9 ) (x – a12 ).


Теперь, раскрыв скобки и приведя подобные, получим полином m3(x) = x4 + x3+ x2 + x1+1.

Следовательно, это полином для элементов со степенями 3,6,12,9.

Элемент Построение порождающего полинома циклического кода по его корням (степеням корней).

Минимальный полином этого элемента равен полиному элемента Построение порождающего полинома циклического кода по его корням (степеням корней)

ЭлементПостроение порождающего полинома циклического кода по его корням (степеням корней).

Используя формулу 1, запишем циклотомический класс: C = {5,10,5,10}. Так как элементы класса совпали, то в классе останется два элемента C = {5,10}.

Используя теорему 2, запишем разложение минимального полинома:


m5(x) = (x – a5 ) (x – a10 ) = x2 + x+1


ЭлементПостроение порождающего полинома циклического кода по его корням (степеням корней).

Минимальный полином этого элемента равен полиному элемента Построение порождающего полинома циклического кода по его корням (степеням корней)

ЭлементПостроение порождающего полинома циклического кода по его корням (степеням корней).

Используя формулу 1, запишем циклотомический класс: C = {7,14,28,56}. Так как Построение порождающего полинома циклического кода по его корням (степеням корней), то C = {7,14,11,13}

Используя теорему 2, запишем разложение минимального полинома:


m7(x) = (x – a7 ) (x – a14 ) (x – a11 ) (x – a13 ) = x4 + x3+1


Нетрудно убедиться, что для остальных элементов минимальные полиномы уже найдены выше.


2. О циклических кодах и корнях порождающего полинома с точки зрения конечных полей


Следует отметить, что в данном разделе будет рассмотрено описание циклических кодов с точки зрения конечных полей только в рамках нахождения порождающего полинома. Наиболее понятное полное рассмотрение циклических кодов с точки зрения конечных полей можно найти в книге [2].

Теорема 3. Циклический код длины n с порождающим полиномом g(x) существует тогда и только тогда, когда g(x) делит Построение порождающего полинома циклического кода по его корням (степеням корней).

Следствие из теоремы 3. Порождающий полином циклического кода длины n можно найти, разложив полином Построение порождающего полинома циклического кода по его корням (степеням корней) на простые множители:


Построение порождающего полинома циклического кода по его корням (степеням корней)


где s – число простых множителей. Произведение произвольного подмножества этих множителей дает порождающей многочлен g(x). Если g(x) – порождающий полином, то он делит Построение порождающего полинома циклического кода по его корням (степеням корней), и, следовательно, Построение порождающего полинома циклического кода по его корням (степеням корней). Полином g(x) можно найти, найдя все его простые делители.

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

Резюме:

Порождающий полином не что иное, как произведение его простых делителей Построение порождающего полинома циклического кода по его корням (степеням корней).

Пусть Построение порождающего полинома циклического кода по его корням (степеням корней) - корень полиномаПостроение порождающего полинома циклического кода по его корням (степеням корней). Тогда Построение порождающего полинома циклического кода по его корням (степеням корней) не что иное, как функция минимума для Построение порождающего полинома циклического кода по его корням (степеням корней).

Имея корни полиномов – делителей g(x) можно найти их функции минимума, и следовательно найти g(x) .

Построение порождающего полинома циклического кода по его корням (степеням корней) содержит корни g(x).

Таким образом, нахождение порождающего полинома по степеням его корней сводится к нахождению минимальных полиномов для элементов поля с соответствующей степенью.


Построение порождающего полинома циклического кода по его корням (степеням корней),


где Построение порождающего полинома циклического кода по его корням (степеням корней) минимальный полином.


2.1 Нахождение порождающего полинома по последовательности степеней корней


В таблице из приложения Г книги [1] содержатся параметры циклических кодов и последовательности степеней корней. Мы рассматриваем только коды тривиальной длины. Часть этой таблицы указана в приложении А данной работы. В таблице из приложения В книги [1] указаны неприводимые полиномы над GF(2). Укороченное представление такой таблицы также есть в приложении Б данной работы.

Алгоритм нахождения порождающего полинома:

Исходя из длины выбранного кода, построить расширение Построение порождающего полинома циклического кода по его корням (степеням корней) поля Построение порождающего полинома циклического кода по его корням (степеням корней) по модулю неприводимого полинома над Построение порождающего полинома циклического кода по его корням (степеням корней) степень которого равна m. Где m находится из следующего соотношения: Построение порождающего полинома циклического кода по его корням (степеням корней).

Для каждого корня построить циклотомический класс.

Для каждого корня найти минимальный полином.

Перемножить полученные минимальные полиномы по правилам для Построение порождающего полинома циклического кода по его корням (степеням корней).

Рассмотрим каждый шаг более подробно на примере кода (15,5,7) . Для такого кода в таблице циклических кодов указаны следующие степени корней {1,3,5}.

Шаг 1. Построение Построение порождающего полинома циклического кода по его корням (степеням корней).

Длина n заданного кода равна 15. Так как Построение порождающего полинома циклического кода по его корням (степеням корней), m = 4. Будем строить Построение порождающего полинома циклического кода по его корням (степеням корней). Так как m = 4, то из таблицы неприводимых полиномов выберем полином четвертой степени Построение порождающего полинома циклического кода по его корням (степеням корней), по модулю которого будет построено Построение порождающего полинома циклического кода по его корням (степеням корней). Как построить расширение поля, было рассмотрено в 1.4.3.


Построение порождающего полинома циклического кода по его корням (степеням корней)Построение порождающего полинома циклического кода по его корням (степеням корней)

Таблица 3. Построение порождающего полинома циклического кода по его корням (степеням корней).


Шаг 2. Построение циклотомических классов.

Последовательность степеней корней для данного кода - {1,3,5}. Для каждого элемента последовательности построим циклотомический класс, при помощи формулы Построение порождающего полинома циклического кода по его корням (степеням корней). Подробно построение циклотомических классов описано в 1.4.4

Для корня со степенью 1 это {1,2,4,8}.

Для корня со степенью 3 это {3,6,9,12}.

Для корня со степенью 5 это {5,10}.

Шаг 3. Нахождение минимальных полиномов.

Исходя из теоремы 2, для каждого корня найдем его минимальный полином, подробно нахождение минимальных полиномов описано выше.

Для корня со степенью 1:


Построение порождающего полинома циклического кода по его корням (степеням корней)


Для корня со степенью 3: m3(x) = (x – a3 ) (x – a6 ) (x – a9 ) (x – a12 ) = x4 + x3+ x2 + x1+1.

Для корня со степенью 5: m5(x) = (x – a5 ) (x – a10 ) = x2 + x+1

Шаг 4. Нахождение порождающего полинома.

Из 1.5 Построение порождающего полинома циклического кода по его корням (степеням корней), где Построение порождающего полинома циклического кода по его корням (степеням корней) это минимальные полиномы для заданных корней, то было получено, что


Построение порождающего полинома циклического кода по его корням (степеням корней)


Заключение


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


Список литературы


У. Питерсон, Э. Уэлдон. «Коды, исправляющие ошибки»: Москва: Мир, 1976.

Р. Блейхут. «Теория и практика кодов исправляющих ошибки»: Москва: Мир, 1986. - 576с.

Жуков А.Б. , Каменский С.В. Передача сообщений. – НГТУ, 2003.


Приложения


Приложение А. Таблица неприводимых полиномов над GF(2).


Построение порождающего полинома циклического кода по его корням (степеням корней)


Приложение Б. Таблица двоичных некоторых циклических кодов тривиальной длины


Построение порождающего полинома циклического кода по его корням (степеням корней)


Построение порождающего полинома циклического кода по его корням (степеням корней)Построение порождающего полинома циклического кода по его корням (степеням корней)

Рефетека ру refoteka@gmail.com