Наиболее элементарный способ представления циклических кодов с помощью матриц был проиллюстрирован в предыдущем разделе. Если многочлен g(X) — arXr + Gy_iXr_1 -f- ... +00
порождает код, то все векторы {Xn_r~Ig'(X)}, {Xn-T~2g(X)}, ...
{g(X)}
являются кодовыми векторами. Таким образом, кодовыми векторами являются все строки следующей матрицы:
Очевидно, что строки этой матрицы линейно независимы, а ее ранг, совпадающий с размерностью кода, равен п — г. Следовательно, по теореме 2.9 пространство строк матрицы G представляет собой кодовое пространство.
Как и прежде, условимся о следующем. В любом циклическом коде первые k символов, т. е. коэффициенты при X"-1, Х"-2, ... ..., Xn~h
, будут всегда выбираться в качестве информационных символов, а последние п — k символов, т. е. коэффициенты при, — в качестве проверочных символов.
Порождающая матрица любого циклического кода может быть следующим образом приведена к модифицированной приведенно-ступенчатой форме. Пусть г^(Х) — остаток от деления X* на многочлен g{X):
Х1 = д(Х)д1(Х) + Г1(Х).
являются кодовыми векторами. Если эти многочлены при i = n—1, п — 2, ..., п — k
выбрать в качестве строк порождающей матрицы, то
G = [U, -R],
где 1ь — единичная матрица размерности а —R — матрица
размерности &Х(П — k), /-й строкой которой является вектор из коэффициентов многочлена —rn-j(X). Тогда по теореме 3.3 код является также нулевым пространством матрицы
Н = [Rr, I„_fe],
причем строка матрицы Нт является вектором коэффициентов многочлена Yn-j(X) даже при п — k.
Пример. Для двоичного циклического кода, порожденного многочленом f{X) = X3 + X2 + 1,
X6 = g(X)(X3 + X2 + X) + X2 + X,
X5 = g(X)(X2 + X-r-D +Х + 1,
X* = g(X)(X+l) +X* + X+l,
X3 = g(X)(l) X* = g(X)(0) Xl = g(X)(0) X° = g(X)(0)
110
0 1 1
111
1 0 1
100 0 1 0 00 1
10 0 0 110 0 1 000 1 1 0010111 0001101
Приведенная здесь матрица Gi построчно эквивалентна матрице (8.1). Она задает даже не эквивалентный, а точно такой же код.
Теперь рассмотрим двойственный код, т. е. код, порождаемый Э соответствии с теоремой 6.12 многочленом (X7—l)/g(X) =
= (X — 1) (X3 + х + 1) = X* + X3 + X2 + 1
. Для этого порождающего многочлена
г6(Х) = Х3 + Х2 + Х,
г5(Х)= Х2 + Х+1
г4(Х) = Х3 + Х2 + 1
г3(Х) = Х3
r2(X) = X2
|