Файл: Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.10.2024

Просмотров: 152

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

щйх кодовым словам, равКа полиному, соответствующе­ му некоторому кодовому слову.

Однако произведение полиномов, .каждый из которых имеет степень не больше (п1), в общем случае не со­ ответствует вектору длины п, так как его степень может

быть

больше

(п1).

Для того чтобы произведение не

содержало степеней

больше (п1), будем

полагать

фор­

мально xns=l,

т. е.

хп1=0.

 

 

Можно

показать,

что множество полиномов степени

(п1)

и

менее над

двоичным полем, для

которых

вве­

дены указанным выше образом операции сложения и

умножения

(последняя по модулю

 

хп—\),

образует ли­

нейную

алгебру.

 

 

 

 

 

 

 

 

 

 

 

 

Например, элементами алгебры многочленов над

двоичным полем

по

модулю 31)

являются:

0,

1,

х,

\+х,

х2

\+х2

х+х2,

\+х+х\

Тогда

(х+х2)

(I +х+х2)

 

=

=х+х2323+х''

 

=

х+х'*=

 

 

х+х-х3=х+х-\=х+

+х=(1

+ 1)х = 0.

 

 

 

 

 

 

 

 

 

 

Циклическим

сдвигом

вектора

 

А = (а0,

Сь а2,..

.,ап-0

назовем

вектор

ТА =

п

 

ао, ait..

 

.,an-i),

тогда

Т2А

=

— Т(ТА)

= п-2,

fln-i,

а0 > .. .,ап _з),

и т. д.

 

 

 

 

С позиций введенной выше операции умножения по­

линомов

(по модулю хп1)

циклическому сдвигу

век­

тора

Л соответствует

умножение

полинома

А (х)

на

х:

xA(x)=x(ao+Qix+a2x2jr..

 

.-\-ап~2хп-2-\-ап-1Хп~^)

 

=

 

 

=

an-i

+ a0x + aix2+..

 

. +

 

 

ап-3хп-2п-2хп-1.

 

 

 

Код

называется

циклическим

 

(соответственно

под­

пространство называется циклическим), если вместе с А

коду

принадлежит ТА

и, следовательно,

TiA, где i=

= 1,

2,.. .,п1.

Другими

словами, если

А(х)—кодовый

полином, то полиномы xiA (х)

также принадлежат коду.

Циклический код однозначно задается с помощью так

называемого

порождающего

полинома

G(x)=go+

+giX+

. . . +grxr.

При

этом

многочлен

А(х) степени

меньше п принадлежит коду в том и только в том слу­

чае, если он делится на G(x). Другими словами,

для

кодовых полиномов, имеет место сравнение

 

/1(х)==0

по модулю G(x);

(3-1)

отсюда

 

 

х1А(х)5=0

по модулю G(x).

 

62


Если в кодовом слове возникнет

ошибка, то А*(х) —

(х) +Е(х),

где

Е(х)—полином

 

ошибки.

Пусть

Е(х)=х1,

г'=0,

1, ...,

п—1, т. е. возможны

только

одно­

кратные ошибки. Тогда полином G(x),

порождающий

код с минимальным расстоянием d—2,

может быть най­

ден из условия

 

 

 

 

 

 

 

 

 

 

 

х1фО,

по модулю

G(x),

/ = 0 ,

1

п—1.

 

В

этом

случае обнаруживается

 

любая

одиночная

ошибка,

так

как не выполняется

сравнение (3-1):

 

 

 

А*(х)

 

==х*Ф0 .по модулю

G(x).

 

Полином

минимальной

степени,

 

удовлетворяющий

условию

(3-1),

равен

\+х.

Таким

образом,

полином

G(x)

— l+x

порождает корректирующий

код с

минималь­

ным

расстоянием

d=2.

Длина п этого кода

произвольна,

количество информационных разрядов

k=n—1

(см. ни­

же процедуру кодирования). Рассматриваемый код по своим параметрам является 'аналогом кода с проверка­

ми на четность или

нечетность

количества

единиц

в слове.

 

 

 

Покажем, например,

что данный

циклический

код не

обнаруживает любую ошибку кратности 2. Ошибка крат­

ности два

имеет вид:

 

 

 

 

 

 

 

 

 

Е(х)=х1+хк

 

 

 

Пусть для определенности

i>j,

тогда

 

 

 

E(x)=xi(l

 

+xt-i)

=х* (1

1),

 

где l = i—/. Так как

при

любом

1^=0

полином

1+х' де­

лится на G(x) = \+x,

то

 

 

 

 

 

E(x)

=

