// Материалы Международной научно- технической конференции «Вторые ержановские чтения». – Актобе. – 2007. – С.473-477
УДК 681.3.07
А.А. Садыков, Н.Н. Ташатов
КОДИРОВАНИЕ В СИСТЕМАТИЧЕСКОЙ ФОРМЕ ЛИНЕЙНЫХ ЦИКЛИЧЕСКИХ КОДОВ
Евразийский национальный университет им. Л.Н. Гумилева, г. Астана Кодирование в систематической форме.
Используем некоторые алгебраические свойства циклического кода для развития процедуры систематического кодирования, которая была рассмотрена в [4]. В этой статье было введено понятие систематическая форма и рассмотрено уменьшение сложности, которое делает эту форму кодирования более привлекательной.
Запишем вектор сообщения в форме многочлена степени k – 1 следующим образом:
1 1 2
2 1
)
0( X m m X m X m
kX
km
. (1)Символы сообщения в систематической форме используются как часть кодового слова.
Сдвинем символы сообщения в k крайних правых разряда кодового слова, а затем прибавим биты четности, разместив их в крайние левые п – k разряды. Такой сдвиг не вызывает переполнения п–разрядного регистра сдвига. Таким образом, осуществляем алгебраическую манипуляцию многочлена сообщения, и он оказывается сдвинутым вправо на п - k позиций. Умножив m(X) на
X
n k, получаем сдвинутый вправо многочлен сообщения:1 1 1
1
)
0(
n k n k k nk
n
X m X m X m X
X m
. (2)Регистр сдвига
0 n-1 0 … 0 0 m0 m1 m2 … mk 1
Вектор сообщения
Рисунок 1 – Сдвиг многочлена в регистре сдвига с обратными связями длины п на p = п – k позиций
Разделив уравнение (2) на g(X), получим:
) ( ) ( ) ( )
( X X X X
X
n km q g p
. (3) Остаток р(Х) записывается следующим образом:1 1
2 2 1
)
0( X p p X p X p
n kX
n kp
, (4)или
) ( )
( X X
n km X
p
по модулюg ( X )
. (5) Прибавим р(Х) к обеим частям уравнения (3) и используя сложение по модулю 2, получим:) ( ) ( ) ( ) ( )
( X X
n km X q X g X U X
p
. (6)Из (6) вытекает алгоритм кодирования систематического циклического (n, k) – кода:
1. Вектор сообщения в форме многочлена m(X), степени k – 1, умножается на
X
n k; 2. Находится остаток р(Х) от деленияX
n km ( X )
на g(X);3. Многочлен р(Х) заносится в п – k левых разрядов регистра сдвигов (см. рис. 1) Левая часть уравнения (6) является действительным многочленом кодового слова, так как это многочлен степени не превышающая п - 1, который при делении на g(X) дает нулевой остаток. Это кодовое слово будет выглядеть следующим образом:
1 1
2 2 1
)
0( )
( X X
n km X p p X p X p
n kX
n kp
1 1 1
1
0 n
k k
n k
n
m X m X
X
m
. (7)Многочлен кодового слова соответствует вектору кода
сообщения бит
1 2
1 0 четности
бит
1 2
1
0
, , , , , , ,
k
k k
n
k
n
m m m m
p p p p
U
. (8)Циклический код в систематической форме.
Пусть дан вектор сообщения m = 1 0 0 1 1. Из набора кодовых слов (7, 4) с помощью порождающего многочлена g(X) = 1 + X + X3 надо получить систематическое кодовое слово.
3 ,
4 ,
7 ,
1 )
( X X
2X
3n k n k
m
. (9)6 5 3 3
2
3
( 1 )
)
( X X X X X X X
X
n km
. (10)Разделим
X
n km ( X )
на g(X), получим:
) остаток ( )
генератор ( 3 )
( частное
3 2 6
5
3
1 1 1
X X X
X X X
X X X
X X
p g
q
. (11)
Используя уравнение (6), получаем следующее:
6 5 3
3
( ) 1
) ( )
( X p X X m X X X X
U
. (12)
сообщения биты
четности биты
1 1 0 1 0
0 1
U
. (13)Логическая схема для реализации деления многочленов.
Важнейшее преимущество циклических кодов по сравнению с другими методами кодирования заключается в простоте их технической реализации. Использование в схемах кодеров и декодеров регистров сдвига с обратными связями, позволяет просто и достаточно эффективно защищать от ошибок информационные массивы большой длины. Процедура деления многочленов является основной в кодерах и декодерах циклических кодов. Пусть даны два многочлена V(X) и g(X), где
m m
X v X
v X v v
X )
0 1 2 2 (
V
. (14)p p
X g X
g X g g
X )
0 1 2 2 (
g
. (15)причем т > р. Схема деления, приведенная на рисунке 2, выполняет деление многочлена V(X) на g(X), определяя частное и остаток от деления
) (
) ) (
) ( (
) (
X X X
X X
g q p
g
V
. (16)Рисунок 2 – Логическая схема для реализации деления многочленов
Разряды регистра в исходном состоянии содержат нули. Коэффициенты V(X) поступают и продвигаются по регистру сдвига по одному за такт, начиная с коэффициентов более высокого порядка. Частное после р-го сдвига на выходе равно
g
p1v
m. Получаем слагаемое наивысшего порядка в частном. Затем из делимого для каждого коэффициента частного qi вычитаем многочленq
ig ( X )
. Это вычитание обеспечивает обратная связь, показанная на рисунке 2. Разность крайних слева р слагаемых остается в де- лимом, а слагаемое обратной связиg
p1v
m формируется при каждом сдвиге схемы и отображается в виде содержимого регистра. При каждом сдвиге регистра разность смещается на один разряд. Слагаемое наивысшего порядка, которое по построению схемы равно нулю, удаляется, в то время как следующий значащий коэффициент в V(X) перемещается на его место. После всех m + 1 сдвигов регистра, на выход последовательновыдается частное, а остаток остается в регистре.
Рассмотрим схему деления многочленов, используя рисунок 2. Пусть
6 5
)
3( X X X X
V
, т.е. V = 0001011, иg ( X ) 1 X X
3. Разделим V(X) на g(X).Схема деления должна выполнить следующее действие
3 3
6 5 3
1
) ) (
1 ( X X
X X X
X
X X
X p
q
. (17) Необходимый регистр сдвига с обратной связью показан на рисунке 3.Рисунок 3 – Схема деления для примера
Пусть первоначально регистр содержит нули. Схема выполнит следующие шаги.
Входная очередь
Номер сдвига Содержимое регистра
Выход и
обратная связь
0001011 0 000 -
000101 1 100 0
00010 2 110 0
0001 3 011 0
000 4 011 1
00 5 111 1
0 6 101 1
- 7 100 1
После четвертого сдвига коэффициенты частного
q
i , которые последовательно поступали с выхода, равны 1111. Тогда многочлен частного имеет следующий вид3
1
2)
( X X X X
q
. Коэффициенты остаткаp
i имеют вид 100, т.е. многочлен остатка имеет вид p(X) = 1. Схема выполнила следующее вычисления3 3
2 3
6 5 3
1 1 1
1 X X X X X
X X
X X
X
. (18)Прямое деление многочленов дает тот же результат.
СПИСОК ЛИТЕРАТУРЫ
1. Скляр Б. Цифровая связь. Теоретические основы и практическое применение. Изд. 2- е, испр.: Пер. с англ. – Издательский дом «Вильямс», 2004. – 1104 с. ил.
2. Вернер М. Основы кодирования. Москва: Техносфера, 2004. – 288 с.
3. Березюк Н.Т., Андрущенко А.Г., Мощицкий С.С. Кодирование информации (двоичные коды). Харьков, издательское объединение «Вища школа», 1978, 252 с.
4. Ташатов Н.Н. Систематические линейные блочные коды с контролем четности. //
Вестник ПГУ им. С.М. Торайгырова. – 2007. – № (в печати).