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

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

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

строке. Следовательно, итеративный код содержит по крайней мере WiW2 единиц, т. е. d=d^d2.

Рассмотрим двумерный итеративный код, получае­ мый с помощью простейшего кода с проверкой на чет­

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

количества

единиц. Символы рас­

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

итеративного

кода

можно

представить

в следующем виде:

 

 

 

 

 

 

 

 

 

а,2

.. аккг

 

 

С

 

 

 

а.п

 

 

 

 

1с

 

к2+\

 

 

 

 

 

 

 

Г 2 ,

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1 С

 

 

 

 

 

 

 

 

1

 

 

 

 

Ск, + \.\

Ск, + 1.2 • •• Ск1

+

),к2

1 С

 

 

 

где ац — информационные

 

 

1

+

 

 

символы;

сц — контрольные.

При этом желательно, чтобы

символ c f t + l

А

, удов­

летворял контрольному соотношению как для

строки,

так и для столбца контрольных

символов. Это условие

будет всегда выполняться,

если

используется

контроль

по четности. Действительно, в этом

случае

 

 

 

 

к2

 

 

 

к,

 

 

 

Ci,k,+

\—Ti

Лгу c

f t l +

| , i

=

S

aji-

 

 

 

/=1

 

 

 

/=1

 

 

 

(Здесь имеется в

Значения ^ + | , трольного столбца

равны:

виду суммирование по модулю 2!) получаемые при суммировании кон­ и контрольной строки, соответственно

 

к,

ft,

 

к2

ck, + \,k2+l = 2

Ci,k2

+ \ = 1 j

S

aij'<

 

k2

 

k2

kt

 

i=\

 

1=1

j=\

Правые части этих выражений тождественно равны. Если же используется контроль по нечетности, то

кг

ка

ci, k2+\ = S °<1 =

1 + 2

/=1

/=1

ft. fel

 

/=1

J=l

110

Отсюда

h

 

4

+ !,

ftj+i

 

= £ 1 +

S

I]

Oil*

 

 

 

 

 

i=<

i = l

/=1

/=1

 

 

 

 

 

 

 

ft.

ft. fta ft,

 

 

 

 

 

 

 

 

i = l

1=1

i = l

/=1

 

 

Правые части этих выражений будут тождественно

равными только в том случае, если

числа

ki

и k2

явля­

ются одновременно

четны-

п

 

 

 

п

 

ми или нечетными.

'

 

 

 

'

 

Так как исходные ко-

;

 

 

 

 

 

ды

имеют

минимальное

 

 

 

 

 

 

расстояние d=2,

то мини­

 

 

 

 

 

 

мальное

расстояние дан-

:

 

 

 

 

а)

ного кода

d = 4 . Этот код

 

 

 

 

 

позволяет

исправить лю-

р н с . 4.3. Структуры

ошибок, не

бую

одиночную

ошибку,

обнаруживаемых

простейшим дву-

а

также

совокупность

мерным

итеративным

кодом,

диагонально

расположен-

«-w™e*»

 

 

 

*•

6-ошибки

ных

ошибок.

Он позво­

 

 

 

 

 

 

ляет обнаружить любую нечетную ошибку, а также зна­ чительную долю четных ошибок (Л. 33].

Структура ошибок кратности 4, не обнаруживаемых кодом, по­ казана на рис. 4-8,а. Количество четырехкратных ошибок, имеющих

показанную структуру, равно ») 00- Отсюда получаем долю иеобиаруживаемых ошибок кратности 4

f _

/"» > \ ("г

\ I f

' l

^ \

