Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования

.pdf
Скачиваний:
6
Добавлен:
21.10.2023
Размер:
8.92 Mб
Скачать

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

Н*=[ (6—2d*) /0 шо—/г. м w с м]//с р,

где d*— расстояние Хэмминга между словом, соответствующим вы­ бираемому сердечнику, и словом, соответствующим рассматриваемо­ му невыбираемому сердечнику. Коэффициент 2 перед d* поставлен потому, что d* обмоток в рассматриваемых сердечниках имеют про­ тивоположное направление прошивки. Так как d*^d (d—минималь­ ное расстояние кода), то параметры схемы должны быть выбраны таким образом, чтобы выполнялось неравенство

[ (6—2d) /0 а>о—/с м о>с м]Дс Р < # о

 

где # 0 — коэрцитивная сила.

 

характеристику

Теперь можно ввести в рассмотрение важную

ПД, а именно минимальное

отношение распознавания.

Минимальное

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

n!0Wol (п2d) loWoп/ (п2d).

Например, для схемы на рис. 2-7 это отношение равно 6:0, т. е. алгебраическая сумма ампер-витков в невыбираемых сердечниках

равна нулю или имеет тот же знак, что и ампер-витки

смещения.

В общем случае при наличии

q ошибок в кодовом

слове и t отка­

зов в самой схеме дешифратора

(типа «обрыв» или «короткое за­

мыкание» выходной обмотки формирователя) минимальное отноше­

ние распознавания равно:

(n—2q—t)/(n—2d+2q+t).

Заметим, что в П Д мощность, трансформируемая в нагрузку, распределяется между п формирователями. В связи с этим, как уже упоминалось, их называют дешифраторами с распределенной на­ грузкой.

При использовании принципа суммирования напряжений П Д со­ стоит из п многообмоточных импульсных трансформаторов, каждый из которых содержит 2h вторичных обметок. Коммутирование вто­ ричных обмоток трансформаторов производится таким образом, что­ бы при отсутствии ошибок суммарное напряжение на возбуждаемом выходе дешифратора равнялось лио, где «о — амплитуда импульса на вторичной обмотке трансформатора. Тогда будут справедливы приведенные выше формулы для минимального отношения распозна­ вания, которое в данном случае равно отношению минимального зна­ чения суммарного напряжения на выбираемом выходе к максималь­ ному значению суммарного напряжения на невыбираемых выходах. Роль пороговых элементов з таких схемах обычно выполняют диод­ ные ограничители.

60

f* л а в а т р е т ь я

ЦИКЛИЧЕСКИЕ КОДЫ И ИХ РЕАЛИЗАЦИЯ

3-1. АЛГЕБРАИЧЕСКОЕ ОПИСАНИЕ ЦИКЛИЧЕСКИХ КОДОВ

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

сравнительно простую

техническую

реализацию

с по­

мощью регистров сдвига с обратными связями.

 

При

изложении теории

циклических

кодов

вектор

