Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

IV. Размерность, порождающая и проверочная матрицы

Полиномиальная арифметика | Пример 1 | Пример 4 |


Читайте также:
  1. Графическое представление матрицы. Вычисление определителей.
  2. Действия над матрицами. Определитель матрицы».
  3. Контрольно-проверочная аппаратура и методика проверки
  4. Методика вычисления обратной матрицы
  5. Определение определителя квадратной матрицы
  6. Порождающая формула

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

Теорема: Если ПМ g(x) кода C имеет степень n-k тогда C является (n,k)-циклическим кодом. Если g(x) = a0 + a1x + a2x2 +... + an-k xn-k, то порождающая матрица кода C k x n матрица вида:

Док-во: Векторы g(x), xg(x), x2g(x),..., xk-1g(x) линейно -независимы. IВ противном случае существует нетривиальный набор коэффициентов {bi} такой, что

b0g(x) + b1xg(x) + b2 x2 g(x) +... + bk-1 xk-1 g(x) = 0,
(b0 + b1x + b2x2 +... + bk-1 xk-1) g(x) = 0.

Но степень этого произведения k - 1 + n - k = n - 1 < n, поэтому оно не может быть тождественно = 0 mod (xn - 1), кроме как при всех bi = 0.

Пусть c(x) из C, тогда c(x) = b(x) g(x) и можно заключить, что b(x) имеет степень <= k - 1 (иначе произведение будет иметь степень > n - 1 и придется приводить к остатку по mod (xn - 1), b'(x), удовлетворяющему этому ограничению на степень). Таким образом, c(x) может быть представлено линейной комбинацией функций вида xi g(x).

Система {xi g(x) }, 0 <= i <= k - 1 является базисом C, а, следовательно, размерность кода k.

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

Рассмотрим многочлен h(x) = (xn - 1)/g(x), где g(x) ПМ кода C. Если deg(g(x)) = n - k, то deg(h(x)) = k и он также нормированный, поэтому h(x) порождает циклический код C' размерности n - k. Пусть c1(x) = a1(x)g(x) из C и c2(x) = a2(x)h(x) из C'. Тогда

c1(x) c2(x) = a1(x)g(x)a2(x)h(x) = a1(x)a2(x)f(x) = 0 (mod f(x)),

где f(x) = xn - 1. Поэтому, используя умножение многочленов по модулю mod f(x), произведение любого кодового многочлена из C и любого многочлена из C' будет давать 0. Означает ли это, что C' -- дуальный к C код? К сожалению нет, поскольку построенный изоморфизм не сохраняет скалярное произведение, т.е. скалярное произведение векторов не соответствует нулевому произведению многочленов. Однако, коды C' и C тесно связаны - они эквивалентны.

Рассмотрим два вектора:

a = (a0 a1... an-1) из C
и
b = (b0 b1... bn-1) из C',

и их произведение (вернее, соответствующих многочленов)

для каких-то ci из F. Свободный член произведения

c0 = a0 b0 + a1bn-1 + a2 bn-2 +... + an-1 b1,

т.к xn = 1 (mod f(x)). Теперь c0 можно записать как скалярное произведение

c0 = a b'

где b' вектор, полученный из b циклическим сдвигом координат b на одну позицию влево и изменением порядка записи координат (т.е. (b0 bn-1 bn-2... b1)). Заметим, что умножение многочлена [sum from {i=0} to {n-1} ci xi] на xn-tприводит к тому, что ct становится свободным членом, а значит ct -- свободный член a(x)(xn-t b(x)). Поэтому,

ct = a b'

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

Примет: Пусть n = 3, и вектора a = (a0 a1 a2) и b = (b0 b1 b2). Перемножая их по mod x3 - 1, получим

a(x)b(x) = (a0 + a1x + a2 x2)(b0 + b1x + b2 x2)
= (a0 b0 + a1b2 + a2 b1) + (a0 b1 + a1 b0 + a2 b2)x + (a0 b2 + a1 b1 + a2 b0)x2.

Коэффициент при x2 будет a (b2 b1 b0). Этот вектор b' получен из b сдвигом на 3 (= 2 + 1) позиции влево (это ставит все координаты на старые места) и изменением порядка координат с последней на первую. b-вектор в коэффициенте при x получается из b сдвигом на 2 (= 1 + 1) позиции влево, что дает (b2 b0 b1) и изменением порядка следования (b1 b0 b2).

Теперь поскольку a(x)b(x) = 0 mod (xn - 1), коэффициенты при всех степенях x должны равняться 0. Вышеприведенное рассуждение приводит к заключению, что ac = 0 (т.е., векторы a и c ортогональны) для c полученного любой циклической перестановкой (сдвигом) вектора, координаты которого имеют противоположный порядок следования, чем у b. Поскольку h(x) порождает код C', {h(x), xh(x),..., xn-k-1h(x) } это базис для C' и G' = [h(x), xh(x),..., xn-k-1h(x)]t -- порождающая матрица для C'. Теперь G' порождает код C' той же размерности n - k, что и C. Более того, взяв в качестве b(x) сам h(x), мы видим, что обратнопереставленный любой вектор из C' ортогонален любому вектору из C. Это означает, что переставив в обратном порядке колонки G', мы получим матрицу H, которая порождает код Cperp, а значит является проверочной для C.

 

Пример: Предположим, что мы хотим построить порождающую матрицу для (7,4)- бинарного циклического кода. Поскольку g(x) = 1 + x + x3 делит f(x) = x7 - 1, то g(x) порождает (7,4) - циклический код C. h(x) = f(x)/g(x) = 1 + x + x2+ x4 порождает (7,3)-циклический код C'. Порождающая матрица для C

Порождающая матрица для C'

Перепишем колонки G' в обратном порядке, получим порождающую матрицу для Cperp (она же проверочная для исходного кода)

Нетрудно проверить, что GHT = 0.

Поскольку C' и Cperp могут быть получены простой перестановкой координат всех векторов - это эквивалентные коды. Повторим ранее данное определение,

Определение: Пусть h(x) = a0 + a1 x +... + ak xk многочлен степени k (ak#0). Определим обратный многочлен hR (x) для h(x) формулой

Заметим, что hR(x) = xk h(1/x), где k = deg h(x). Суммируя все вышесказанное, получим следующее.

Tеорема: Пусть g(x) -- нормированный делитель f(x) = xn - 1 степени n-k, и, следовательно, ПМ для циклического (n,k)-кода C. Пусть h(x) = f(x)/g(x). Тогда hR(x) -- обратный многочлен к h(x), есть ПМ кода Cperp.

 


Дата добавления: 2015-07-16; просмотров: 92 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Пример 4 (прод.)| V. Синдромы и охота на ошибки

mybiblioteka.su - 2015-2024 год. (0.008 сек.)