— U ( « a — О

6

'*~\2

j \ 2

J I \

4

J («i"2 - 1)

- 2) (Л.Л,—3)^(71,л,)»-

Например, если «i = 10, л 2 = Ю 0 , то / ч « 6 - Ю - 6 .

Структура иеобиаруживаемых ошибок кратности 6 показана на рис. 4-8,6. Эти ошибки расположены в трех столбцах по две в каж­ дом. Количество различных столбцов первого типа равно ^ 9 ^ - ^то -

рои столбец может быть выбран 2(Л(—2) способами. Третий столбец однозначно определяется первыми двумя. Все три столбца могут

быть выбраны ( з I способами. Таким образом, доля необнаруживае-

111

мых ошибок кратности 6

 

h =

 

2 {п, - 2) , ,.-2

 

Л /

phlii

 

 

2 У" v -

3

Л

V б

 

120

(п, -

 

 

2) ( я , - 1 )

 

( / 1 , - 2 )

120

(h,w2 1) (1цп2

— 2)

(/г,«2 — 3) (п,л2

— 4) (nsn25)'

(/г,/га )3 '

Например,

если

/ii =

10,

п2 =100, то

 

/ о ~ 1 , 2 - 1 0 - 7 .

 

В работе [Л. 34] получена формула для верхней гра­ ницы вероятности пропуска ошибки в х-мерном итера­ тивном коде с контролем по четности в каждом «на­ правлении»:

( ^ 2 ^ Для и = _ 2 ;

(4-12)

Щ ? )

Д л я к > 3 . )

i = i

 

где tii обозначает длину кода в i - u направлении. Эти формулы справедливы для двоичного симметричного ка­ нала (ДСК) с вероятностью возникновения ошибки в одном разряде <7<0,5.

 

Матричный метод описания линейных корректирующих кодов

применим также к итеративным кодам. Для получения

порождаю­

щей

матрицы

итеративного

кода

используем

понятие

векторного

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

Векторное

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

вектора

 

X— (х,,

Х2,...,

х П | )

на вектор

У= и

у2

Уп)

разно:

 

 

 

 

 

 

XXY=\x>i

{Уи Уг

 

У„г),

хг{у,,

(/г, ...

,

уп)

 

х Л ] ( у ,,1/ а , ...

, у )],

где

Xi (ylt

уг

 

уПг)

= х1 </,, х{у2

 

 

ад„а.

 

 

 

 

 

Пусть заданы

порождающие матрицы

кодов А

и В

 

 

 

 

 

 

 

 

а,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GB =

 

 

 

 

 

Рассмотрим

векторное

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

 

этих

порождающих

матриц

 

 

 

 

 

 

a a X Q B

 

 

a, X * i

gi

 

 

 

 

 

 

 

 

 

 

 

«i X

b2

 

g2

 

 

G = G „ X C B

=

 

 

 

 

a > x \

 

 

(4-13)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

f t t X \ ,

 

gh

 

112

Векторы gi,

g2

gk

линейно

независимы, так как векторы а\,

Hz,..., akt

и bi,

b2, ..., bki

 

линейно независимы. Действительно, ли­

нейная комбинация

вектор-строк матрицы G равна:

 

 

 

 

 

 

l

 

i.i

 

 

 

 

 

и предположение о линейной зависимости векторов

gi

влечет

за со­

бой линейную зависимость векторов bj или at.

 

 

 

Таким образом, матрица G порождает

линейный

код

длиной

н=«1Лг разрядов (где tii

и пг — длина кода

А и. В

соответственно),

из которых k—k[k2 являются

информационными,

и

минимальным

расстоянием d—d\dz.

 

 

 

 

 

 

 

 

Например,

матрица

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0 1

 

 

 

 

 

 

 

 

 

 

 

О 1 1

 

 

 

 

порождает код с параметрами

ni = 3, ki=2,

d i = 2 (код с контролем

по четности). Тогда

матрица

 

 

 

 

 

 

 

 

 

( l o i ) X ( i o i )

101000101

 

100010101

G = G „ X G „

=

( i o i ) х

(on)

011000011

 

010010011

(011) х

(ioi)

000101101

 

001001101

 

 

 

 

 

 

 

( О П ) Х ( О П )

000011011

 

000101011

порождает

итеративный

код с

параметрами:_ п—9,

fe=4, d= 4 или

в общем случае при использовании х итераций

 

 

 

п = 3х , k = 2' , d = 2х .

В заключение заметим, что изложенный подход к построению итеративных кодов применим и для сверточных кодов.

4-3. КОРРЕКТИРУЮЩИЕ КОДЫ ДЛ Я АСИММЕТРИЧНЫХ КАНАЛОВ

В настоящее время можно выделить два основных направления синтеза корректирующих кодов для обна­ ружения и исправления асимметричных ошибок: 1) ко­ ды с постоянным весом; 2) коды с суммированием.

