double arrow

Циклические коды: общие сведения, определение


Важнейшим недостатком систематических линейных блоковых кодов (СЛБК) является высокая трудоемкость их построения при длине кодо­вой последовательности n≥31двоичный символ и коррекции ошибок кратностью toш≥3двоичных символа. Поиск более про­стых принципов построения СЛБК привел к открытию нового широкого класса групповых линейных блоковых кодов, полу­чивших название циклических кодов (ЦК).

Циклические коды являются подклассом в классе линейных блоковых кодов. Свое название коды получили из-за основной операции построения кодовых последовательностей (Fi (x)) – циклического сдвига (перестановки) двоичных символов разрешенных кодовых последовательностей.

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

Кодовую последовательность ЦК в общем виде можно записать так:

где х - формальная переменная,

п-1, п-2 ,..., 1, 0 — показатели степеней, в которые возво­дятся основания кодов, и одновременно порядковые номера, ко­торые занимают двоичные символы (разряды) кодовой последовательности, начиная со старшего и заканчивая нулевым;

ci - коэффициенты формальной переменной, которые могут принимать значения или быть равными логической 1 (ненулевой член Fi(x)) или логического 0 (нулевой член Fi(x)). Например,

Представление кодовых последовательностей в виде полиномов позволяет установить однозначное соответствие между ними и свести действия над кодовыми последовательностями к действиям над полиномами: умножение, сложение, деление и вычитание этих полиномов производится по обычным правилам алгебры, но коэффициенты С одинаковыми степенями х суммируются по модулю два.

Уточним сущность понятия циклического сдвига или циклической перестановки двоичных символов кодовой после­довательности.

Пустьто циклический сдвиг на один разряд даетЧтобы степень новой кодовой последовательно­сти Fi(x) не превышала (п-1), член сп-1хп заменяется единицей, поэтому

Например, пустьпри n=7 двоичных символов. (Заметим, что запись кодовой последова­тельности в виде многочлена, а затем перевод ее в двоичную форму записи, не всегда определяет длину кодовой последова­тельности n. Например, при п=5, многочлен F(x) = х2+1=101, т.е. n=3, что неверно. В таких случаях надо дописать старшие нулевые символы, т.е. F(x)=x2+1=00101, что дает п=5 двоич­ным символам).

Сдвигаем F(x) на один разряд (символ) влево, и получаем F(x) =1011100=х6+ х4+ х32. Очевидно, что xl(x5+x3+x2+x)=x5+x4+x3+x2. Отсюда вытекает второе определение ЦК, а именно, циклический код – это код, для которого циклический сдвиг двоичных символов разрешенной кодовой последовательности влево или вправо на один, два,...., (k-1) символов вновь приводит к формированию разрешенной кодовой последовательности.

Таким образом, циклическую перестановку двоичных символов разрешенной кодовой последовательности можно рас­сматривать как умножение F(x) на х при первом сдвиге, на х2 при втором сдвиге и т. д., что можно в общем виде записать или представить так:

Таким образом, можно сделать следующие выводы:

1. ЦК - это такой линейный код, который обладает свойством цикличности кодовых последовательностей, т.е. когда каждая разрешенная кодовая последовательность содержит ее циклическую перестановку;

2. ЦК относятся к групповым линейным кодам, если они образуются путем умножения каждой последовательности равнодоступного (простого) кода, выраженных в виде многочлена Q(x) с максимальной степенью (k-1), на некоторой полином Р(х) степени l=n-k.

Информационный полином: Q(x)=ak-1xk-1+ ak-2xk-2+…+ a0x0

Порождающий (образующий) полином: P(x)=bl xl+ al-1 xl-1+…+ b0x0

Разрешенные кодовые последовательности кода Краз= 2к образуют циклическую подгруппу Кобщ= 2п, отличающуюся тем, что все элементы подгруппы имеютобщее свойство делимости на полином Р(х), получивший название образующего или порождающего полинома.

В качестве образующего полинома используются полиномы, обладающие следующими свойствами:

1. образующий полином Р(х) должен быть делителем двучлена хп+1;

2. образующий полином не должен раскладываться на сомножители более низких степеней, и должен делиться без ос­татка на самого себя и на 1, т.е. на х°;

3. максимальная степень образующего полинома должна быть равной l=n-k, т.е. соответствовать количеству прове­рочных символов используемого кода.


Сейчас читают про: