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

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

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

тивный полином

степени

т,

у которого

ni—2m—1,

то

можно для

m ^ l l воспользоваться табл. 3-1.

 

 

Например, пусть требуется найти полином

G(x),

порождающий

код длиной

10 ООО разрядов, который допускает исправление вспы­

шек ошибок

длиной

/^:5 разрядов. Исходя из

условий

 

 

 

с 5*2/—1=9;

 

 

 

 

 

 

Л = [«1, с],

 

 

 

 

выбираем яг=10, с=10 . Если в качество Р(х)

выбрать

примитивный

полином, например, из табл. 3-1 Л(.*)=2011,

то

« i = 2 1 0 — 1 = 1023 и

/г=[ 1023,10]= 10 230

разрядов.

Таким

образом,

искомый код

длиной

/г=10 230 разрядов,

из которых 20

являются контрольными,

порож­

дается полиномом

 

 

 

 

 

 

 

G ( X ) = (.V'° + A - ' + I ) ( * , 0 + I ) .

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

ские коды называют

псевдоциклическими.

3-3. СХЕМЫ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ

д л я

ЦИКЛИЧЕСКИХ к о д о в

Для реализации циклических кодов используются многотактные линейные схемы, именуемые часто филь­ трами или сдвигающими регистрами с обратными свя­ зями. Основными компонентами рассматриваемых схем являются: запоминающий элемент или элемент задержки D на один такт (длительность такта .равна периоду сле­ дования символов или синхронизирующих импульсов); сумматор по модулю 2.

В простейшем случае линейный фильтр имеет один

вход и один выход

и не содержит обратных связей

(рис. 3-1). В данной

схеме, кроме элементов задержки и

сумматоров по модулю 2, имеются элементы, осущест­ вляющие скалярное умножение на коэффициенты gi. При 'рассмотрении полиномов над двоичны-м полем gi — 1 обозначает наличие связи, a gi=0 — отсутствие связи.

70

Если первоначально фильтр содержит нули, то при подаче на его вход полинома

S(x) = 5 o + SiX + S2X2 + . . . + SkXk

(предполагается, что коэффициенты полинома S(x) по­ ступают на вход, начиная с коэффициентов низших по­ рядков, после чего следует г нулей) на выходе получим произведение поли иомов

 

 

5

(х)

G (х)

= s0go +

(sigo

+

s0gi)

х +

 

 

 

+

(s0g2

+ Sigi

+

S2go)x2

+

. . . +

 

Sl,grXh+r.

 

Действительно, при подаче на вход коэффициента So

на выходе получаем s 0 g 0 .

В следующий

момент

времени

Вход

 

D

D

 

 

D

 

 

D

т2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ч0Г-/

 

 

 

Выход

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

91

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

 

 

 

 

 

 

 

Н Яг

 

т2\

 

 

 

 

 

 

т2\

т2 Выход

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Н

 

Н В„ Н

 

Вход

 

 

 

 

 

 

 

 

 

 

 

 

Рис.

3-1. Схема умножения

на

полином

 

G(x) =ga+g\x+

... +

а — с

одним миоговходовым

сумматором

по модулю

два; б — с двувходо -

 

 

 

выми сумматорами по модулю два.

 

на вход поступает Si и

на

выходе

 

фильтра получаем

(stgo+Sogi)

и т. д. Показанные схемы умножения

много­

членов

могут

использоваться

в качестве

кодера

для не­

разделимого циклического кода, заданного с помощью порождающего полинома G(x). Например, схемы коде­ ров для G(x) = 1 23 показаны на рис. 3-2.

71

Вход Гд

т2

Для осуществления

ко­

дирования

разделимым

ци­

 

Выход

 

клическим

кодом и вычисле­

 

 

ния корректора

необходимо

 

 

уметь строить

схемы деления

 

ЩВшоВ

полиномов. Деление

полино­

 

мов производится с помощью

 

 

 

 

линейных

 

ммоготактных

 

 

фильтров

с обратными

свя­

 

 

зями.

 

 

 

 

 

Рис. 3-2. Схемы кодеров для

Рассмотрим

произволь­

неразделимого

циклического

ный фильтр,

содержащий г

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

элементов задержки. Состоя­

G(x) =

l+x2+xh

ние фильтра

будем

описы­

а — с трехвходовым сумматором по

вать вектором й = («1, юг,...,

модулю два; б — с двумя двувходо -

со;-), где сог показывает

зна­

выми сумматорами

по м о д у л ю два.

 

 

чение двоичного символа, за­

 

 

поминаемого в i-м элементе

задержки D. Нумерация элементов D производится

сле­

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

дования которых

.равен

величине

задержки сигнала

в элементах D,

состояние

фильтра

изменяется. Если

в качестве элементов задержки «спользуются триггеры, то период изменения состояний фильтра равен периоду

следования синхронизирующих

сигналов, с помощью ко­

торых производится сдвиг

информации

в регистре.

В

автономном режиме 'новое

состояние

фильтра

Q* =

=

(и*1, ш*2,-. .,а>*т) можно вычислить

с помощью

следу­

ющих соотношений:

 

 

 

 

 

со*1=тцсй1 + /П12Сй2+. • . +

tri\far;

 

 

щ*2=/П21С01+т22;<»2+.. .-htfferuv;

 

 

cu*r=/nricui+.m,.2Q)2+.. . + m„(j)r,

где triij—Л, если выход /-го элемента задержки связан со входом i-ro элемента; в противном случае пгц — О (сло­ жение и умножение являются операциями двоичного поля).

Эту систему уравнений можно переписать в матрич­ ной форме

Q*t = MQt или Q* = QM( ,

72

где М квадратная матрица коэффициентов Мц, назы­ ваемая матрицей связей; — транспонированная мат­ рица М.

Например, матрица

0 0

I

I

м = ||

1

0 0

0

0

1 0

0

1*0

1 о

соответствует фильтру, показанному на рис. 3-3.

Если исходное 'состояние фильтра равно Q, то последующие со­ стояния в автономном режиме будут равны:

QMt, (£2M,)M, = fiM2(...

Однако число различных ненулевых состояний фильтра не может превысить 2Г—-1. Поэтому найдется такое целое число /, не равное нулю, что ЙМ'( = Й. Множество состояний, которое принимал фильтр до тех пор, пока он «е перешел в исходное состояние Я, называют

|_|/772

D

D

Q L/772

D

 

1

1

3

 

Рис. 3-3. Схема фильтра с обратными связями.

циклом. В общем случае длина цикла I зависит не только от матрицы связей М, но и выбранного исходного состояния. В связи с этим го­ ворят о структуре циклов фильтра.

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

г

/ = |

Тогда матрицу М можно записать в виде

M = | | f t ( j c ) , М-*) М-*)||.

(3-6)

73

 

Если

 

 

 

 

 

j i g

(JC) =н лц, (л) ss 1;

 

 

 

 

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

Ji, (Л") sa ЛV, (Л') = Х\

 

 

 

 

 

 

 

 

 

(ir

(Л") s=,Xr V,(A')s=A-r 2 ,

 

 

 

(3-7)

 

 

 

 

 

 

то соответствующая

матрица

 

связей

 

 

 

Si

1

0 .

. 0

 

 

М

gi

0

1 .

. 0

(3-8)

 

=

 

 

 

 

 

gr-

0

0 .

. I

 

 

 

gr

0

0 .

. 0

 

Тогда состояние фильтра в следующем такте

Q*(x) З = Й М ( = = С О 1 Д ; - 1 +

С О 2 + : С О З А : +

.. . +©г х''-2 ==

= (ац + <йгХ + ...

+(arxr~i)x-l

= Q(x)x-i

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

 

 

 

(3-9)

Входную цепь

фильтра

построим

таким образом,

чтобы Q*(x) =[Q(x)

+s]x-x

по модулю

G(x), т. е. после­

дующее состояние получается прибавлением входного

символа s к содержимому фильтра

и однократным сдви­

гом влево в автономном режиме.

 

 

 

 

 

 

Если начальное состояние Q(°)(je)=0 и на вход филь­

тра

поступает последовательность

символов

So, Si, s2, .. .

...,

s

n - i [эта последовательность соответствует коэффици­

ентам

полинома

S(x)=So

+ siX+S2X2+..

 

.-\-sn-iXn~l],

то

фильтр будет последовательно принимать состояния

Q<2> (х) s= (vc~ 1 +

s.) х-1

== sQx~2

+

s, х ~

по

модулю

Q<n> (JC) == s0x ~n ' +

SlA - <r t _ 1 > -f-... +

s„ _ ,x - 1 .

G(x).

 

 

 

* Сравнение X-1

= \JH{X)

по модулю

G{x)

эквивалентно x\ii{x) =

= 1, тогда xy.i(x) = G{x)

+

1 = {go + 1) +

gtx+ . . .

+ £ , л : г = * ( £ | - г -

+ g 2

* +

. . . +grXr~l),

а

отсюда следует

Ц| (д;) =g1+g2x+

. . .

. . .

 

+grXr~l.

 

 

 

 

 

 

 

 

74

Или,

учитывая

сравнение хп = \

тго модулю

G(x),

получаем:

 

 

 

 

QW(x)s=s0

+ SiX + .. . + sn-ix(-n-i'>^S(x)

по модулю

G(x).

Следовательно, после поступления последнего сим­

вола s n - i

содержимое

фильтра будет

равно остатку от

деления полинома S(x)

на G(x).

 

 

Структура фильтра,

описываемого матрицей

связей

(3-8), показана на

рис. 3-4. Данная

схема может

быть

Рис.

3-4. Схема одиоканального

кодера для циклического раздели­

мого

кода, порождаемого полиномом G(x) = l+g^x+ . . . +gT-\XT-[

+

 

+

grXr.

 

использована для вычисления контрольных разрядов раз­ делимого циклического кода в соответствии с выраже­ нием (3-3). Кодер работает следующим образом. Снача­ ла ключ К находится в нижнем положении и k = nг информационных разрядов (v0, vu ..., u^-i) поступают на вход фильтра, который вначале находится в нулевом состоянии, и непосредственно в линию связи. Затем ключ К переключается в верхнее положение. В этом случае обратная связь в фильтре размыкается и г контрольных разрядов последовательно «выдвигаются» в линию. Та­ ким образом, к концу передачи кодового слова фильтр оказывается в нулевом состоянии.

Формально работа кодера описывается следующим образом. После поступления k информационных симво­ лов содержимое фильтра равно:

 

QM(x)

^VoX-'l

+ vix-(h-i)+..

. +

vh-lx-i^

=x-h(v0

+ ViX+.. . + vil-ixk-i)=x-hV(x)

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

что совпадает с выражением (3-3).

 

 

 

Корректирующее устройство служит для проверки

выполнения условия (3-1), т. е. если

принятый

полином

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

кодовому

слову, то он должен

делиться

на G(x).

Если

же возникла ошибка

Е(х)=х{е(х),

кото-

75

рая принадлежит к множеству ошибок, корректируемых данным кодом, то по полученному остатку от деления

Е(х)

на

G(x)

(корректору)

ошибка может быть

исправлена.

 

 

Структурная схема КУ показана на рис. 3-5. Коэффи­

циенты а0,

ait- -An-i полинома

А(х) последовательно по­

ступают на вход буферного ЗУ, в качестве которого

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

регистр,

и одновременно на вход блока деления А(х) на

полином

ill

 

Блок

 

лс

 

деления на S(x)

±

 

 

 

 

 

Вход

Буферное ЗУ

Ц/772 Выход

 

 

 

Рис. 3-5. Структурная схема КУ для циклического кода.

G(x) (многотактный фильтр). Если А(х) является кодо­ вым словом, то через п тактов содержимое блока деле­ ния (корректор) станет равно нулю. При появлении об­ наруживаемой ошибки корректор с<-°)(х)Ф0. Если про­ должить работу (синхронно производить сдвиги содер­ жимого буферного ЗУ и блока деления в автономном режиме), то последовательные состояния блока деления или значения корректора будут равны:

 

 

по модулю

G(x),

е<*> (х) == х°е (х) =

е (х),

 

т. е. вычет е(х)

будет

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

точно через

i тактов.

 

 

 

Впростейшем случае, когда возникла одиночная

ошибка Е(х)=х\ т. е. е(х) — \, на им такте сЮ(х)=<1

или содержимое запоминающих ячеек блока деления будет равно 10.. .00. При появлении этой комбинации на выходе логической схемы должен появиться сигнал, ко­ торый поступит на вход сумматора по модулю 2 и инвер­ тирует ошибочный символ. Таким образом, при исправ­ лении одиночных ошибок в одноканальном КУ логиче­ ская схема (ЛС) (рис. 3-5) представляет собой схему

76

совпадения с г входами, «настроенную» на комбинацию

10...00.

Вобщем случае для исправления независимых оши­ бок вида

 

{1, \+х\ l+xi + xi, ...}

необходимо

регистрировать

(дешифрировать)

 

°=S("=!)

вычетов, где

£ = 1

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

t—максимальная

ошибок. Это значительно меньше, чем в декодере парал­ лельного типа (см. (2-10)).

Например, если t=3, п=30,

то в рассматриваемом

КУ необходимо фиксировать 436

вычетов вместо 4 525

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

вследующем параграфе.

Рассмотренные одноканальныесхемы деления можно применять в системах последовательного действия, где передача символов осуществляется последовательно во времени. В современных цифровых устройствах широко используется параллельно-последовательный принцип передачи и обработки данных. Например, во внешних за­ поминающих устройствах современных ЦВМ использует­ ся параллельно-последовательный принцип передачи ин­ формации. При параллельно-последовательной передаче информационное слово разбивается на части (слоги) длиной v разрядов, эти v-разрядные части передаются последовательно. В этом случае необходимо уметь

строить линейные

фильтры (схемы

деления), содержа­

щие v входов и v

выходов. Рассмотрим методику синтеза

этих схем.

 

 

Последовательные состояния

рассмотренных выше

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

 

flW=iQtt-i)JVlt

+ 0MF,

где Q<l'~1> =

(tn{'_ 1 ) 1

а > 2 _ ' ' , ...,

ю*'- 1 > ) вектор состояния

фильтра в

момент

времени

(г—1); М< транспониро-

77-

ванная матрица связей; vW — значение входного символа в момент времени /; F—(IX/',)—.матрица связей между зходом схемы и входами элементов задержки.

Уравнение для v-канального аналога фильтра, содер­ жащего v входов и v выходов, можно получить следую­ щим образом. Вычисляем состояиие 0< v ) , в которое пере­ ходит одно'канальный фильтр при поступлении на его

вход последовательно

v символов

и ' 2 ) , . . u < v ) , если

исходное состояние фильтра равно

Q( 0 ) :

Q(l) =

Q ( 0 ) M j _ | _ y ( i ) F ;

Q<2> = OOMt - f y<2>F = QS*m]

+ y( 1 >FMt + u<=>F;

Q ( v ) ^ Q ' 0 ) M ; + u t 1 ) F M v f " l . + u ( 2 » F M p 2 + . . . + u ( v ) F .

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

 

 

 

Q<«=

Q«-i)M* +

V<«F*.

(3-10)

где

 

V ( z ) = (v\l), и' 0 , ... ,v[l)) — входной

вектор

v-каналь-

ного

фильтра в момент времени /;

 

 

F*

=

fjyi,v

— (vX^)

матрица

связей

мелду

входами

 

фильтра

и входами

элементов

задержки.

В качестве примера рассмотрим построение двухканального ко­ дера (у=2) для разделимого циклического кода (7, 4), порождаемо­ го полиномом G(x) = \+xi+x3. Матрица связей (3-8) для одноканалыного фильтра равна:

0

1

0

0

1

1

м = 1

0

1 , отсюда M f =

1 0

0

1

0

0

0

1

0

Матрица связей F

(рис. 3-4) равна:

 

 

 

F = В g i f t - f i r - , i il = ll о i щ .

75

Для данных матриц

М;

и F

вычисляем М й ,

п Р*:

 

 

 

 

0

1 1

 

0 I 1

1

I 0

 

 

 

м,2

= 1 0 0

1 0 0 = 0 1 1

 

 

 

 

0

0 1 0 J

0 1 0 i

1 0 0

 

 

 

 

1

I

 

 

 

 

 

FAlt =

II 0 1 1 II

1 0

0

= 111

1 0|| ,

F* =

F

О 1

 

 

 

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, искомое матричное уравнение переходов для

у=2-каиалыюго фильтра

имеет вид:

 

 

 

 

 

 

 

 

 

1 О

I

1 о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О О

0

1 1

 

 

 

 

 

 

 

 

 

 

где

fl(|-I'=

(co<, _ I >i,

co<'_|)2,

a^-'h—содержимое

элементов задерж­

ки фильтра в момент времени

(i—I);

!/(•')= («(*),,

о(02 )—входной

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

дуют

соотношения:

 

 

 

 

 

 

 

 

„ ( О

описывающие структуру двухканалмгого фильтра (рнс. 3-6). Эта схе­ ма деления, показанная на рис. 3-6, используется для кодирования и работает следующим образом.

Сначала ключи К\ и К 2 находятся в положении J и k = 4 инфор­

мационных символа ( о ' 1 ' ,

, u p ' , t4~') по два разряда одновре­

менно 'поступают на входы фильтра, который в исходном состоянии содержит нули, и непосредственно на выходы. Затем К\ и Кг пере­ ключаются в положение 2, обратные связи в фильтре размыкаются и контрольные символы последовательно (сначала два разряда, а за­ тем третий) поступают на выходы (в линию связи).

В рассмотренном примере количество информацион­ ных разрядов k кратно v С/г=4, v = 2). В общем случае это условие не выполняется и после выполнения z=[/z/v] тактов (квадратные скобки означают ближайшее целое большее число) содержимое v-канального кодера будет равно:

R* (х) =

R (х) зГ ( Z V _ A )

по модулю

G(x),

где R(x) соответствует контрольному

коду,

получаемому

в соответствии

с выражением

(3-3).

Поэтому требуется

79

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