Исторически раньше были предложены коды с по­ стоянным весом, которые характеризуются тем, что количество единичных символов для любого кодового слова длины п разрядов постоянно и равно т. Такие коды принято обозначать «от из п», количество кодовых

слов не превышает величины ^ ^ j • Например, код «4 из 8» используется в некоторых системах и позволяет закодировать ^4 ^ =70 различных слов (букв). В неко-

8—236

И З

торых ЦВМ, оперирующих с .цифрами в двоичио-деся- тичном коде, для помехоустойчивого кодирования деся­ тичных цифр использовался, в частности, код «2 из 5». В этом случае десятичные цифры могут быть закодиро­ ваны, как показано в табл. 4-7. Использование такого кода возможно в трактах хранения и передачи инфор­ мации, но выполнение арифметических операций в этом коде сопряжено с определенными трудностями. Для выполнения арифметических операций более удобным является код «2 из 7», два варианта построения кото­ рого представлены в табл. 4-8.

Коды с постоянным весом позволяют обнаружить любую одиночную ошибку. Их возможность обнаружи­

вать

многократные

ошибки

зависит

от

степени

асиммет-

 

Т а б л и ц а 4-7

 

 

 

 

 

 

 

 

Т а б л и ц а

 

4-8

Десяеся-

 

Вес

 

 

Десятичные

 

 

 

Вес

разрядов

 

 

 

 

 

разрядов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нчные

 

 

 

 

 

цифры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ифры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

4

2

1 0

 

 

5

0

4

3

2

 

1 0

8

6

4

2

0

1

0

 

 

 

 

0

1 1 0

0

0

0

0

1 0

0

0

0

1

0

0

0 0

1 0

1

1

0

0

0

1 1

1

0

1 0

0

0

1 0

0

0

0 0

1 1

0

2

0

0

1 0

1

2

0

1 0

0

1 0

0

0

0

0

1

0

0

1

3

0

0

 

1 1 0

3

0

1 0

1 0

0

0

0

0

0

1

0 1 0

4

0

1 0

0

1

4

0

1 1 0

 

0

0

0

0

0 1

0

0

0

1

5

0

1 0

1 0

5

1 0

0

0

0

0

1

0

0

1

0

0

1 0

6

0

1 1 0 0

• 6

I 0 0 0

0

1 0 0 1 0 0

0

0 1

7

1

0

0

0

1

7

1 0

0

0

1 0

0

0

1 0 0

0 1

0

8

1 0

0

1 0

8

1 0

0

1 0

0

0

1

0

0 0

0

0

1

9

1 0

1 0

0

9

1 0

1 0

0

0

0

1

0

0 0

0

1

0

рии канала. Так, в полностью асимметричном канале обнаруживается ошибка произвольной кратности, но в ДСК возможно, например, возникновение необнаруживаемых ошибок кратности 2 (если в одном из разря­ дов произошел переход 0—И, а в другом 1—ИЗ).

Оценить сверху вероятность пропуска двойной ошиб­ ки можно следующим образом. Пусть передача инфор­ мации производится по ДСК без памяти и появление любого кодового слова равновероятно. Из последнего допущения следует равновероятность появления симво-

114

лов 1 и 0 на любой позиции слова и искомая вероят­ ность

где q — вероятность возникновения

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

разряде; \ к = щ — интенсивность

потока ошибок, кото­

рый рассматривается как простейший.

Количество разрядов я, которое необходимо для представления двоичных /г-разрядных слов с помощью

кода

с постоянным

весом,

определяется

из

неравенства

 

 

 

 

( : ) » » •

 

 

 

 

 

где

т — число

единиц в кодовом

слове.

Наименьшая

избыточность

кода

получается

в том

случае,

если

т = п/2

(табл. 4-9).

 

 

 

Т а б л и ц а

4-9

 

 

 

 

 

 

 

Длина

кода п разрядов

 

10

12

14

 

16

20

Число

единиц т

 

 

5

6

7

 

8

10

Скорость передачи k/n

двоичных

0,7

0,75

0,785

0,81

