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

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

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

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

Добавлен: 19.10.2024

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

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

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

Векторы 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