xi(\4-^0

=

0 п о

модулю

G(x)=\-\-x

и ошибка кратности 2 не обнаруживается.

 

Длина п циклического кода с минимальным

расстоя­

нием dp>3,

порождаемого заданным

полиномом G(x),

определяется как наименьшее значение п (не равное нулю), при котором имеет место сравнение

 

х ™ = 1 по

модулю G(x)

(3-2)

или хп

— 1 =s хп -\-

1 = 0 по модулю G (х).

 

При таком определении длины кода все вычеты от

Е(х)==х{( где

О ^ г ^ / г — 1 ,

по модулю G(x) будут

раз-

(53


личны, т. е. различным одиночным ошибкам будут соот­ ветствовать различные корректоры. Например, пусть G(x) = 1 +х+х3. Непосредственным вычислением найдем длину п порождаемого кода и корректоры, соответствую­ щие различным одиночным ошибкам:

J C e = l

х1

Xs

 

 

 

 

 

х3^\-\-х

по модулю

G (х) =

1 +

х -f- л:3

 

х* =

 

х-\-х2

 

 

 

 

Xs з= 1 + X -f- х2

 

 

 

 

х*^\+х*

 

 

 

 

л : 7 = л

 

 

 

 

 

Таким

образом, полином G(x)

= \+x+xa

порождает

циклический код с минимальным

расстоянием d = 3

дли­

ной п=7

разрядов.

 

 

 

хп+\

Из изложенного следует, что если полином

раскладывается на р, неприводимых1

полиномов

(это

разложение является единственным с точностью до по­ рядка их следования):

 

 

 

+

\=G,

 

(x)Gt(x)...GiL(x)

 

 

 

 

и если

все

Gi(x)

различны, то

можно получить

2^

раз­

личных

полиномов

G(x),

порождающих

код

длиной

п

с минимальным

расстоянием

rf>3.

 

 

 

 

 

 

 

 

Таким образом, циклический код полностью описыва­

ется порождающим

 

полиномом

G(x),

который

делит

хп+):

 

 

 

xn

+ \ =

G(x)H(x).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пусть полином

Н(х)

имеет

степень

к,

тогда

G(x)

степень

г—п—к.

 

кодовое слово А (х)

 

 

 

 

 

 

 

Так

как

любое

должно

делиться

на

G(x),

то

 

 

A(x)

=

V(x)G(x),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

V(х)

— частное

 

от

деления А(х)

на

G(x).

Это

со­

отношение описывает

процесс

 

кодирования,

в

соответ­

ствии с

которым

исходные

слова

V

(v0,

у,

 

 

 

 

1 Полином

А (л.)

выше нулевой

степени

называется

неприводи­

мым, если А(х)

ие может

быть разложен в

произведение двух поли­

номов меньшей степени.

 

 

 

 

 

 

 

 

 

 

 

64


длиной

разрядов, интерпретируемые

как

полиномы

V(x) =

^,

V{XI, умножаются на G(x).

При

этом k — ко-

 

г=о

 

 

 

личество информационных разрядов, а степень порож­ дающего полинома r=n—k равна количеству -контроль­ ных (разрядов. При таком способе кодирования получаем неразделимый циклический код, так так в кодовом слове А(х) невозможно указать место информационных*! конт­ рольных разрядов.

Существует второй способ задания циклического кода,

который состоит в следующем. Рассмотрим

произведение

кодового полинома А(х)

на Н(х):

 

 

А (х) Н{х)

= V[(x) G (х)?±±

= V (х) (х-

- f 1) =з О

 

по модулю

G(x).

 

 

Отсюда следует, что коду принадлежат те и только те

полиномы А(х),

для которых выполняется сравнение

А(х)Н(х)=0

по модулю

+

 

где Н(х) —проверочный

полином.

 

 

Так как циклический код является частным случаем линейного кода, то для него остается справедливым мат­ ричное описание. В качестве базисных векторов можно

выбрать

G(x),

xG(x),

хп->-Ю(х),

где

G(x)=gQ+

+ g i X i +

. . . +grxr

— порождающий

полином

степени г.

Тогда порождающая матрица G циклического неразде­

лимого кода имеет

вид:

 

 

 

 

 

G

(х)

 

.

-gr

0 0 .

. 0

 

xG

(х)

=

Ogo •

• £ r - l g r 0 .

. 0

 

 

 

 

 

 

 

xri-r-lQ(xy

 

0 0

 

 

• • gr

 

 

 

 

 

 

Линейная независимость указанных полиномов сле-

ует из того, что

 

 

 

 

 

 

п—г— I

 

ГС—г—

1

 

 

 

 

2 biXfG(x)

= G(x)

S biX* =

G(x)B(x).

 

/=0

 

 

i-0

 

 

 

т. е. полином В(х) имеет степень не выше п—г—1 и G(x)B(x)=0 по модулю хп + \ только в том случае, если один из сомножителей равен нулю.

5 - 2 3 6

65


Часто циклический код желательно представить в форме разделимого (а, /г)-кода. При этом будем пола­

гать, что коэффициенты кодового полинома

А ( х )

=

аа +

+ diX+ ...

-\-ап-&п~1

при 1, х,

..., xh~l

являются

инфор­

мационными

символами, а при xh,

xk+i,

...,

xn~l — конт­

рольными.

 

 

 

 

 

 

 

 

 

Тогда для

кодового слова,

соответствующего

иифор-

 

 

 

ft-i

 

 

 

 

 

мационному

полиному

У ( А ' ) = ^ ] vtx',

должно выполняться

сравнение

 

 

/

=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A(x)

=

V(x)-\-x"R(x)=sO

по

модулю

G(x),

 

 

где ^ ( л " ) =

 

2 rk+lx'-

соответствует

контрольным

сим-

 

 

;=о

 

 

 

 

 

 

 

волам. Из данного сравнения следует алгоритм вычисле­

ния контрольных

символов

 

 

 

R(x)~—x-h

V(x) = —xn-hV(x)

по модулю

G(x)

или в случае полиномов над двоичным полем

 

R(x)

= x-ty(x)

по

модулю G(x).

(3-3)

Другими словами, для получения разделимого цикли­ ческого кода достаточно вычислить остаток от деления- xn~hV(x) на порождающий полином G(x).

Если кодовые полиномы

^ - | - ^ i W = 0 или Ri{x) = x ' h + i по модулю

G(x), i = 0, 1

k — l

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

 

 

G = | | i f c R | | .

(З-4 )

где R подматрица,

/-я строка которой состоит из ко­

эффициентов полинома

Rj-i(x).

 

Например,

полипом

G (х) = 1+х23

порождает циклический

(7,4)-код. Тогда

 

 

 

#о М = х3 =

1 +

х=;

 

Я, (х) = х* =

1 +

х + х г ;

модулю G (х);

R2

(х) = х* =

 

по

1 +

х;

 

R3

( х ) = х 6 = х + х 2

 

60