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

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

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

Заметим, что формально процедуре отбрасывания определенных столбцов подматрицы А матрицы Н = ||А1|| соответствует приравнивание нулю соответствующих ин­ формационных разрядов. Отбрасывать можно любой столбец, «о предпочтительнее (с точки зрения экономии аппаратуры) тот из них, который содержит наибольшее количество единиц. Получаемые таким образом укоро­ ченные коды также являются групповыми.

Коды Хэмминга оптимальны в том смысле, что они требуют минимального количества дополнительных (кон­ трольных) разрядов.

:2 - 3 . НИЗКОПЛОТНОСТНЫЕ к о д ы

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

Низкбплотностные коды описываются матрицей, со­ держащей преимущественно нули и сравнительно не­ большое число единиц. Тем самым уменьшается количе­ ство символов, входящих в контрольные' соотношения. Определим «изкоплотностный (п, j , k) -код как код дли­ ной п разрядов с к информационными разрядами и с контрольной матрицей, каждая строка которой содер­ жит не более / единиц.

Используя понятия контрольной матрицы Н, условия

существования

низкоплотностного (п, /, А)-кода с

rf>3

могут быть сформулированы следующим образом:

 

1) каждая

из r n k строк матрицы

Н содержит не

более / единиц;

 

 

2) все столбцы матрицы Н различны и содержат по

крайней мере одну единицу;

 

 

3) k максимально для данных п и /.

 

 

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

единиц в

ма­

трице Н не превышает г]. Если учесть, что контрольная матрица, соответствующая разделимому коду, имеет

структуру H =

||AIr j|,

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

единиц

в подматрице

А не

превышает г]—r=r(j1).

Так как

любой из столбцов подматрицы А содержит по крайней мере две единицы (иначе не было бы удовлетворено условие 2), то k^.r(j1)/2. Последнее неравенство яв­ ляется верхней границей для к .

40

Если ] — % го

Другими словами, в этом

случае

количество контрольных

разрядов г по крайней

мере

в 2 раза превышает количество информационных

разря­

дов к . Эта граница достигается в том случае, если в про­ цессе кодирования каждый информационный символ

утраивается

(так называемый

 

 

мажоритарный

принцип

введения избыточности).

 

 

 

 

 

 

 

 

Например,

контрольная

 

матрица

 

(9,2,3)-кода может

быть запи­

сана в виде

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0

0

1 0 0 0 0 0

 

 

 

1 0

0 0

1 0

 

0 0 0

 

 

н =

0

1 0

0 0

1 0

0 0

 

 

0

1 0 0 0 0

1 0 0

 

 

 

 

 

 

0

0

1 0

0 0 0

1 0

 

 

 

0

0

1 0

0 0 0 0 1

 

