Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Циклические коды. Кодовые полиномы. Полиномиальная арифметика

Линейный блоковый код U длины называется циклическим, если наряду с любым своим кодовым словом u=(u0, u1, … , un–2, un–1) (для циклических кодов элементы удобнее нумеровать, начиная с нуля, а не единицы) он содержит и его циклический сдвиг u1=(un–1, u0, u1, … , un–3, un–2). Другими словами, циклический код содержит все циклические сдвиги всех своих кодовых слов.

Продуктивным инструментом изучения и построения циклических кодов служит полиномиальное представление (повторяющее z-преобразование в теории дискретных систем). Кодовый полином, отвечающий кодовому вектору u=(u0, u1, … , un–2, un–1), определяется равенством

.

Коэффициенты u0, u1, …, un–1 кодового полинома – попросту элементы кодового слова (для q-ичного кода – элементы поля GF(q)), тогда как z – формальная переменная, служащая не для обобщенного представления произвольного элемента поля GF(q), а лишь для указания своей степенью позиции того или иного кодового символа как коэффициента полинома. Обозначим по соглашению z0 как 1. Например, полином u(z)= z7+z5+z2+1 означает, что в соответствующем кодовом векторе uединицы стоят на позициях 0, 2, 5, 7, в то время как, все остальные элементы равны нулю: u=(10100101).

Рассмотрим основные правила арифметики формальных полиномов с коэффициентами из GF(q) (полиномов над GF(q)).

Сложение двух полиномов a(z), b(z) и умножение полинома a(z) на скаляр a (элемент основного поля GF(q)) вводятся без затруднений:

,

устанавливая взаимно-однозначное соответствие векторного пространства и множества полиномов. Последние могут сами трактоваться как векторы пространства с описанными операциями сложения и умножения на скаляр.

Возьмем, к примеру, двоичные (т.е. над GF(2)) полиномы a(z)=z4+z2+z, b(z)=z6+z3+z2+1. Тогда их сумма a(z)+b(z)=z6+z4+z3+z+1.

Определим степень deg(f(z)) полинома f(z) как максимальный показатель в нем переменной z, имеющей ненулевой коэффициент. Например, для только что упомянутых полиномов deg(a(z))=4, deg(b(z))=6. Очевидно, deg(a(z)+b(z))£max{deg(a(z)), deg(b(z))}, deg(aa(z))=deg(a(z)), a¹0.

Новой операцией, не участвовавшей в определении векторного пространства, но критически важной для множества полиномов, является умножение последних. Распространяя на формальные полиномы правило дистрибутивности, а также коммутативность типа zm·a=azm, произведение полиномов можно определить равенством, полностью заимствованным из «школьной» алгебры полиномов с действительными коэффициентами: a(z)=amzm+am-1zm–1 +…+a0, b(z)=blzl+bl-1zl–1+…+b0

При вычислении коэффициента ci (являющегося, кстати, сверткой последовательностей коэффициентов сомножителей) at и bi-t полагаются равными нулю, если их индексы выходят из диапазонов tÎ{0,1, …, m}, itÎ{0,1,…, l}. Заметим также, что deg(a(z)b(z))= deg(a(z))+deg(b(z)).

Для прежнего примера a(z)=z4+z2+z, b(z)=z6+z3+z2+1 произведение a(z)b(z)=z10+z8+z6+z5+z4+z3+z2+z.

В абстрактной алгебре структура, в которой элементы можно складывать, вычитать и умножать, называется кольцом(если, вдобавок, любой ненулевой элемент обратим по умножению, т.е. деление также присутствует, кольцо становится полем). Понятно, что множество полиномов над GF(q) является кольцом. Другим, более простым примером кольца служит множество целых чисел. В таком кольце с операцией умножения связан известный алгоритм деления с остатком. Возьмем некоторое положительное целое d. Тогда любое целое a можно записать как

где неотрицательное целое r , меньшее d , называется остатком (от деления a на d), qчастным, aделимым, а dделителем. Поскольку в кольце полиномов присутствует операция умножения, в нем можно по аналогии с кольцом целых чисел ввести деление полиномов с остатком. Формальные полиномы, разумеется нельзя упорядочить по признаку «больше–меньше», однако для введения понятия остатка можно опираться на сравнение степеней полиномов. Возьмем полином d(z) и представим произвольный полином a(z) соотношением

В этом равенстве, возможном для любых a(z), d(z), мы можем вновь именовать полиномы a(z), d(z), q(z) и r(z) делимым, делителем, частным и остатком соответственно.

Для вычисления частного и остатка при полиномиальном делении можно прибегнуть к алгоритму «длинного деления в столбик», переносящему на полиномы школьное правило деления целых чисел.

Пример 5.1.1Разделим с остатком полином a(z)=z6+z3+1 на полином d(z)=z4+z2+1 над GF(2). Алгоритм деления «в столбик» дает:

В теории циклических кодов важнейшая роль принадлежит остатку.

Часто используемая символика

означает, что полиномы a(z) и r(z) имеют один и тот же остаток от деления на d(z), или, поскольку deg(r(z)) меньше, чем deg(d(z)), то r(z) является остатком a(z). Если r(z)=0, т.е. a(z)=d(z)q(z)=0 mod(d(z)), то говорят, что a(z) делится на d(z) , или d(z) делит a(z) , или d(z) является делителем a(z), или, наконец, a(z) кратно d(z) . Уместно также говорить, что a(z) факторизуется на множители меньшей степени.

Полином, который не факторизуется на множители меньшей степени, называется неприводимым, в противоположность приводимому.

Так, например, полином z2+1 приводим в поле CF(2), тогда как z2+z+1 – неприводим. Неприводимые полиномы, не делясь ни на какие полиномы меньшей ненулевой степени, играют в полиномиальном кольце ту же роль, что и простые числа в кольце целых чисел.

Последнее изменение этой страницы: 2016-06-09

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...