0,85

единиц на символ

 

 

 

 

 

 

 

 

Для исправления одиночных ошибок в кодовых сло­ вах с постоянным весом предложен следующий способ

вычисления

контрольных

разрядов [Л. 35]. Пусть еди­

ницы в слове постоянного веса располагаются на пози­

циях cti, 0 2 ,

-

« m ,

где О ^ О г ^ п 1 . Значение

контроль­

ного кода определим следующим образом:

 

 

 

 

т

 

 

 

 

 

R^£i

a-i по модулю п.

(4-15)

 

 

 

1=1

 

 

В этом

случае

для записи контрольного кода требуется

r=log 2 ft

двоичных разрядов.

 

Возможность исправления любой одиночной ошибки

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

(4-15) всегда

может

быть

решено единственным

обра-

8*

115

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

'm—1

R — ^ <Xj-, если вес слова уменьшился на единицу;

^' т-Ы

J] o.i — R, если вес слова увеличился на единицу.

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

т

AR = R* — щ по модулю п,

»=1

где R* — искаженный контрольный код.

Например, слово

10110001 имеет п = 8 разрядов, вес т=А, a ai =

=0, a 2 =2, a 3 =3, a 4 =7 . Тогда

£ =

0 + 2 + 3 + 7 = 4 по модулю 8

икодовое слово равно 10110001100. Пусть получено слово

10110000100, тогда номер ошибочного разряда равен:

/ = 4 — 5 = — 1 = 7 по модулю 8,

и поскольку вес слова уменьшился на единицу, то в седьмом раз­ ряде необходимо записать 1.

Рассматриваемые ниже корректирующие коды с сум­ мированием относятся к числу разделимых и конструи­ руются следующим образом [Л. 36, 37].

Пусть Vh — множество ^-разрядных двоичных инфор­ мационных слов. Разобьем Vh на непересекающиеся подмножества W0, Wi, . . . , Wft такие, что элементы каж­

дого

подмножества

Wi имеют

один и тот же вес i

(в смысле Хэмминга). Любая

асимметричная

ошибка

кратности

/ изменит

вес числа

X^Wi

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

что

искаженное число X'^Wj,

причем \i—/|=/.

Для

построения

корректирующего

кода,

обнаруживающего

116

ошибки

кратности /

или

менее,

образуем множество

классов

вычетов весов

0,

1, 2, . . . ,

k по модулю .N =

1+1.

В качестве проверочных слов естественно выбрать

чис­

ла О, 1, 2,

(N1).

Тогда требуемое количество

кон­

трольных

разрядов

 

 

 

 

r=log2 (/+l) =log2 /V.

В частном случае, когда необходимо

обнаружить

асимметричную ошибку произвольной кратности

(но не

выше /г), требуется

r = l o g 2 ( £ +1) двоичных

разрядов.

Следует, однако,

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

коди­

рования контрольных разрядов, исключающий возмож­ ность пропуска ошибки. Например, для получения кор­ ректирующего кода, обнаруживающего любую асиммет­ ричную ошибку" кратности 2 или менее, требуется два дополнительных разряда, в которые запишем остаток от деления количества единиц на информационных по­ зициях на N=3. Тогда следующее слово является кодо­ вым: 00...00101. Легко видеть, что возникновение двой­ ной асимметричной ошибки (типа 1—Я)) переводит исходное слово в слово 00 ... 00000, которое также явля­ ется кодовым. Чтобы исключить это нежелательное яв­ ление, кодирование контрольного числа должно выпол­ няться с соблюдением условия: если возникающие асим­

метричные ошибки

могут

увеличить количество единиц

в информационном

слове,

то

ошибочный контрольный

код

должен

соответствовать

информационному

слову

с меньшим количеством единиц, чем в исходном

(без­

ошибочном)

слове, и наоборот.

 

 

Этому условию удовлетворяют два способа вычисле­

ния

контрольного кода: 1)

в

качестве контрольного ко­

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

личества

единиц на информационных позициях на

модуль N, т. е. в полученном остатке все единицы заме­

няются на

нули и все нули—на единицы; 2) в качестве

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

