- •ОГЛАВЛЕНИЕ
- •ВВЕДЕНИЕ
- •2.2. Структуры оптимальных приемников различения двух сигналов (оптимальность по В.А. Котельникову)
- •2.3. Анализ помехоустойчивости оптимальных приемников различения двух сигналов
- •3. ОБЩИЕ ПРИНЦИПЫ ОБНАРУЖЕНИЯ И ИСПРАВЛЕНИЯ ОШИБОК ИЗБЫТОЧНЫМИ КОДАМИ
- •3.1. Мера избыточности кода
- •3.2. Оценка помехоустойчивости при передаче дискретных сообщений
- •4. ПРИНЦИПЫ ПОСТРОЕНИЯ И РЕАЛИЗАЦИЯ КОМБИНАТОРНЫХ КОДОВ
- •4.2. Избыточные комбинаторные коды
- •4.2.1. Код на некоторые сочетания (четные или нечетные)
- •4.3.2. Проектирование многоступенных комбинаторных узлов
- •4.4. Проектирование декомбинаторных устройств
- •4.4.1. Проектирование одноступенных матричных декомбинаторных узлов
- •5. ПРИМЕНЕНИЕ ГРУППОВЫХ КОДОВ В КАНАЛАХ И ТРАКТАХ СИСТЕМ ПЕРЕДАЧИ ДАННЫХ
- •6.1.6. Матричный способ представления циклического кода
- •6.1.7. Циклические систематические коды
- •6.2.1. Кодирование при помощи порождающего полинома £(дс)
- •6.2.1.1. Общие принципы кодирования
- •6.2.1.2. Кодирующие устройства БЧХ-кодов, построенные при помощи порождающего полинома g(x)
- •7.3.2. Кодирование циклических кодов исправляющих пакеты ошибок
- •7.З.2.1. Независимое декодирование перемежаемых (л, /я)-кодов
- •7.3.3.2. Декодирование циклических кодов Файра
- •8.1. Краткая характеристика методов повышения помехоустойчивости
- •8.4. Использование обратной связи в системах передачи на базе протокола HDLC
- •8.4.1. Основные возможности протокола HDLC
- •8.4.4. Кодонезависимость и синхронизация HDLC
- •8.4.5. Управляющее поле HDLC
- •9.2. Арифметические коды, использующие контроль по модулю простого числа
- •9.2.1. Контроль арифметических операций
- •9.2.2. Контроль логических операций
- •9.5.2. Арифметические систематические (n,m,dА)-коды, обнаруживающие и исправляющие ошибки
6 . Обе части сравнения и модуль можно разделить на любой их об щий делитель, т. е. если а = 6 (mod р) и а = а\ • d9 b = b\ d9 p = p ]- d, то а\ = bi(mod р\).
7. Если сравнение имеет место по нескольким модулям, то оно имеет место и по модулю, равному наименьшему общему кратному этих моду
лей, т. е. если а = b(modр\р2...pi) и |
|
|
/ |
( |
i |
П Pi = НОК(р1 р 2 |
...р ,), то а &Z> mod П Pi |
|
1=1 |
V |
1=1 |
Числа, сравнимые по модулю р, или равноостаточные числа, обра зуют классы чисел по модулю р. Любое число класса называется вычетом по модулю р по отношению ко всем числам того же класса. Числа одного класса, дающие по модулю р остаток г, имеют форму р • q + г, и все выче ты одного класса получаются, когда q пробегает все целые числа. Очевид но, что числа сравнимы по mod р тогда и только тогда, когда они принад лежат одному и тому же классу вычетов по mod р.
Вычет, полученный при q = 0 и равный самому остатку г, называется наименьшим неотрицательным вычетом. Если из каждого класса вычетов по mod р взято по одному наименьшему неотрицательному вычету, то по лученная система чисел называется полной системой вычетов по mod р .
Число классов вычетов конечно и равно р: 0, 1, |
р - 1. Нулевой класс вы |
четов называется идеалом. |
|
Теорема Ферма: если р - простое число |
и (а, р) = 1, то cF~ X = |
= l(mod р). |
|
Пример 9.1. (5,3) = 1, тогда 52= l(mod 3) и 34= l(mod 5).
В теории чисел широко используются и введенные выше (см. п. 5.1 «Алгебраическое введение») определения основных алгебраических поня тий и алгебраические структуры: группа, кольцо, поле, единичный и об ратный элементы и др., по отношению к числам.
9.2. Арифметические коды, использующие контроль по модулю простого числа
Рассмотрим арифметические коды, использующие числовой кон троль по модулю простого числа, получивший широкое распространение в вычислительных системах и в вычислительных устройствах систем пере дачи данных для контроля всех основных арифметических и логических операций. К их числу относятся: сложение, вычитание, умножение, логи ческое сложение (дизъюнкция), логическое умножение (конъюнкция), от рицание равнозначности (сложение по mod 2 ), инвертирование, операции сдвига разного рода (арифметического и логического сдвига влево-вправо,
циклического сдвига) [22,23,24,25]. Обобщенная структурная схема, реали зующая числовой контроль по модулю, приведена на рис. 9.1.
Рис. 9.1. Обобщенная структурнаясхемачислового контроля по модулю простогочисла
Суть контроля состоит в следующем. Обозначим основную контро лируемую операцию над операндами А и В через *, а вычеты операндов А и В через га и rhсоответственно: А = r„(mod р)\ В = гь (mod р).
Процесс образования вычета (остатка) называется сверткой числа. Параллельно с основной операцией * над операндами А и В в контролирующем устройстве выполняется определенная операция ® над операндами га и . Затем результат операции С сворачивается, и величина гс сравнивается с результатом г'с, полученным в контрольном устройстве.
Совпадение гс и свидетельствует о правильном выполнении операции. Учитывая, что разрядность вычета значительно меньше размерности операнда, можно ожидать, что суммарная сложность контролирующего устройства и устройств свертки окажется меньше сложности устройства,
дублирующего основное (контролируемое) устройство.
Объектами контроля являются устройства, реализующие названные выше операции: сумматоры, счетчики, сдвигатели, арифметические уст ройства и пр.
Приведем ряд математических операций над вычетами при числовом методе контроля основных операций по преобразованию информации в ЭВМ.
9.2.1. Контроль арифметических операций
Данный вид контроля основан на использовании известных из тео рии чисел тождеств сравнимости между собой суммы (произведения) чи сел с суммой (произведением) остатков этих же чисел по какому-либо мо дулю.
I Л |
= 2>H(modp). |
(9.1) |
/=1 |
1=1 |
|
П Л |
^ fl^ C m o d p )- |
(9.2) |
/=1 |
1=1 |
|
Таким образом, если в операции сложения (умножения) участвуют два числа А и В, а С есть результат операции сложения (умножения), то справедливы следующие правила:
{при контроле операции сложения} |
|
|
Гс = (ra+r6)(mod р), |
(9.3) |
|
{при контроле операции умножения) |
|
|
ГС= (ra-r6)(rnodp). |
(9.4) |
|
Пусть операция деления имеет вид |
|
|
Z = У - W |
X = ZY + W. |
|
Y |
|
|
Тогда при контроле операций деления |
|
|
rx = |
[(ryrz) + rw](modp)t |
(9.5) |
где гх, Гу, rz n r w- остатки от деления на модуль р делимого X , делителя У, частного Z и остатка Жсоответственно.
Пример 9.2. А = 7,В = 5,р = 3.
А= ra= I(mod 3); В = rb= 2 (mod 3);
С= Л + Я = 12 = rt.= 0(mod3); (ra = 1) + (г* = 2) = 3 = O(mod3);
C = A B = 7 • 5 = 35 = rc = 2(mod3); ra -rb = 1 2 = 2(mod3); С = Л - В = 2;
rt. s 2(mod 3); |
(rfl- rb= 1 - 2 = -1 s 2(mod 3); |
|
A = Z Y + W = 3 |
2 + 1 = 7 ; |
s l(mod 3); |
rw](mod 3 ) = [0 • 2 |
+ 1] = l(mod 3). |
9.2.2. Контроль логических операций
Для контроля операций логического сложения С = A v В, логическо го умножения С = А & В и поразрядного сравнения С = А Ф В справедливы следующие контрольные соотношения:
|£ = (гв+ г*-г*Хm°d Р), |
|
||
r& |
= fa, + г*- rv)(mod p), |
(9.6) |
|
Ъ |
=(ra+r6-2 r &)(modp). |
||
Пример 73. Л = 101 = 5ю; |
Z? = 010 = 2io; |
p - 3 . |
|
C = i4 VJ5 = 111 = 7 10; K O s K7io)*l(m od3); |
|||
A =ra = 2(mod 3); |
В = |
2 (mod 3); C = rc= l(mod 3); |
|
r^ s 2 + 2 - r (101 & 0 1 0 ) m o d 3 = 2 + 2 - 0 |
= 4 s l(mod3); |
таким образом, r(C) = . |
|
|
|
С = Л & £ = 000; r(O = 0(mod3); |
|
||
r i s 2 + 2 - r |
(101 v 0 1 0 ) m od3 = 2 + 2 - l s=0(mod3); |
||
таким образом, r(C) = . |
|
|
|
С = Л 0 Д = 111 =7io=l(m od3); |
r(C) s 1 (mod 3); |
||
s 2 + 2 - 2r (101 & 010)modз = 4 = l(mod 3); |
|||
|
K Q = 'ф - |
|
|
Для контроля операции инвертирования л-разрядного числа (при ко |
|||
торой обращаются все разряды, включая знаковый) |
А = (2я - 1) - А ис |
||
пользуется следующая зависимость: |
|
|
|
|
Л s (re - ^ X modPX |
(9-7) |
|
где ге = (2 Л- 1 )(mod р). |
_ |
|
|
Пример 9.4. А = 101 = 510; А = (7,0 = 111) - |
101 = 010 = 210 = 2 |
||
(mod 3). |
|
|
|
= [fa = 1)mod3 ~ fa = 2 )mod3] = |
= 2 (mod 3). |
В указанной выше литературе можно найти контрольные соотноше ния для различных видов сдвига влево и вправо.
9.2.3. Расчет эффективности метода контроля по модулю простого числа
Под эффективностью контроля по конкретному методу (например, в данном параграфе числовой контроль по модулю) понимается вероят ность обнаружения ошибок (/\>бн) в передаваемом или преобразуемом в ре зультате арифметической операции коде. Проведем конкретный расчет эффективности для числового контроля по модулю.
Будем считать, что ошибки в каждом из разрядов кода числа появ ляются независимо друг от друга и подчиняются биномиальному распре делению вероятностей. Тогда вероятность появления ошибоку-й кратности в л-разрядном числе
P j { \ - P ) n - J |
(9.8) |
Ы
где р - искажение одной цифры в двоичном числе. Тогда вероятность необнаружения ошибки
p„.o=1- />o6»= £ />o>)/, |
'р . |
’ |
(9.9) |
|
;= 1 |
ч |
J ) |
|
|
где Р(РИш0 /Р/) - условная вероятность пропуска ошибки оцениваемым ме тодом при условии, что ошибки у-й кратности появляются с вероятностью Pj = P(j\ л). Данная формула носит универсальный характер, т. е. справед лива для любого метода контроля.
P(PH'0 /Pj) является оценкой условной неэффективности метода по отношению к ошибкам кратности у, обозначается PMJJ) и является предме том анализа; тогда Рм ,0 (j) является оценкой эффективности метода и пока зывает долю обнаруживаемых ошибок кратностиу. Следовательно,
Л,н(/) + Л , о О) = 1 |
(9.10) |
При анализе искажений считаем, что ошибки разных знаков равно вероятны и в |-м разряде двоичного позиционного числа равны ± 21. На рис. 9.2 приведена зависимость эффективности числового метода контроля по модулю для разных значений модулей.
Рис. 9.2. Зависимость условной вероятности обнаружения ошибок (Рмл) от их кратности (/) для разных модулей р
9.3.Обнаружение и исправление ошибок избыточным кодом
всистеме остаточных классов
Поиски новых методов переработки информации, которые позволи ли бы уменьшить время выполнения арифметических операций (по срав нению с представлением чисел в двоичной позиционной системе счисле ния) привели к созданию методов, работающих с числами, представлен ными в системе остаточных классов (СОК) [20,21,26].
9.3.1. Представление чисел и операций с числами в СОК. Способ перехода, основанный на предварительном переводе числа в ОПС
Зададим ряд положительных взаимно простых чисел Р\, рг,..., рп>ко торые назовем основаниями системы счисления в остаточных классах. Пусть р\< рг< <рп• Для представления числа А в выбранной СОК нахо дим совокупность наименьших остатков г, (z = 1,2, ..., л), таких, что А н г, (modр^ (z = 1 , 2 ,..., п).
Таким образом, каждое число будет однозначно представляться сво
им набором остатков: А = (rj, rj,..., |
, гп). Диапазон целых положитель |
|
ных чисел, представимых в СОК, ограничен числом |
|
|
Р\ = Р\р2 -Р п - |
(9.11) |
Диапазон чисел [0, Р -1] будем называть рабочим. Все числа и ре зультаты, лежащие внутри рабочего диапазона, называются правильными, а вне его - неправильными.
Пример 9.5. Задано число А = 67юПредставим его в СОК по осно
ваниям р\ = 3, р2 |
= 5, /?з = 7. Находим Р\ = 3 • 5 • 7 = 105. Так как А < Р ь то |
оно правильное. |
При этом r\ = l(mod 3), ri = 2(mod 5), r3 = 4(mod 7) |
и /4 = (1,2, 4). |
|
Правильные числа, представленные в СОК, можно складывать, вы читать и умножать поразрядно, выполняя операции по модулю и не учиты вая переносы от цифры одного основания к цифре другого [2 0 ].
Пример 9.6. А = 67ю = (1, 2, 4), В= 12ю= (0, 2, 5).
С = Л + Я = 7910 = (1,4,2); D = А - В = 55ю= (1,0, 6 ).
Результаты С и D лежат в рабочем диапазоне, и, следовательно, вы полненные операции являются правильными. Умножение же числа А и В при выбранном рабочем диапазоне недопустимо, т. к. А В> Р \.
Каждая цифра числа, представленного в СОК, кодируется в двоич ной системе счисления.
Пример 9.7. С = 79ю = (1,4, 2) = (001, 100,010).
Примем следующие обозначения. Число А, представленное в деся тичной позиционной системе, обозначим А = А\о; число А, представлен
ное в СОК по п основаниям р\, p i, |
ря, обозначим |
{Л}=(а|, а 2,..., сс„); |
||
число А, представленное |
в обобщенной позиционной системе |
(ОПС) |
||
с основаниямиРиРг, |
обозначим {Л0 пс}=(яь |
• ••> ап)• |
|
|
Рассмотрим два способа перехода от {А} к А, т. е. от числа, заданно |
||||
го в СОК, к десятичному представлению числа. |
|
|
||
Пусть {А} = (а,, а 2,..., а„) и {Л0 пс} = (аь |
а„). Тогда |
|
||
А = ец + а2р1 + аър1рг+ |
+ а„р1р2 ... Рп-\. |
(9.12) |
Таким образом, для перевода из СОК в ОПС необходимо последова тельно вычислить коэффициенты а\, а2, ..., а„ [2 0 ,2 1 ].
Правила вычисления коэффициентов:
а, = а , эд:(то<1 р ,)= |х |/)|;
|
а, = (а 2 - а , ) — |
|
|
|
|
|
|
Р\ |
Р2 |
|
|
|
Г(а2 - а ,) — - а 21— |
(9.13) |
|||
|
I |
Р\ |
)Рг |
|
|
= |
( |
И |
|
1 1 |
|
...(а„ |
- а ,) -------•••- a n-i |
------ |
|
||
|
|
Р\ |
|
) Рп- 1 |
|
|
|
|
|
Рп |
|
Прежде чем привести пример перехода, поясним выполнение опера- |
|||||
|
а |
|
|
|
|
ции деления по модулю р : — |
|
|
|
|
|
|
^ |
р |
|
|
|
Деление можно заменить умножением |
на обратную |
мультиплика |
тивную величину Р, определяемую из сравнения: р Р = l(mod р), при условии (р, р) = 1. Таким образом, результат деления а означает, сколько
раз нужно взять р, чтобы получить остаток а по модулю р.
2 |
|
|
|
I3|5 = |
М |
- М , = 4 ; |
|
1 -3 |
- 2 |
-1 |
= 2; |
|
|
|
44
-1
=[(-1) 2 " |5 _ |(-1 ).з(5 -2 .
Пример 9.9. Пусть {А} = (1 ,3 ,6 , 2) и р х= 3, / ? 2 = 5,р3 = 7,р4 = И , то гда с учетом (9.13) вычислим коэффициенты представления {А} в ОПС:
Мопс} “ (1.4, 0, 0), тогда А - а\ + а^р\ + язР1/72 + аАРхРтРъ= 1+ 4*3 = 13. М} = 0 ,3 ,6 , 2) -> Мопс} =(1,4, 0 ,0 )-> /* = Л 10 = 13.
9.3.2. Способ перехода, основанный на использовании ортогональных базисов системы
Пусть задана система с основаниями р \, р г ,.--9р п>диапазон которой
р = й р , -
i’ = i
Всякое число А из диапазона [0, Р -1] единственным образом пред ставлено в СОК по выбранным взаимно простым основаниям: А = (а ь а 2, ,..., а я). Заданной системе оснований однозначно соответствует система ортогональных базисов Ви B2..< Д» таких, что величина числа А в позици онной системе счисления может быть представлена как
|
Л = Е аД (то< 1Р ), |
(9.14) |
|
1=1 |
|
или, что то же самое, |
|
|
|
/=1 |
(9.15) |
|
|
|
где га - |
целое положительное число, показывающее, сколько раз диапазон |
|
системы |
Р был превзойден при переходе от представления числа в СОК |
к его позиционному представлению через систему ортогональных базисов. Целое положительное число гА называют истинным рангом или просто рангом числа А [20].
В частном случае в качестве базисов системы могут быть выбраны ортогональные базисы В\ = (1,0,0,...0), Вг = (0,1,0,...0), ..., Вп= (0,0,0,...!).
Следовательно, они могут быть представлены в виде B-t = Ш: Р Vi е1,л,
Pi
где т, - целое положительное число, которое называется весом ортого нального базиса.
Причем /и, должно выбираться так, чтобы выполнялось следующее сравнение:
Ш% Р = 1 (m odp,). |
(9-16) |
Pi |
|
Рассмотрим целесообразный способ вычисления mt. Введем обозна-
р
чение Pj= — . Пусть вычислили Р ,, тогда решаем сравнение
Pi
PiS&Amodpi). (9.17)
С учетом (9.16) и (9.17) т, определится как решение сравнения
mr bg=\ (modpg). |
(9.18) |
Учитывая сравнительную малость величин оснований для набора {pi}yможно составить таблицы решений сравнения (9.18), в которых по ве личине ^ находится соответствующее т/.
В работе [20] приведена подобная таблица для простых чисел до 6 4 . Для контроля вычисления ортогональных базисов воспользуемся
структурой базисов {Bt} , т. е.
В\ + Вг +...+Рл= (1,0,0,...0) + (0,1,0,...0) +...+ (0 ,0 ,0 ,...!) = (1,1,...!) = 1,
или
|
|
|
|
|
/=1 |
|
|
|
|
Пример |
9.10. Пусть |
А = 17 и р { = 2; р 2 = 3; р 3 = 5; р4 = 7. Тогда |
|||||||
{Л} = |
(1,2,2,3), |
диапазон |
правильных |
величин (рабочий |
диапазон) |
||||
Р =2 |
3 x 5 |
7 = 210. |
|
|
|
|
В2 |
|
|
Определим |
ортогональные базисы |
= |
(1,0,0,0); |
= (0,1,0,0); |
|||||
Д3 = (0,0,1,0); |
Я4 = (0,0,0,1). Для этого определим {Я,}. |
|
|
||||||
|
|
|
Р\ |
™ |
,05; |
|
W ; |
|
|
|
|
|
2 |
|
|
3 |
|
|
|
|
|
|
Яз |
^ |
|
Ра |
1 |
|
|
Определим из (9.17) {5,}: |
|
|
|
|
|||||
|
|
|
Рх =5j = l(mod2);P2 = &2 =l(mod3); |
|
|
||||
|
|
|
Я3 = 53 = 1(mod5); Я4 = 84 = 1 (mod7). |
|
|
||||
Обращаемся к таблице решений сравнения (9.18) |
в работе [21]: |
||||||||
т.\ —\ \ т2 = 2; /и3 = 3; ш4= 4. Тогда |
|
|
|
|
|||||
|
р .1 |
|
|
Р .2 |
|
Р .з |
|
Р .4 |
|
Д,= — = 105; |
Я2 = — |
= 70; Я3 = — |
= 126; Я4 = — |
= 120. |
|||||
|
Я1 |
|
|
Pi |
|
Яз |
|
Ра |
|
Проверим контрольное соотношение (9.19):
105 + 70+ 126+ 120 = 421 s l(mod210).
Согласно (9.14) и (9.15) переход от {А} к А, т. е. к числу в десятич ной позиционной, системе таков:
А = 1 105 + 2 70 + 2 126 + 3 120- г • 210 = 8 5 7 -4 • 210 = 17,
т. е.
Xос,#,- = A (mod 210).
/= 1
9.4.Избыточные коды в СОК
9.4.1.Обнаружение арифметических ошибок избыточными кодами в СОК
Для того чтобы код, представленный в СОК, позволял обнаруживать и исправлять арифметические ошибки, необходимо ввести избыточность,
при этом справедливы все общие положения, сформулированные в главе 3. Основным методом построения избыточных СОК является расширение исходной системы за счет добавления модулей рт+], рт+ъ , /?„,+*, попарно простых между собой и с модулями первоначальной системы. Число А в расширенной системе будет иметь следующее представление:
где |
{А}р= {а,, а 2, a n}w, |
(9.20) |
|
|
к |
|
|
п |
|
|
|
р = Н .р г > |
P = P0 R; |
R = П Pm+i; |
т + к = п. |
1=] |
|
/=1 |
|
Число {An} принадлежит избыточному коду в СОК, если 0 < А < Р0. Диапазон Р называется полным диапазоном, а диапазон Р0, как отмечалось выше, - рабочим диапазоном. Система оснований p ]t р2, ...»рп называется упорядоченной, если/?,</?, + 1 (/ = 1, 2, ..., п - 1). В дальнейшем рассмат риваем СОК с упорядоченной системой оснований. По аналогии с ранее рассмотренными корректирующими кодами в позиционных системах счисления вводится понятие веса чисел, кодового расстояния между чис лами (метрика) и ошибки.
Вес W{A} числа {А} равен числу его ненулевых компонентов {а,}. Кодовое расстояние d между двумя числами {Ах} и {Аг} определяется чис лом компонентов (разрядов), в которых эти числа отличаются друг от дру га, т. е. равно весу их разности,
{A2}) = w(\{Al} - { A 2}\).
Вподразд. 9.5.1 при рассмотрении AN-кодов и (л, т, dA)-кодов дает ся несколько иное определение ряда введенных здесь понятий, в частности кодового веса, метрики.
Всилу свойства замкнутости кодового пространства минимальное расстояние dmin для избыточного кода в СОК равно минимальному весу его ненулевых векторов, т.к. расстояние между двумя любыми кодовыми сло вами равно весу некоторого третьего вектора, принадлежащего коду. Под однократной арифметической ошибкой числа, представленного в СОК, по нимают любую ошибку, искажающую только один компонент.
Под S'-кратной ошибкой понимают любые ошибки в s компонентах. Корректирующий код в СОК, как и избыточные коды в позиционных сис темах счисления, может обнаружить совокупность из г или менее ошибок,
если dmin = г + 1, и исправлять ошибки кратности S и меньше, если dmin = 2 S + 1. Корректирующий код в СОК имеет минимальное расстояние dm только в том случае, если произведение избыточных модулей (R) больше или равно произведению любых dmjn- l модулей расширенной сис темы, т.е.
где qj = 1 ,2 ,..., ft.
Поэтому число избыточных модулей должно быть не менее чем
^ m in “ * 1 , Т . е.
(9.22)
Так, для обнаружения однократной ошибки требуется один избыточ ный модуль (к = 1), а для исправления - два избыточных модуля (к = 2). Указанное граничное соотношение между числом избыточных разрядов и кратностью обнаруживаемых (г) и исправляемых (S) ошибок составляет одну из особенностей корректирующих кодов в СОК по сравнению с из быточными кодами в позиционных системах счисления. Вторая особен ность состоит в том, что существует несколько отличный от описанного способ построения корректирующего кода в СОК [26], при котором ис пользуется всего один избыточный модуль, равный R. Однако полученные таким образом коды имеют худшие свойства по сравнению с кодами, имеющими к избыточных оснований, произведение которых равно R.
Теорема 7.1. Пусть основанияр\,р2, •••, |
|
i системы остаточных |
|||
классов удовлетворяют |
условию |
/?,• |
< рт+\ |
i = |
1, 2, ..., т и пусть |
{/1}=(аьОС2,.-- ос,, |
а„„ a„I+i) |
- |
правильное |
число. Тогда число |
|
{Л}= ( а 1, а 2.... a , = a /,...,am, a m+1), где / = 1, 2, |
|
т, т+1, является не |
правильным.
Таким образом, установлен важнейший факт, определяющий воз можность построения избыточных кодов в СОК, обнаруживающих ошиб ки: любое искажение цифры по одному какому-либо разряду превращает это число в неправильное и тем самым позволяет обнаружить наличие ис кажения. Более того, существует только одно единственное значение этой цифры, которое превращает неправильное число в правильное.
Пример 9.11. Воспользуемся исходными данными примера 9.10. Введем контрольное основание ps = 11. Тогда полный диапазон Р = р хх х Pi' Ръ' Ра ' PS ~ 2 3 5 7 11 = 2310, а рабочий диапазон Ро=210. Опре делим по ранее примененной методике ортогональные базисы системы:
Вх= (1,0,0,0,0) =1155; В2 = (0,1,0,0,0) = 1540; Я3= (0,0,1,0,0) = 1386; ВА= (0,0,0,1,0) = 330; В5 = (0,0,0,0,1) = 210.
Пусть передано число {А} = (1,2,2,3,6) = 17. Вместо него принято число [А)= (1,2,2,5,6). Для обнаружения ошибки вычислим десятичное представление числа А и сравним его с рабочим диапазоном:
Л= 1-1155 +2-1540 +2-1386 +5-330 +6 * 2 1 0 -г -2310 =
=9917 - 9240 = 677 >210.
Так как А больше 210, оно является неправильным, т. е. ошибка об наружена. Данный пример иллюстрирует следующий алгоритм обнаруже ния ошибок:
1.Зафиксировать конец цепи модульных операций.
2.Произвести перевод числа из избыточного кода в СОК в число, представленное в десятичной позиционной системе счисления по модулю полного диапазона чисел Р. Данный пункт можно разбить на более мелкие пункты алгоритма, содержание которых обусловлено способом преобразо
вания А —>А{ 0 («~» означает, что соответствующее число может быть ис кажено).
Вп. 9.1 подробно рассмотрены два способа такого преобразования.
3.Проверить попадание Al0 (mod/*) в рабочий диапазон (Р0)- Если
А1 0 <Р0, т о результат получен без искажений, иначе - результат вычислен с ошибкой.
Существует ряд других алгоритмов обнаружения арифметических ошибок избыточными кодами в СОК. Приведем еще один алгоритм:
1. Зафиксировать конец модульных операций.
2. Произвести перевод информационной части избыточного кода в СОК в число, представленное в десятичной системе счисления одним из способов, описанных в п. 7.1.
3. Свернуть информационную часть слова по контрольному основа
нию (модулю) ртН и сформировать остаток <x'm+l.
4. Сравнить а '/и+1 с содержимым контрольной части слова а,и+|. Если
а \м+1 = а « + ь то ошибка отсутствует, иначе - при выполнении цепи мо дульных операций допущена ошибка.
Пример 9.12. В данном примере проиллюстрирован описанный ал горитм, причем при реализации п. 2 используется преобразование
{л}-+ А]0, основанное на предварительном переводе числа в ОПС Лопе • Пусть А = 13 и р\ = 2, рг = 3, р3 = 5, рл= 7, причем р и р2, р3 - инфор
мационные основания (модули), а рл - контрольное (избыточное) основа ние. Тогда {А} = (1, 1, 3, 6). Представим информационную часть числа {Л}
в ОПС: |
|
{Л}оПС= (Я|, Я2> Дз), |
|
Д|= 1; *2=[(1-1) |
V2]3 = 0; я3= [(3 - 1) *0,5 - 0) • 1/3]5= 1/3|5 = 2. |
{Л}опс= (1» 0,2). |
Л|о= 1+ 0 р\ + 2 • pi ■р 2= 13. |
13 = 6(mod 7); a m+1= а 4= 6, а ш+, = а П|+, = 6 - ошибка отсутствует.
Пусть в числе {А} произошла ошибка в остатке а 3, т.е. {/4}= {1,1,2,б}.
^опс = ( й ,,а 2, а 3). |
|
||
а , =1; а 2 =0; |
а 3 |
=1. |
Al0 = 1 + 1 2 3 = 7. |
a m+i = а 4 = 0, |
так |
как А10 |
=1 = 0 (mod 7). |
Итак, а 4 * а 4 (0*6), следовательно, ошибка обнаружена.
9.4.2.Исправление арифметических ошибок избыточными кодами в СОК
Существует ряд алгоритмов исправления ошибок операций преобра зования информации по каждому из взаимно простых модулей с использо ванием избыточных кодов, представленных в СОК.
В данном подразд. будут описаны два из них [20,21,26]. Введем не которые вспомогательные сведения. Назовем число {Л,}, полученное из {А} зачеркиванием цифры а{, проекцией числа {А} по основаниюр,. При водимые ниже теоремы доказаны в работе [20].
Теорема 9.2. Если в упорядоченной системе оснований задано пра вильное число {А} = (ось а 2, ...,а/} ...,а,„, a,„+i), то проекции этого числа по
всем основаниям совпадают, т. е. |
|
А\ =А2 =... = Ai =... - Ат < |
Р |
. |
|
|
Р т +1 |
Теорема 9.3. Если в упорядоченной системе оснований проекции числа {А} по всем основаниям совпадают, то число {А} правильное.
В ряде случаев по величинам проекций можно сделать выводы о правильности отдельных цифр.
Теорема 9.4. Если в упорядоченной системе оснований проекция
{Ai} числа {А} = (ой, а 2, |
а/, ..., а да, а т+\) по основаниюр, удовлетворя |
|
ет условию |
|
|
|
4 > — . |
(9.23) |
|
Р и н -1 |
|
то цифра а, правильная, если возможна только одиночная ошибка. Следствие: если (9.23) имеет место для всех / = 1,т , то ошибочна
цифра a wH
Теорема 9.5. Пусть в упорядоченной системе оснований число {А} = = (а,, а 2, ..., а„ ..., а„„ a w+i) удовлетворяет условию
Рт+\ Рj
тогда цифры а ь а 2, ..., OLJ по основаниям р и Pi* •••» Pj правильные, если возможна одиночная ошибка.
Введение только одного контрольного основания позволяет обнару жить не только любую одиночную ошибку, но и 95% двоичных (в цифрах по двум основаниям).
При этом следует отметить, что введение одного произвольного ос нования позволяет не только обнаружить, но и исправить большинство од нократных ошибок, хотя в общем случае для однозначной локализации и исправления одиночной ошибки, согласно (9.22), требуется два кон трольных основания: р,п+\ и рт+2. Кроме того, следует заметить, что сфор мулированные выше теоремы справедливы и для избыточных кодов в СОК с двумя контрольными основаниями.
Приведем первый алгоритм исправления ошибок для кодов с двумя контрольными основаниями [21]:
1.Зафиксировать конец модульных операций.
2.Найти проекции {Л,} результата {А} по всем основаниям р, (i = 1, 2, ..., т, т+1 ,т+2 )
3. Для каждой проекции {AJ произвести проверку попадания ее в рабочий диапазон
Р
Рт +1 * Р т + 2
4.Если проекции А, находятся внутри рабочего диапазона, то иска жения в результате отсутствуют.
5. Если для некоторого основания pj соблюдается условие Aj < Роу а для всех остальных оснований Л, > Р0, то ошибка в цифре а 7- (теоремы
9.4и 9.5).
6.При наличии ошибки цифру а у отбросить и произвести перевод
проекции {At} в число А в десятичной системе.
7. Свернуть по модулю pj число А и полученную цифру а ; записать
на место й 7*.
Пример 9.13. Пусть А - 13 и/?| = 2;р2 = 3;ру = 5; р4= 7;р5= 11. При чем /?i, ръ ру - информационные основания, а р4 и р5 - контрольные осно
вания. Рабочий диапазон системы Р0 |
= р\ р2 • р3 = 30, а полный диапазон |
|
системы Р = Р0 • R = 30 • /?4 • р5 = 2310. |
|
|
Правильный результат операции в СОК {А} |
= (1, 1,3, 6, 2). Пусть |
|
в результате искажения в цифре |
получено |
число |
Для обнаружения арифметической ошибки вычислим величину А . В дан ном примере вычисляем Ахо с помощью перевода А в ОПС:
{л)-> {л}опс Л .
W onc = (al>a 2>fl3>a 4>fl5)- ах= 2; а2= 1; я3 = 4; а4= 4; а5 = 3.
Л = 2 + 1-2 + 4-2-3 + 4-2-3-5 + 3-2-3-5-7 = 778 > 30.
Данное неравенство устанавливает, что А неправильно.
В соответствии с алгоритмом дальнейшие шаги направлены на опре деление места и величины ошибки. Итак, вычислим проекции числа А :
f t } |
- {1,3,6,2}. |
|
|
с,= |
1;а2 = 4 ;а 3= 0 ;а 4=0. |
Й } о п с = (1*4.°»°)- |
|
Ах = 30 < 30. |
|
|
|
f t } |
={2, 3,6,2}. |
|
|
а| = 2 ;а2= 3;аз = 4 ;а4=5. |
{ ^ 2 }опс = |
3,4,5). |
|
А2 = 398 > 30. |
|
|
|
f t } |
= {2, 1,6,2}. |
|
|
О]= 2; о2 = 1; а3 = 5; а»= 5.
Л3 = 244 > 30.
f t } - {2, 1,3,2}.
а\ = 2; а2= 1;а3 = 4 ;л ,= 4. Л4 = 148 >30.
f t } = {2,1, 3.6}.
{^з}опс = (2>Ь 5).
W o n C = (2>l>4,4).
а, = 2;а2= 1; а3=4; а4= 5. |
{^5 }опС = (2>^ >4,5). |
А5 = 178 >30. |
|
Итак, среди четырех проекций полученного числа А - А2, А3, Ал,
As, превышают рабочий диапазон 30, а Л, - меньше 30. Тогда, согласно п. 5 алгоритма, ошибочна цифра а , по основаниюр\ = 2.
Определим теперь в соответствии с шагами 6 и 7 алгоритма пра вильную величину цифры а ,. Так как в вычисленной проекции А\ оши
бочная |
цифра 5j не принимала участия, то согласно |
теореме |
9.2 |
А = А\ |
= = 13. Отыскиваем вычет числа 13 по модулю р\ |
= 2: 3 = |
1 = |
= ai(mod p\ = 2). Найденное значение цифры по основанию р\ и есть пра вильная цифра ар Таким образом, правильное число {А} = (1, I, 3, 6 , 2).
Рассмотрим второй алгоритм исправления ошибок [20]. В данном алгоритме при вычислении проекций числа {л} и переходе {л}-> А ис пользуются ортогональные базисы системы. Первые пять шагов второго алгоритма с точностью до способа вычисления проекций совпадают с опи санными выше пятью шагами первого алгоритма, в результате выполнения которых определено место ошибочной цифры полученного числа {/l}.
Опишем шестой шаг второго алгоритма:
6 . Определить правильную цифру полученного числа
{2 }={a1>a 2 ,...,a,-,...,am+1, a m+2}.
Пусть в принятом числе {Л} ошибочна цифра а,-, тогда правильное значение цифры а, находится из выражения
а,- - |
а , + Pi • 0 + г ■р п+2 |
А |
(9.24) |
|
f»i Рп+ 2 |
Bi |
|
Все обозначения, |
использованные в (9.24), пояснялись |
в под- |
разд. 9.3.1.
Пример 9.14. Пусть дана система из шести взаимно простых основа ний: р\ = 2,р2 = 3,рз= 5,/?4= 7, / ? 5 = И ,р б= 13.
Основания р\, р2, ръ, Ра являются информационными, а pSi Рь - кон трольными. Таким образом, данный код является избыточным кодом, ис
правляющим |
однократную ошибку. |
Рабочий |
диапазон |
системы |
|
Р0 |
= 2-3-5-7 = 210, а полный диапазон Р = Р0- R = 2-3 5 7 \ М 3 = 30030. |
||||
|
Вычислим |
ортогональные базисы |
этой |
системы. |
В\= 15015, |
В2 |
= 20020, Д3 = 6006, Ва = 25740, Д5 = 16380, В6 = 6930. Пусть результат |
правильной операции А = (1, 2, 2, 3, 6 , 4) = 17 и пусть из-за сбоя (или отка за) аппаратуры число А исказилось и принято число А = (1, 2, 2, 3, 1, 4). Вычислим {/4} через ортогональные базисы:
А= 1-15015+ 2-20020+ 2-6006+ 3-25740+ 1-16380 +
+4-6930 - г-30030 = 8207 >210.
|
Наличие ошибки установлено. |
|
||
|
Вычислим проекции числа А по каждому из оснований: |
|||
|
1. |
Л, - по основанию р\ |
= 2. Для системы с основаниями р2 - Ъ |
|
Р ъ ~ |
5; Ра = |
7; р$ = |
11; р6 = 13 |
вычислим ортогональные базисы: |
В |
= 5005; |
= 6006; |
В{'} = 10725; В™ = 1365; В™ = 6930. Тогда |
А} = (2 , 2,3, 1,4) = 2-5005 + 2-6006+ 3-10725 + 1-1365 +
|
|
|
|
+ 4-6930 - г, -15015 = 8207 >210. |
||||
2. |
Л2 |
- |
по основанию р2 |
= 3. Для системы с основаниями р\ = 2; |
||||
р3 = = 5; /?4= 7; р5 |
= 11; р6= 13 вычислим значения ортогональных базисов: |
|||||||
Bt(2) =5005; Я3(2) = 6006; В(2) =5720; В(2) = 6370; Я<2) =6930. Тогда |
||||||||
|
Л2 = (1,2, 3, 1,4) = 2-5005 + 2-6006 + 3-5720 + 1-6370 + |
|||||||
|
|
|
|
+ 4-6930 - /у 10010 = 8207 >210. |
||||
3. А3 |
по основанию р3 = 5. Для системы с основаниями р\ = 2; р 2 = 3; |
|||||||
/?4 = |
7; |
ps |
= |
11; |
/?6 |
= |
13 |
вычислим ортогональные базисы: |
Я,(3) =3003; Я<3) =2002; Д‘3) =1716; Я*3) =4368; В(2) =924. Тогда |
||||||||
|
|
=(1,2, 3 ,1 ,4 )= |
1-3003+ 2-2002+ 3-1716 + 1-4368 + |
|||||
|
|
|
|
+ 4-924 - гз-6006 = 2201 > 210. |
||||
Опуская аналогичные выкладки, приведем результаты вычислений |
||||||||
остальных проекций. |
|
|
|
|
||||
А4 = (1 ,2 ,2 , 1,4) = 3917>210; |
^?5 =(1, 2, 2 , 3,4) = 17<210; |
|||||||
|
|
|
|
А6 |
=( 1, 2 , 2, 3,1)= 1277 >210. |
Итак, все проекции числа >4, кроме Л5, неправильны. Следовательно, ошибочна цифра а 5 = 11 по основанию р 5= 11. Проведем исправление а 5, вычислив по (9.24) правильное значение
цифры а 5 для проекции As: |
|
а 5 = 1 + 11-Q + 13) |
8207 |
13 |
1365 |
Подводя итоги анализа возможностей обнаружения и исправления арифметических ошибок избыточными кодами в СОК, выделим основные достоинства:
1. Независимость разрядов числа друг от друга и возможность их не зависимой параллельной обработки.
2.Малоразрядность остатков, представляющих числа, что дает воз можность существенно уменьшить время выполнения арифметических операций.
3.Возможность эффективного исправления ошибок вычислений, возникающих из-за отказов и сбоев цифровых устройств.
Основными недостатками использования непозиционных систем счис ления, к которым относится СОК, являются:
1.Вычислительная сложность перевода числа из СОК в позицион ную систему счисления.
2.Отсутствие простых признаков выхода результатов операций за пределы рабочего диапазона.
3.Необходимость использования вычислительных приемов при ра боте с дробными и отрицательными числами.
9.5.Обнаружение и исправление арифметических ошибок неразделимыми и разделимыми арифметическими кодами
других видов
В данном параграфе мы дадим краткую характеристику некоторых арифметических кодов из списка, приведенного выше, в частности исследуем AN-разделимые и неразделимые коды и (я, т ,
коды [21].
9.5.1. Основные определения
Арифметический вес W{N) произвольного целого числа N является одним из основных понятий в теории арифметических кодов и играет ту же роль, что и вес Хемминга в теории алгебраических кодов.
Число членов с ненулевыми коэффициентами в минимальном пред ставлении числа N называется арифметическим весом W(N) числа N.
Что такое минимальное представление числа? Пусть N в двоичной системе счисления представлено единственным образом:
N = ао2° + а{2х+ |
+ at2' + |
/ = 0,1,2, |
{0,1}. |
Если разрешить коэффициентам в этом представлении принимать значения 0, 1 и -1, то целое число N может быть представлено в другом виде:
N = 602° + 6,2' + |
+ Ы21 + |
(9.25) |
|
i = 0,1,2,... |
6, |
е {-1,0,+1}. |
|
Пример 9.15. N = 15ю = (1111)2 = 23 + 22 + 21 + 2° и в то же время согласно (9.25) 15ю = 24 —2° Второе представление имеет меньшее число ненулевых коэффициентов.
Представление (9.25), имеющее наименьшее число ненулевых коэф фициентов, называется представлением с минимальным весом или мини мальным представлением. Не следует, однако, смешивать минимальное
представление с представлением в троичной системе счисления. Кроме то го, необходимо заметить, что минимальное представление неоднозначно.
Пример 9.16.43ю= 101011 = ЮОТОТ = 1 ОТОТ01, где через Т обозна чается символ -1.
Пример 9.17. Так как 15 = 24 |
- 2°, то арифметический вес (в даль |
нейшем в тексте просто вес) Щ 15) |
= 2. Кодовым словом, соответствую |
щим этому числу с арифметическим |
весом 2, является последовательность |
1111, вес Хемминга которой равен 4.
В работе [26] представлен алгоритм нахождения минимального представления числа, исходящий из того, что:
1. Число разрядов в минимальном представлении числа, обычное двоичное представление которого имеет п разрядов, не превышает /2 + 1 .
^ |
^ |
Гп |
2. |
Вес двоичного л-разрядного числа не превышает |
— +1. |
Основные этапы алгоритма:
•найти двоичное представление числа 3N;
•вычесть из него N, получив представление числа 2N в алфавите {0, -1,+1};
•сдвинув вправо на один разряд число 2 N, получить /1+ 1-разрядное минимальное представление числа N в алфавите (0,-1,+1}.
Пример 9.18. Пусть N = 15,0; 3N = 45,0 = (101101)2
(ЗЛ02-(Л02= _ 1 0 1 10 1
|
0 1111 |
(2Л02= |
1 0 0 0 Т 0 |
Т(2JV)2= |
ЮООТ |
Далее сдвигаем на один разряд вправо Т(2Л0г, получим 10001 - ми нимальное представление 15,0. Обычное двоичное представление числа 15,о = (1111)г- Таким образом, арифметический вес числа 1510 = Щ\5) = 2.
Арифметическое расстояние между целыми числами N\ и N2 опреде ляется как арифметический вес абсолютного значения их разности и обо значается db(Nu W2).
d m . N2) = wtyv, - л ф
Введенное арифметическое расстояние является метрикой, т. к. удовлетворяет условиям рефлексивности, симметричности, неравенства треугольника.
Введенные выше арифметические расстояния и вес в теории ариф метических кодов аналогичны расстоянию и весу Хемминга, используе мыми в теории алгебраических кодов. Но введенная метрика лучше учи тывает специфику вычислительного процесса. Действительно, в арифме тических устройствах однократная ошибка в i-м разряде ± 21из-за перено са может привести к искажению нескольких последующих разрядов, т.е.