Читайте также:
|
|
Циклические коды являются частным случаем групповых кодов и однозначно задаются с помощью порождающего (образующего) полинома
g(x)=gkxk+gk-1xk-1+…+g1x+g0.
Особенности порождающего полинома:
- порождающий полином g(x) имеет наименьшую степень среди многочленов данного идеала (хn+1);
- свободный член g0 всегда не равен нулю;
- любой многочлен циклической группы делится на g(x) без остатка;
- g(x) является делителем для двучлена (хn+1).
Так как любое кодовое слово b(х) должно делиться на g(x), то
b(х)=n(х)g(х). (4.1)
Соотношение (4.1) описывает процесс кодирования слова. n=(nm-1,nm-2,…,n0) - вектор первичного (безызбыточного) кода длиной m разрядов, записанный в виде полинома
.
В результате применения соотношения (4.1) можно построить неразделимый циклический код, для которого образующая матрица имеет следующий вид:
.
Желательно циклический код представлять в виде разделимого кода, т.е. в кодовой комбинации b(х)=bn-1xn-1+bn-2xn-2+…+b1x+b0, коэффициенты кодового полинома при xn-1, xn-2,…,xk - информационные символы, а при xk-1,xk-2, …,x,1 - контрольные символы.
Для получения разделимого циклического кода достаточно вычислить остатки от деления произведения xkni(х), (i-0,1,…m-1) на порождающий полином g(x).
Если выбрать в качестве базисных кодовых полиномов xixk+Ri(х), то получим для разделимого кода порождающую матрицу в канонической форме Gm,n=|ImRm,k|. Причем,
. (4.2)
Пример. Полином g(х)=х3+х2+1 порождает циклический код (7,4). Информационные элементы кодовых комбинаций, используемые в качестве строк образующей матрицы, имеют следующую запись: ni(х)=х0, ni(х)=х1, ni(х)=х2, ni(х)=х3.
Тогда, R0(х)=Rem[xkx0/g(x)]=Rem[x3/(х3+х2+1)]=х2+1, R1(х)=Rem[x4/(х3+х2+1)]=х2+x+1, R2(х)=Rem[x5/(х3+х2+1)]=x+1, R6(х)=Rem[x6/(х3+х2+1)]=x2+x.
Образующая матрица будет иметь вид
.
Дата добавления: 2015-10-21; просмотров: 71 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Условия обнаружения и исправления ошибок | | | Методы обнаружения и исправления ошибок |