А = (ао,

a i , . . .,ап-0

отождествляется

с полиномом

(многочленом)

 

 

 

 

 

 

А (х) = а0+aiX

+

агх2+...

+ а п - \ Х п ~ 1 ,

 

коэффициентами которого являются компоненты вектора. Понятия равенства, суммы и произведения полиномов вводятся следующим образом.

Пусть

A(x)=a0

+ aiX+a2Xz+..

. + а п х п ,

B(x)

=

b0+b1x+b2x2+.

. . + b m x m

— произвольные

полиномы над двоичным полем, т. е.

их коэффициенты могут принимать только два значения

(О или 1).

 

 

 

 

 

 

 

 

 

 

Полиномы А(х)

и В(х)

считаются

равными только

тогда, когда

полином А (х)

состоит из тех же членов, что

и полином

В ( х ) ,

кроме

членов с коэффициентами, рав­

ными нулю. Под суммой

 

А ( х )

+ В ( х )

будем

понимать

полином

С (х)

 

со+ Cix

 

 

 

 

 

 

 

=

+ Сгх*+...

+

CkXk,

 

где k есть наибольшее из чисел п и т, a с *

+

Под произведением А(х)В(х)

будем

подразумевать

полином

 

 

 

 

 

 

 

 

 

 

а0Ь0+

(ооЬ1 + аф0)х+

 

 

 

(aob2+aibi+a2b0)xz+...

 

 

 

. . . + а п Ь т х ъ + т .

 

 

 

 

Складывая и перемножая полиномы

с

коэффициен­

тами из двоичного

поля,

однозначно

получаем

полином

с коэффициентами из того же лоля.

 

 

 

 

Сложение двух векторов соответствует сложению по­

линомов. Поэтому

сумма

двух полиномов,

соответствую-

61

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

Однако произведение полиномов, .каждый из которых имеет степень не больше (п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

отсюда получаем

порождающую

матрицу

 

 

 

1

0

0

0

 

1 0

1

 

G

 

0

1 0

0

 

1 1 1

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1 0

1

1 0

 

 

 

0

0

0

1 0

1 1

Контрольная матрица разделимого циклического кода

имеет вид:

 

 

 

 

 

 

 

 

 

 

 

H =

 

| | R t I n - f c | | -

Данную матрицу можно записать следующим

образом:

 

 

 

 

 

 

 

 

 

H = |U«\ -V+ i

-?V - 1

1,

X,

 

 

 

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

 

, х

 

 

 

 

 

 

имея в виду, что вектор-столбцами Н являются располо­ женные в порядке возрастания их индекса коэффициен­ ты вычетов по модулю G(x). Поэтому контрольную мат­ рицу циклического кода иногда записывают в виде

Н:

1, х, хй,..., хп~1\\

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

(3 5)

3-2. НЕКОТОРЫЕ КЛАССЫ ЦИКЛИЧЕСКИХ КОДОВ

Среди циклических кодов существует аналог рассмот­ ренных в тл. 2 кодов Хэмминга с минимальным расстояни­ ем d—З. Эти коды порождаются так называемыми при­ митивными1 полиномами. Смысл использования прими­ тивных полиномов можно пояснить следующим об­ разом.

Пусть G(x) — некоторый полином степени

/\ Длину

кода п, порождаемого данным полиномом G(x),

опреде­

ляем делением xi на G(x)

при последовательном

увеличе­

нии степени I до тех пор,

пока не будет выполнено срав­

нение (3-2). Найденное значение степени п, удовлетво^ ряющее сравнению (3-2), равно длине порождаемого

кода. Значение п равно количеству различных

ненулевых

остатков, которые получаются при делении xi

на

 

G(x)

(при дальнейшем увеличении степени эти остатки

перио-

1 Примитивным называется неприводимый полином, корнем ко­

торого является примитивный элемент поля Галуа GF(2r),

где

г —

степень полинома. Элемент поля GF(2r) является примитивным,

если

его порядок равен 2Г 1.

 

 

 

5*

 

 

67

дически повторяются). Так как степень G(x) равна г, то количество различных ненулевых остатков не может пре­ восходить величины 2'"—1, и если п — 2г—1, то G(x) яв­ ляется примитивным полиномом. Таким образом, исполь­ зование в качестве G(x) примитивного полинома позво­ ляет получить максимально возможную длину п корректи­ рующего кода с d=3 при данном количестве контроль­ ных разрядов /-.

Таблицу

неприводимых полиномов до 34-й степени

с указанием

примитивных можно найти в монографии

[Л. 8]. В табл. 3-1 приведены параметры и порождающие полиномы циклических кодов Хэмминга длиной п не бо­

лее 2 047

разрядов.

Примитивные полиномы

 

одинаковой

степени

порождают

 

эквивалентные

коды. В

табл.

3-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а

 

3-1

(я, А)-код с ми­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нимальным

рас­

 

 

 

 

ПорождлющиН полином С (.v)

 

 

 

 

стоянием

</=3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(7.

4)

 

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(15,

 

11)

 

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(31,

 

26)

 

45,

75,

67

 

 

 

 

 

 

 

 

 

 

 

(63,

 

57)

 

103,

147,

155

 

 

 

 

 

 

 

 

 

 

(127,

 

120)

 

211,

217,

235,

367,

277,

325,

203,

313,

345

 

 

(255,

 

247)

 

435,

551,

747,

453,

545,

543,

537,

703

 

 

 

(511,

 

502)

 

1021 ,

1131 ,

1461,

1423,

1055,

1167,

1541,

1333,

 

 

 

 

 

1605

,

1751 ,

1743,

1617,

1553,

1157,

1715,

1563,

 

 

 

 

 

1713

,

1175

 

1725,

1225,

1275,

1773,

 

1425, 1267

(1023,

1013)

2011

,

2415

 

3771,

2157,

3515,

2773,

2033,

2443,

 

 

 

 

 

2461

,

3023

 

3543,

2745,

2431,

3177,

3525,

2617,

 

 

 

 

 

3471

,

3323

 

3507,

3623,

2707,

2327,

3265,

2055,

 

 

 

 

 

3575

,

3171 , 2047, 3025, 3337,

3211

 

 

 

 

 

(2047,

2036)

4005

,

4445 ,

4215,

4055,

6015

 

 

 

 

 

 

 

П р н м е ч а н н е. Коэффициенты

полиномов

О(х)

записи/ ы в

восьмеричной

сис­

теме. Например, 23=01001 \—х* +

х+1.

 

 

 

 

 

 

 

 

 

 

 

представлена только половина примитивных полиномов соответствующей степени. Примитивными являются поли­ номы, двойственные к указанным. Двойственный поли­

ном

G*(x)=xrG(l/x)

порождает

эквивалентный

код.

Поэтому, например,

(7, 4) -код порождается

полиномами

13 и 15, (15, 11) -код — полиномами 23 и 31 и т. д.

 

Наилучшими из известных циклических кодов для

исправления независимых

ошибок

являются

коды.

Боуза — Чоудхури — Хоквинхема

(БЧХ). В

этих

кодах

число

контрольных

разрядов

r<^rnt

при

длине

кода

68

п = 2т—1, где / — количество

исправляемых

ошибок.

Теория построения этого класса

кодов здесь

не излага­

ется, в табл. 3-2 приведены параметры и порождающие

полиномы .коротких кодов БЧХ (коэффициенты

полино­

мов записаны

в восьмеричной

системе,

см. примечание

к табл.

3-1).

 

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а 3-2

(л,

й)-код

Минимальное

Порождающпи'полнном 0(х)

расстояние d

(15,7)

 

721

 

 

 

 

(21,12)

 

1467,

1663

 

 

 

(31,21)

 

2303,

3557,

3551

11253

(63,51)

 

16223,

12471,

11625,

(127,

113)

 

41567

 

 

 

 

К циклическим кодам, предназначенным для обнару­ жения и исправления вспышек ошибок, относятся коды Файра. Порождающий полином этого класса кодов равен произведению двух полиномов:

G(x)=P(x)(xB+-l),

где Р(х) — неприводимый полином степени т. Длина п кода, порождаемого полиномом G(x), определяется из выражения (3-2).

Пусть

л:"' = 1 по модулю Р(х),

где ni — минимальное не равное нулю число, при котором

справедливо

это сравнение.

Учитывая,

что полином

xi + \ делит

полином

х'+\

в том и только

в том случае,

если i делит /, получаем,

что длина кода, порождаемого

полиномом G(x)=P(x)

с+1),

равна:

 

 

 

п=[пи

с],

 

где квадратными скобками обозначено наименьшее об­

щее кратное

чисел щ и с. Количество контрольных раз­

рядов равно

степени полинома G(x),

т. е. г=т

+ с. Дан­

ный код позволяет исправить любую одиночную

вспышку

ошибок длиной / или менее и одновременно

обнаружить

любую вторую

вспышку ошибок

длиной

t^l,

если

l + t—l<g:c и

m^l.

При синтезе данного класса

кодов

можно пользоваться таблицей неприводимых полиномов [Л. 8]. В частности, если в качестве Р(х) выбирать гарими-

69

Соседние файлы в папке книги из ГПНТБ