Мажоритарный принцип введения избыточности явля­ ется частным классом корректирующих кодов и может быть формально задан с помощью порождающей или контрольной матриц. Минимальное расстояние в таком коде равно 3 (этот факт следует из того, что строки порождающей матрицы содержат три единицы). Если информационные S{ и контрольные d разряды нумеро­ вать слева направо, то из приведенной матрицы Н сле­ дует, что каждый информационный символ описывается тремя независимыми уравнениями, первое из которых является тождеством:

 

Si =

Si'>

 

 

Si = C2(i-l)4-i',

 

 

Si =

C2(i-l)+Z-

 

Если на входы мажоритарного элемента подать зна­

чения S{, c2(i-i)+i

и C2(i-i)+2, то будет

вычислено значение

s t по принципу

большинства. Таким

образом, если пред­

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

Пусть /=3 , тогда k<^r. Принцип построения матри­ цы, обеспечивающей достижение верхней границы для к

41

(&=/•), показан на примере (8, 3, 4)-кода

 

1 1 0 0-1 0 0 0

 

0

1 1 0

0

1 0

0

н =

0 0 1 1 0 0 1 0

 

1

0 0

1 0

0 0 1

Минимальное 'расстояние в этом коде равно трем. Из данной матрицы следует, что информационные и кон­ трольные символы низкоплотностного (п, 3, /г/2)-кода связаны соотношением

Si + Si+i—Ci,

t ' = l ,

2, . . . , /г,

в котором индексы берутся да модулю /г. Из последнего соотношения следуют три уравнения для вычисления лю­ бого информационного разряда s,-, первое из которых является тождеством:

Si

=

Si',

j

I

 

Si

=

s i + 1 + Ci\

 

(2-8)

В уравнениях (2-8) индексы берутся по модулю k. Например, если i1>=0, то значение индекса равно k и т. д. Таким образом, для декодирования (п, 3, /г/2)- кода могут быть использованы трехвходовые мажори­ тарные элементы.

Если / = 4 , то А^Зг/2 . Верхняя граница для It будет достигнута в том случае, если

( г \

г ( г - 1 )

Зг

\_ 2 ) ~ ~

2

5 3 2 '

Последнее 'неравенство будет справедливо при г ^ 4 . Другими словами, если /"^4 и является четным, то ра­ венство &=Зг/2 может быть удовлетворено. Если же г является нечетным числом, то может быть удовлетворено равенство &= (Зг—1)/2.

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

r = 5

(ft= 14/2=7),

то (12,4,7)-код может быть

задан с помощью матрицы

 

 

 

1 1 0 0 0 0 1

1 0 0 0 0

 

 

0 0 1 1 0 0 1 0 1 0 0 0

н

=

0 0 0 0 1 1 0 0 0 1 0 0 .

 

 

1 0 1 0 1 0 0 0 0 0 1 0

 

 

0 1 0 1 0 1 0 0 0 0 0 1

42

Аналогично могут быть рассмотрены низколлотностиые (п, } , А)-коды при />4 . Так как рассмотренные коды имеют d=3, то они могут быть получены из кодов Хэмминга с помощью укорачивания. .

 

 

2-4. КОДЫ РИДА—МАЛ Л ЕРА

 

Коды

Рида — Маллера

(в дальнейшем

обозначаемые

Р — М)

характеризуются следующими значениями пара­

метров:

 

п=2т;

 

 

длина кода

 

 

количество

информационных "разрядов

^ " Л ^ ™

минимальное

расстояние

d—2m~~l,

1=0

 

где т > 3 — любое целое положительное число, а Ь<т —

порядок кода. В табл. 2-3 приведены

параметры некото­

рых кодов этого класса.

 

 

 

Т а б л'и'ц а"

2-3

 

 

 

 

 

 

 

Число

информационных раз­

11

26

57

5

16

42

рядов k

 

 

,

 

 

 

 

 

 

Число

контрольных

разрядов

5

6

7

11

16

22

г

 

 

 

 

 

 

 

 

 

 

k

k

 

 

 

 

 

0,5" r ,0,657

Отношение - = т - г —

 

0,69

0,815

0,89

0,3 j

 

п к-\-г

 

 

 

 

 

 

 

Минимальное

расстояние d

4

4

4

8

8

8

Порождающая

матрица G для кодов

Р—М.строится

следующим образом. Первая вектор-строка go состоит из

всех единиц. Далее следует т строк gi,

gz, ..., gm, сово­

купность которых удобно рассматривать

как

(тХп)-ма­

трицу, в качестве столбцов которой выбраны все возмож­ ные т-разрядные двоичные числа (начиная с нуля). Эти т строк gu ..., gm называют базисными векторами, первогог.порядка.:. Вычисляя -скалярные произведения пар gigj (L¥=j) базисных векторов первого порядка, получаембазисные векторы второго порядка. Базисные векторы третьего порядка равны скалярному произведению трех векторов первого порядка и т. д. Таким образом, если

43

строится матрица G для кода порядка б, то она содер­ жит

l + » + ( ? ) + . . . + ( T ) - S ( T )

 

 

строк.

Напомним, что количество информационных

разрядов

к равно количеству строк в порождающей матрице G.

Например, матрица

G для кода

 

второго

порядка

(6 = 2)

длиной

/ г = 2 4 = 1 6

разрядов имеет вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

go

1 1 1 1 1 1 1 1 1

1 1 1 1 1 I

1

 

 

gl

0 0 0 0 0 0 0 0 1

1 1 1 1 1

1

1

 

 

g2

0 0 0 0

1 1 1 1 0

0

0 0

1 1

1 1

 

 

gz

0 0

1 1 0 0

1 1 0

0

1 1 0

 

0

1

1

 

 

g*

0 1 Q 1 0 1 0 1 0 1 0 1 0 1 0 1

 

 

glga

0 0 0 0 0 0 0 0 0

0 0 0

1 1

1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

glga!

0 0 0 0 0 0 0 0 0

0

1 1 0

 

0

1

1

 

 

gig*

0 0 0 0 0 0 0 0 0

1 0

1 0

 

1

0

1

 

 

gsga

0

0 0 0 0 0

1 1 0

0

0

0 0 0

1

1

 

 

gig*

0

0 0 0 0

1 0

1 0

0

0 0 0 1

0

1

 

 

g*gi

0

0 0

1 0 0 0

1 0

0

0

1 0 0 0

1

 

Если

матрица G задана, то для вектора

из k

инфор­

мационных символов 5=(s 0 , Si, ..., Sh-i)

можно

опреде­

лить кодовое слово

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 G =

(bo,

 

b u

b2,

 

. . . ,

b n

- \ ) .

 

 

 

 

 

 

В данном кодовом векторе нельзя указать какие из разрядов являются информационными, а какие — кон­ трольными.

Процесс декодирования (извлечения информационно­ го слова из кодового) кодов Р—М отличается от декоди­ рования кодов Хэмминга. Это отличие заключается в том, что каждый из информационных символов st- может быть описан не менее чем <i=2 m - s независимыми уравнениями (контрольными соотношениями), аргументами которых являются символы bi кодового слова. Анализ результа­ тов решения этих уравнений по принципу большинства позволяет определить значения s,-. Тем самым при исправлении ошибок исключается этап определения ме­ ста ошибок, как это имело место в случае ранее рас-

44

смотренных кодов. Поэтому говорят, что коды Р—М по­ зволяют использовать мажоритарный принцип декодиро­ вания.

Простота структуры порождающей матрицы G, соот­ ветствующей кодам Р—М, позволяет установить связь между Si и Ь;, т. е. записать контрольные соотношения без обращения к специальным алгебраическим приемам. В первую очередь записываются уравнения для симво­ лов Si, соответствующих базисным векторам наивысшего порядка i&, затем — порядка (6—1) и т. д. «Соответствие» между информационными символами s,- и базисными

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

.расстановки s,

в столбец, начиная с So и кончая S h - i .

Единицы в столб­

цах матрицы G показывают, какие именно информацион­ ные символы Si определяют значения символов bj кодо­ вого слова.

Например, из приведенной матрицы следует, что

6i=50 -rS4;

b2=sQ

+ s3;

6 3 = S o + S 3

+ S 4 + S i o ,

Поэтому общий принцип поиска контрольных соотно­ шений заключается в том, чтобы найти такие совокуп­ ности столбцов матрицы G, сумма которых является век­ тором, только одна координата которого равна 1. Место­ положение этих столбцов указывает, какие символы bj входят в данное соотношение.

Например, в приведенной матрице сумма первых че­ тырех столбцов равна 00 ... 01. На основании этого мож­ но записать уравнение связи

 

Sio =

b 0 + b i +

b2+b3.

В справедливости этого равенства можно убедиться,

подставляя в него значения b 0 , b u

b 2 , Ь3:

SlO = So +

So + S4 +

So +

S 3 - | - S o - r - S 3 + S4 + SiO = Slo,

так как s0, s3 и s4 входят

в правую часть четное число

раз. Аналогично можно записать:

 

 

Sia=

bi+Ьь

+ Ьв+ Ьп\

 

S w — b s + h + b i o + b i i ,

|

S i o = b i 2 + b i 3 + b u + b i $ .

45

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

В

качестве

примера

приведем

 

систему

уравнений,

 

полученных

из построенной выше матрицы G:

 

 

 

 

 

 

Ь,+

 

 

s.. =

6 0 + 6, 4- 62 +

6, =

64 + 6 5 + 6 6 +

6 , = 68 +

 

 

 

 

 

+ 6,0 + Ьи 6,2 + 6 I 3 + 6 1 4 + 6 1 5 ;

 

 

 

 

«• = ь„ + bt + 64 + 6 5 = 62 + 63 + 66 + 6, = К + ь, +

 

 

 

 

 

+

6 1

2 +

6„ =

6 1 0

+

6ц 4- &u + bis".

 

 

 

 

s e = ьй + ьг + б4 + б6 = &, + ь, + б5 + ьп = бв + б,0 +

 

 

 

 

 

4 - б,2 + б,4 = б9 + 6 п + &и 4- б,5 ;

 

 

 

 

^7 =

60

+

6, +

6, 4" Ь, =

62

+

Ь, 4" б.о + ьи

=

 

 

 

 

 

=

 

6* +

6s +

+

&1з

=

65 +

67 +

6 U

+

6,5 ;

 

 

 

«6 =

60 +

62 +

67 +

6ю =

6, 4- 63 +

б„ 4- 6,, =

64 4- 6в

+

1 (2-9)

 

 

 

+ Ь 1 2 + 6 1 4 = 6 6 4 - 6, 4- 6 1 3 + 6 1 6 ;

 

 

 

«s =

6 0

+

6 4

4- 6 8 + 6,а = 6 , 4 - 6 5

+

6„ 4 - 6,j =

 

 

 

 

=

 

62 +

6в 4-

&,„ 4- 6,4 =

63

+

6 , 4 - 6,, 4- &,5;

 

 

 

= 60 + 6, = 62 4- 63 + s , 0 = 64 4" 65 + Sj = 66 4 - 6 , +

 

 

 

 

+

бв + s,„ = 6 , 0

4-

+

s 7

4- s,„

=

 

 

 

 

=

6,2 +

6,3 4- s, 4- s, =

6 I 4 4- 6,5

4- s, 4- s„ 4-

s,„;

 

 

s 3 =

60 +

62 =

6, 4- b34-s10

=

6 4 4 - b0

+

s 8

= ...;

 

 

 

« a =

60

+

6 4 =

6, 4 - 6 6 +

s.,=

6 2 4 - 66 +

s e =

...;

 

 

 

«1 =

60

+ 6 ,

=

6 , 4 - 6 9 4 - 5 7 = 6 2 4 -

6,0

4-s„ =

...;

 

 

 

50 = 6 0 = 6 , 4 - 8 4 = 62 + 5 3 = . . . .

 

 

 

 

 

 

 

j

В заключение необходимо отметить, что матрицу G кода Р—М можно, привести к виду G = ||If e A|| и исправ­ ление ошибок производить, дешифрируя вычисленный корректор.

2-5. ПОСТРОЕНИЕ КОДОВ Д Л Я ИСПРАВЛЕНИЯ ОШИБОК ЗАДАННОГО ВИДА

В ряде случаев требуется .построить линейный груп­ повой код, обеспечивающий обнаружение и исправление любой ошибки из заданного множества Ф, в качестве

46

элементов которого обычно выбираются наиболее верЭятные ошибки.

Рассмотрим возможный метод решения этой задачи. Линейный .групповой код полностью описывается кон­ трольной матрицей Н. Поэтому поставленная задача сво­ дится к отысканию таких значений корректоров, соот­ ветствующих одиночным ошибкам (или вектор-столб­ цов Н), что различным ошибкам из множества Ф будут

соответствовать различные корректоры.

Элементы заданного множества ошибок обозначим

через Ei, Е2,

• •., £ а . Каждый

из этих

векторов пред­

ставляет собой /г-разрядную

двоичную

последователь­

ность, содержащую единицы

в

искаженных позициях.

Для удобства

дальнейших

рассуждений

пронумеруем

позиции (символы) ошибочных векторов справа налево. На основе заданных значений Ei построим следующую (QXn)-матрицу возможных ошибочных последователь­ ностей:

£an е2, n - i •

еВпеЯ,п—\ •

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

Вычеркивая в матрице М все столбцы, кроме правых двух, и исключая из рассмотрения повторяющиеся и ну­ левые строки, получим матрицу М2 . Естественно, количе­ ство строк в Мг не превышает трех, но и не меньше двух.

В качестве корректоров hi, h2,

соответствующих ошибкам

в

1-м и 2-м

разрядах, выберем соответственно 00 ... 001

и

00 . . . 010

(т. е. двоичные

коды чисел 1 и 2). Вычис­

лим множество Ai корректоров, соответствующих раз­ личным ошибочным последовательностям, которые явля­ ются строками матрицы М2 . Объединив элементы множе­ ства Ai и ранее выбранные корректоры для одиночных ошибок, получим множество «используемых» корректо­

ров А2.

Аналогично предыдущему построим матрицу М3 , вы­ черкивая все столбцы в М, кроме трех правых. В качест­ ве корректора h3, соответствующего ошибке в третьем

47

разряде, выберем двоичный «од, соответствующий наи­ меньшему числу, не -принадлежащему множеству А2. За­ тем вычисляем множество корректоров, соответствующих строкам матрицы Мз. Так как по условию строки матри­ цы М3 различны, то и все рассматриваемые корректоры должны быть различны. В противном случае значение /г3 выбрано неправильно и следует выбрать число на едини­ цу больше, чем 'рассмотренное. После этого вычисляют­ ся значения корректоров (с новым значением /13), соот­ ветствующих строкам М3 . Процесс выбора значения Лз оканчивается, если все рассматриваемые корректоры раз­ личны. Объединяя корректоры h3, hi, hi и их комбина­ ции, соответствующие строкам М3 , получаем множество

«используемых»

корректоров Л3 . Заметим, что А3

может

быть

получено

объединением Ai с /г3 и

корректорами,

при

вычислении

которых использовалось

значение

3.

Затем строится матрица М<„ выбирается hi и т. д. Процесс, построения • кода заканчивается после того,

как будет выбрано значение корректора п- Однако этот процесс при необходимости может быть закончен на любом шаге (при этом будет получен более короткий код). Контрольная матрица Н для построенного кода имеет вид:

 

Н = || М я . , A , M i II-

 

В заключение

заметим,

что

для

 

упрощения расчето

при построении

матриц

М2-, М г + 1

 

Мц мо кно исклю

чить из рассмотрения те векторы

 

ошибок

которые

уже встречались в одной из матриц

M,_i, ...,

М 2 .

Для иллюстрации изложенного метода

построим

корректирую­

щий код длиной 8 разрядов, исправляющий

 

ошибки вида 101. Матри­

ца ошибочных последовательностей имеет вид:

 

 

о о о о о

1

0

1

 

 

 

 

0

0

0

0 1

0

1 0

 

£2

 

 

0

0

0

 

1 0

1

0

0

 

Е3

 

 

0

0

1 0

1

0

0

0

Е*

 

 

0

1 0

 

1 0 0

0

0

 

Еъ

 

 

1 0

1 0

0

0

0

0

 

Еа

 

Изматрицы М

получаем:

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

 

 

'48

Выбираем значения корректороп, соответствующих одиночным ошибкам: Л, = 1=00 . . . 01, /х 2 =2=00 10. Из М2 следует, что множество Аг= {00 . . . 01, 00 . . . 10} = { 1 , 2}.

Далее получаем, что

 

 

1

0

1

 

м 3

=

0 1

0

 

 

 

I

0

0

 

В качестве корректора

h3

выбираем 3, т. е. ';3 =00

011. Тогда

множество корректоров, соответствующих матрице Мз, есть Л | + А 3 = 2 ;

Л г = 2 ; Л з = 3 . В связи

с тем, что код двойки встречается дважды, зна­

чение Лз выбрано неверно. Поэтому

выбираем

код следующего

числа:

Л з = 4 = 0 0 . . . 100. Вычисляем новые

значения

корректоров: Л ] + Л 3 = 5 ;