Например, пусть заданы информационные слова 11011101, 00100100 и требуется их закодировать таким образом, чтобы обнару­ живалась любая асимметричная ошибка кратности 5 или менее.

117

В этом

случае

значение модуля J V = 5 + 1 = 6 И В соответствии с пер­

вым и

вторым

способами вычисления

контрольного кода получаем:

 

I-i'i способ

2-й способ

 

11011101

111

11011101 010

 

00100100

101

00100100 000

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

метричных каналов, так как

можно синтезировать код

с обнаружением

ошибок

произвольной кратности.

В любом другом

канале (в том числе ДСК) код с сум­

мированием обнаружит любую одиночную ошибку и значительную часть многократных ошибок.

Оценить сверху вероятность пропуска двойной ошиб­ ки можно с помощью выражения (4-14), если не учиты­ вать вероятность искажения контрольных разрядов, так как обычно r<^k.

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

Процедура «взвешивания» информационных разря­ дов позволяет также синтезировать коды для обнаруже­ ния любой вспышки ошибок длины не более b в произ­ вольном канале и ошибки любой кратности в полностью

асимметричном

канале.

Для

получения такого кода

информационным

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

приписы­

ваются веса 1, 2,

2 6 - 1 ,

1, 2,

2 6 - 1 ... В

качестве

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

r=\og2[k(2b-l)!b],

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

Например, для обнаружения любой вспышки ошибок длины 3 или менее следует использовать веса 1, 2, 4. Пусть ft = 6 разрядов и

118

fpedyeTCH закодировать число ilOlOl. Кодовое представление этого числа имеет вид:

 

Информационные разряды

Обратный код

суммы

 

1 2

4

1 2

4

1 2

4 8

 

1 1 0 1 0 1

• 1 1 1 0

 

 

Данный код позволяет обнаружить ошибку произвольной крат­

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

канале и любую

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

длиной

не

более 3 {е ь е2 , es] в произвольном канале (в том числе

в ДСК),

так

как ± e j ± 2 e 2 ± 4 e s = 0

только в том случае, если ei = e 2 =e 3 =0 .

4-4. КОДЫ, ПОЛУЧАЕМЫЕ С ПОМОЩЬЮ МАТРИЦ АДАМАРА 1

Пусть Vn — множество всех /г-разрядных двоичных последова­ тельностей. Тогда рассматриваемые ниже корректирующие коды, получаемые с помощью матриц Адамара, можно определить как не­

которые

подмножества Л ' е У п , минимальное

расстояние

между

эле­

ментами

которых равно <1 Из данного

определения

следует,

что

эти

коды

не относятся к числу групповых

(или линейных)

кодов,

так

как не накладывается условие замкнутости подмножества

К от­

носительно некоторой операции. Поэтому

в данном

случае матричное

описание

кода с помощью порождающей

матрицы

G или контроль­

ной матрицы Н оказывается неприемлемым. Единственным способом описания кода является задание кодовой книги ||^С||, содержащей т

строк,

где т — мощность

кодового

подмножества,

и

п столбцов.

Вторая особенность рассматриваемых кодов заключается

в том,

что они имеют большое минимальное расстояние d^n/2.

Однако при

этом мощность

кодового подмножества (количество

кодовых

слов)

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

 

равенствами:

если d четно, то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2[d/{2d

— п)] при

2d>n^d;

 

 

 

(4-16

 

 

 

 

 

 

при 2d =

/г;

 

 

 

(4-17)

если d нечетно, то

 

 

 

 

 

 

 

 

 

 

 

Например,

пусть

/1=20 разрядов,

rf=10,

тогда

т = 4 0 кодовых

слов, если же « = 2 0 ,

rf=12,

то т = 6 .

 

 

 

 

 

 

Практический

интерес

к

данным

кодам

связан,

прежде

всего,

с построением дешифраторов

с разделенной нагрузкой.

 

 

 

Матрицей

Адамара,

или

А„-матрицей,

называется

квадратная

(п X п)

матрица

\[ац\\,

элементами

которой

являются

1 и 1 , а ее

строки

ортогональны, т. е.

 

 

 

 

 

 

 

 

 

1 В основу данного параграфа положена работа В. И. Левенштейна [Л. 38].

119

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