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

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

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

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

Добавлен: 19.10.2024

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

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

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

Таким образом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0

1 0

0

0

1

1 1 0

 

1 0

1

0

0

0

1

1

1

0

 

0

1 1 0

 

1 0

0 0

1 1 0

 

1 1

0

1 0

0

0

1 1

 

1 0

1 1 0

 

1 0 0

0

1 1 0

1

1

0

1 0

0

0 1

А =

2 А " 1 2 =

 

 

1 1 0

 

1

0

0

0

1

1 0

1 1 0

 

1 0

0

0

 

1 1 0

 

 

 

 

0

0

0

1

1

1 0

1

1 0

0

0

0

1 1 1 0

 

1 1 0

 

0

1 0

0

0

1 1

1 0

1 0

1 0 0

0

1 1 1 0

 

1

 

 

 

 

Г л а в а

 

п я т а я

 

 

 

 

 

 

 

 

КОДЫ ДЛЯ ОБНАРУЖЕНИЯ И ИСПРАВЛЕНИЯ

 

АРИФМЕТИЧЕСКИХ ОШИБОК

 

 

 

5-1. АРИФМЕТИЧЕСКИЕ AN-

И / Ш + В - К О Д Ы

В рассматриваемом классе кодов кодовыми словами

являются числа

AN

или

 

AN + B,

 

где

N — число,

которое

должно быть закодировано, а Л

и В — константы. При

этом,

если ANi

и AN2

являются

 

кодовыми

словами, то

 

ANi±AN2=A(Ni±Nz),

 

 

 

 

 

 

ANi-AN2=AzNtN2,

ANi/AN2=NilN2.

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

Константа В вводится для получения корректирую­ щего кода, обеспечивающего простой переход от пря­ мого кода к обратному при записи отрицательных чисел. Пусть используется /n-ичная система счисления и для

представления

закодированных

чисел

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

п значащих разрядов (без учета

знакового

разряда).

Число N,

обратное числу -N, можно найти из

известного

равенства

 

_

 

 

 

 

 

N=NMai<c—N,

 

 

 

где Ммакс

= тх1

— максимальное

значение

кодируемых

чисел, которое не должно превышать значения, опреде­ ляемого из условий существования корректирующего ко­ да (z<n).

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

127


N, до m1. Это условие можно записать следующим образом:

(AN+B) + (AN + B) =тп—\

или

AN+2B+A (-Ямакс—N) = тп1.

Из последнего равенства получаем выражение для вычисления константы В:

B=(mn—\—ANMai<c)/2.

В частности, если используется двоичная система ( т = 2), то