Л 2 =2;

3 =4 . Отсюда

множество «используемых» корректоров

А3

= {5,

4, 2, 1}. Заметим,

что A3=A2\J{hl+h3,

Л3 }={1, 2, 5, 4}.

 

 

 

 

 

0

1 0

1

 

 

 

 

 

М . , =

1 0

 

1 0

 

 

 

 

 

0

1 0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0 0

 

 

но поскольку ошибочная

последовательность

Ei уже рассматривалась

в матрице Мз, исключим

ее из дальнейших расчетов:

 

 

 

 

 

1 0

1 0

 

 

01 0 0

10 0 0

Вкачестве кода для hi выбираем 6, так как 5 е Л 3 . Вычисляем

значения корректоров, в образовании которых участвует /г4: А 2 = =00 .. 0110+00 . . . 0010=00 . . . 0100=4. Так как элемент 4е=Л3 , то

код для hi выбран неправильно. Поэтому выбираем ht=7

и

hi+h2=

=5, но 5 е Л 2 . Выбираем Л 4 = 8 , тогда Л4+Л2 =10 и множество

«исполь^

зуемых» корректоров

 

 

 

 

/П=/4з11{/и, / и + М = { 1 ,

2, 4, 5, 8, 10}.

 

 

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

тогда

1 0

1 0

0

 

 

Ms = 11 0

1 0 0 0

 

 

1 0 0 0 0

В качестве кода для hs выбираем 9, так как это наименьшее число, не принадлежащее /Ц и ранее не выбиравшееся в качестве корректора. Тогда из Ms следует, что Л 5 + Л з = 13 и

/Ц=Л4 11{Й5, й5 +Аз}={1, 2, 4, 5, 8, 9, 10, 13}. Аналогично

1 0 1 0 0 0

0

1 0

0 0 0

1 0

0

0 0 0

4—236

 

 

49

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