Оглавление
Предисловие
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. Степень этой переменной будет соответствовать номеру разряда числа, а коэффициент значению самого разряда. Рассмотрим пример: Запишем двоичное число и его разложение в виде степеней двойки (аналогично переводу в десятичную систему счисления):
Исключив элементы с нулевым коэффициентом, получим полиномиальное представление числа:
Циклические коды относят к классу линейных кодов. Для обеспечения коррекции ошибок к блоку информационных разрядов добавляется блок контрольных разрядов. Значения контрольных разрядов формируются путем некоторых линейных операций над информационными разрядами, поэтому такие коды называются линейными. Линейный код называется циклическим, если слово
Поле – это множество элементов замкнутое относительно двух бинарных операций – умножения и сложения. Под замкнутостью нужно понимать, что результат выполнения операций не выходит за пределы поля. Для поля выполняются следующие аксиомы:
1. Операция умножения обозначается как
2. Результатом умножения и сложения элементов поля является элемент также из этого поля.
3. Для любого элемента поля не равного нулю, существует обратный элемент по сложению и умножению, так что
4. Поле всегда содержит мультипликативную единицу 1, так что
5. Для умножения и сложения выполняются правила ассоциативности, коммутативности и дистрибутивности.
Конечное поле или поле Галуа – это поле (далее конечное поле обозначено, как GF(p)), содержащее конечное число элементов. Нужно отметить, что аксиомы 1 – 5, справедливы, как для поля с конечным числом элементов, так и с бесконечным, но главное отличие конечных полей от бесконечных определяет аксиома 2. Из этого вытекает, что на понятие «умножение» и «сложение» накладывается ряд ограничений. Выполнение аксиомы 2 осуществляется выполнением по модулю некоторого числа p, называемым характеристикой поля.
Конечные поля существуют не при любом числе элементов, а только когда количество элементов поля – простое число pили его степень pm, где m – целое положительное число. В первом случае поле называется простым и обозначается, как GF(p), а во втором называется расширением простого поля и обозначается GF(pm) .
Рассмотрим некоторое поле GF(p). Такое поле содержит p элементов, операции сложения и умножения над элементами этого поля производятся по модулю числа p. Рассмотрим расширение этого поля - GF(pm). Элементами
1.4.1 Примитивный элемент поля и циклическая группа
Основное свойство конечных полей – это связь между собой ненулевых элементов поля
Правило умножения в расширении поля аналогично правилу умножения многочленов с последующим приведением по модулю некоторого специального полинома
Выше было сказано, что полином
Резюме: Расширение поля содержит полиномы степени m-1 и меньше, с коэффициентами из основного поля. Любой элемент расширения поля можно получить, как степень примитивного элемента
1.4.2 Модульная арифметика и деление полиномов
Рассмотрим, сложение и умножение по модулю некоторого числа p, это означает проведение операции по обычным правилам, а затем деление результата на число p. Например, умножим 7 на 3 по модулю 10. Обозначим проведение операции по модулю, как «mod»