Файл: Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования.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, |
(N—1). |
Тогда требуемое количество |
кон |
|||
трольных |
разрядов |
|
|
|
|
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