В = ( 2 » - 1 - Л # „ а к с ) / 2 .

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

Теорема 5-1. Нечетное число Аф\ порождает ЛЛ^-код произвольной длины п двоичных разрядов с обнаруже­ нием любой одиночной ошибки вида ±'2', г д е О ^ г ^ п — 1 .

Доказательство. Пусть при передаче, хранении или обработке информации в кодовом слове возникла оди­ ночная ошибка, т. е. получено слово AN±2'. Тогда

AuV±2i =Hi±'2i по модулю А, так как по определению ЛАЛкода

,4JV=0. по модулю А.

Но так как А — нечетное число, то при любом i

± 2 * ^ 0 по модулю А.

Другими словами, не существует одиночной ошибки, которая не будет обнаружена этим кодом. Тем самым теорема доказана.

Из теоремы 5-1 следует, что наименьшая величина А, гарантирующая обнаружение одиночной ошибки, равна 3. В табл. 5-1 приведены параметры некоторых арифмети­ ческих кодов вида 3N + B, позволяющих обнаружить одиночные ошибки. Эти коды имеют минимальное рас­

стояние

(арифметическое)

d=2.

Количество избыточных

разрядов

г

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

следующим

образом:

 

 

г =

я — П о ,

 

где По — минимальное целое

число,

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

неравенству

2na^NMaKpj

 

 

 

128


 

 

Т а б л и ц а

5-1

Диапазон кодируе­

Код 3N + 3 (.1=2)

Длина кодово­

Количество

мых чисел N

го слова п

избыточных

 

разрядов

г\

 

 

 

0 - 7

3N+5

5

2

 

0—15

ЗМ-г-Э

6

2

 

0—31

ЗЛЧ-17

7

2

 

0—63

3W+33

8

2

 

0—127

3N+65

9

2

 

0—255

ЗЛЧ-129

10

2

 

0—511

ЗЛГ+257

11

2

 

0—1023

3/V+513

12

2

 

0—262143

З А / + 1 3 1 0 7 8

20

2

 

По модулю А существует А классов вычетов, в ка­

честве

представителей которых обычно выбирают числа

0, 1,

(А—1). Функцией Эйлера ср(Л) называется

число классов по модулю А, взаимно простых с этим

модулем,

или, другими

словами,

число

натуральных

чисел, не

превосходящих А

и

взаимно

простых

с А.

В частности,

если

А — простое

число, то

у(А)=А—1.

Порядком

класса

вычетов а называют наименьшее число

ефО, которое удовлетворяет

сравнению

 

 

 

 

 

 

а е = 1

по модулю А.

 

 

 

Если порядок

е ср(Л), то класс вычетов а называют

первообразным

элементом

(первообразным

корнем).

Если известен первообразный элемент а, то

через его

степени а°=1 , а1 , а2 ,

а А - 2

можно

вычислить все не­

нулевые классы вычетов по модулю А.

 

 

 

Теорема

5-2. Нечетное число Аф\

порождает

ариф­

метический АЛГ-код, позволяющий

исправить

любую

одиночную

ошибку

вида

± 2 \ при условии, что все ко­

дируемые числа N не превышают

величину

 

 

 

 

Д

+

— 1 , если

2

= ч - 1 по модулю А;

^ о =

 

 

 

 

 

 

 

 

 

(5-1)

—2

 

1> если при любом л; 2Ж:^)— 1 по модулю А,

где е — порядок

класса

вычетов 2 по модулю

А.

 

Доказательство.

Так как А—нечетное

число, то

 

 

 

±2{Ф0

по модулю

А,

 

 

 

9—236

129



т. е. любой одиночной ошибке, соответствует ненулевой корректор. Условие, которому должен удовлетворять код длиной п разрядов с исправлением любой одиноч­ ной ошибки вида ±2*, запишем следующим образом:

 

±2{ф±2)

по модулю А,

(5-2)

если 1ф\,

0<с; (i, j)^Zn1.

Выполнение этого

условия

означает,

что различным

ошибкам будут соответство­

вать различные корректоры. Не нарушая общности рас­

суждений, предположим, что t>y. Тогда из (5-2)

следует

условие

 

модулю А

 

2 ' _ ' #

± 1 по

 

или

 

 

 

 

21Ф±\

по

модулю

А,

(5-3)

где 1 < (/ = t—y)<: п— 1.

 

 

 

Пусть е—-порядок

класса вычетов 2 по модулю Л,т. е.

2е ==Г по модулю

А,

 

и пусть существует такое наименьшее число х,

что

2Х= 1 по модулю

А.

(5-4)

Тогда максимальная длина кода п, при которой бу­ дет выполняться условие (5-3), равна наименьшему из

этих чисел, т. е.

 

 

 

 

 

п = мин(е, л:).

 

Из сравнения (5-4) следует:

 

2 Ь = 1 по модулю А

 

или

 

 

 

 

\ = 2^2е

по модулю

А.

Последнее сравнение возможно только в том случае,

если е делит 2х, т. е.

 

 

 

 

2х=Ье,

где b^l

 

— целое

число.

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

 

 

 

 

,х=Ье/2,

 

(5-5)

•Если е — четное

число,

то

равенство (5-5) выполня­

ется при Ь = 1 иминимальное

значение* равно: е/2. Тогда

я = мин(е, е/2) =е/2-