Файл: Бездудный, В. Г. Техника безопасности в шахтном строительстве.pdf

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

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

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

Добавлен: 18.10.2024

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

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

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

мере п

3 — 1 =

2), но и за тем, чтобы

Систематический

код,

Таблица 20

кодовое расстояние

от строки к строке со­

 

 

 

 

ответствовало условию dr

d —2 (в рас­

исправляющий одиночную ошибку

 

сматриваемом примере

dr

3 — 2 = 1).

 

Кодовые

Номер сумми­

По производящей матрице (94) стро­

№ кода

комбинации

руемых строк

им все комбинации кода. Первые пять ком­

 

 

 

 

 

 

 

бинаций — это строки производящей мат­

 

 

 

 

 

 

 

рицы и нулевая комбинация, остальные —

1

0000

000

 

0

 

 

суммы по модулю 2

всевозможных сочета­

2

1000

011

 

1

 

 

ний строк производящей матрицы (табл. 20).

3

0100

101

 

2

 

 

Как

видим,

во

второй

колонке

4

0010

по

 

3

 

 

табл. 20 представлены комбинации систе­

5

0001

111

 

4

 

 

матического кода для передачи 16 сооб­

6

1100

по

1 + 2

 

щений. .

 

 

 

 

 

7

1010

101

1 + 3

 

Рассмотрим процесс обнаруже­

8

1001

100

1 + 4

 

9

оно

011

2 +

3

 

ния ошибочного разряда на примере

10

0101

010

2 +

4

 

одного из наиболее распространен­

11

ООП

001

3 +

4

 

12

1110

000

1 + 2 -4- 3

ных систематических кодов — кода

13

0111

100

2 +

3 +

4

Хэмминга.

 

 

 

 

14

1011

010

1 +

3 +

4

Хэмминг предложил методику

15

1101

001

1 + 2 +

4

[42], которая позволяет

так стро­

16

1111

111

1 + 2 + 3 + 4

ить корректирующий код,

что при

 

 

 

 

 

 

 

одиночном сбое

точно

указывается

место

в коде, где произошла

ошибка.

 

 

 

 

 

 

 

 

 

 

 

 

Предположим, необходимо исправить одиночную ошибку бинар­

ного кода. Такой код состоит из «и символов, несущих

информацию,

и пк контрольных (избыточных) символов. Всего символов в коде

 

 

 

 

 

 

 

п = пя +

пк.

 

 

 

 

 

(95)

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

число комбинаций 2"к,

чтобы свободно

различить п +

1 вариант.

Это предъявляет к

пк требование

удовлетворения

неравенства

2п* > я + 1.

(96)

Согласно выражению (95),

, 2 П = 2 п и + " к = 2Пи ■ 2 п к .

Используя формулу (96), записываем

2п> ( п + 1 ) . 2 \

где 2'1— полное число комбинаций кода.

Отсюда число информационных

символов кода,

и корректирующего одиночную ошибку

2пи <

2п

/х — 1

(97)

обнаруживающего

(98)

125


1
2
2
3
3
3
3
4
4
4
4
4
4
4
4
5

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

Для вычисления основных параметров кода задается количество либо информационных символов, либо информационных комбинаций —

N = 2"и. При помощи формул (96) и (98) вычисляют п и пк. Соотно­

 

Таблица 21

шения между п, пк и

пк для кода Хэм­

 

минга представлены

в

табл. 21.

Соотношения между

 

 

Зная основные

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

количеством

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

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

 

тирующего кода, определяют, какие

в коде Хэмминга

 

позиции сигналов будут рабочими, а

 

 

 

какие — контрольными. Практика пока­

п

«и

зала, что номера контрольных символов

1 0

20

31

41

52

63

74

84

95

106

117

12• 8

139

1410

1511

1611

удобно выбирать по закону 2' , где i — = 0, 1, 2, 3... — натуральный ряд чисел. Номера контрольных символов в этом случае равны 1, 2, 4, 8, 16, 32 .... Затем определяют значения контрольных ко­ эффициентов (0 или 1), руководствуясь следующим правилом: сумма единиц на проверочных позициях должна быть четной. Если эта сумма четна — значе­ ние контрольного коэффициента 0, в противном случае — 1.

Проверочные позиции выбирают следующим образом. Составляют таблич­

ку для

ряда

натуральных

чисел в

двоичном

коде. Число

ее строк равно

п — «и +

«к

Первой

строке

соответ-

проверочный коэффициент аъ втор

0001

а1

0010

« 2

ООП

а3

0100

ai

0101

«5

ОНО

ав

0111

а ,

1000

а 8

1001

а 9

1010

аю

1011

«IX

126


Затем выявляют проверочные позиции, выписывая коэффициенты по следующему принципу: в первую проверку входят коэффициенты, которые содержат 1 в младшем разряде, т. е. а1г а3, аъ, а7, а9, аи и т. д.; во вторую проверку — коэффициенты; которые содержат 1 во втором разряде, т. е. а.2, а3, а8, а7, а10, ап и т. д.; в третью проверку — коэф-

Номера проверочных позиций кода Хэмминга

 

 

 

 

 

 

Таблица 22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проверочные позиции (J7)

 

 

 

 

 

№ конт­

про­

 

 

 

 

 

 

 

 

 

 

 

 

рольного

верки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

символа

1

1,

3, 5, 7,

11, . . .

15,

18, 19, 22,

23, . . .

 

 

 

 

 

1

2

2,

3, 6, 7,

10,

11, 14,

 

 

 

 

 

2

3

4,

5, 6, 7,

12,

13, 14,

15,

20, 21, 22,

23, . . .

29,

30,

31,

40,

41,

4

4

8,

9, 10,

11,

12,

13,

14,

15,

24,

25,

26,

27,

28,

8

42, . . .

фициенты, которые содержат 1 в третьем разряде, и т. д. Номера про­ верочных коэффициентов соответствуют номерам проверочных по­ зиций, что позволяет составить общую таблицу проверок (табл. 22). Рассмотрим конкретный пример.

Пример И. Требуется передать комбинацию 0101, т. е. пИ — 4.

=

3,

при этом

Согласно табл. 21, минимальное число контрольных символов

п = 7. Контрольные коэффициенты будут расположены на позициях 1,

2,

4. Состав­

ляем корректирующий код и записываем его в первую строку табл. 23. Пользуясь табл. 22, определим значения коэффициентов

Ki, К2 Н Кз.

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 23

+

Первая

 

проверка:

сумма

 

П\

+

Лз +

Построение кода Хэмминга

Л5 +

Я 7

должна

быть

четной,

а сумма

Позициясим­ корволов­ ректирующе­ кодаго

Код

К\ 4* 0 + 1

+

1 будет четной при К\ — 0.

+

Вторая

 

проверка:

сумма

Л2 +

Пз +

без значений

со значениями

Пв +

Я 7 должна быть четной, а сумма

+

 

+

0 +

0 + 1

 

будет четной при К2 =

1.

 

контрольных

контрольных

 

 

коэффи­

коэффи­

+

Третья

 

проверка:

сумма

 

Л4 +

Л6 +

 

циентов

циентов

Лв +

Л2

должна быть четной, а- сумма

 

 

 

Кз + 1

+ 0 +

1 будет четной при Кз = 0.

1

к х

0

 

Окончательное

значение

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

щего кода записываем во вторую строку

2

Ко

1

табл. 23.

 

 

 

 

 

 

 

 

 

 

3

0

0

 

Предположим,

в канале связи под дей­

4

Кз

0

ствием

помех

произошло

искажение

кода,

5

1

1

и вместо 0100101

был принят

код

0100111.

6

0

0

Для обнаружения ошибки производят уже

7

1

'1

знакомые нам проверки на четность. Пер­

 

 

 

вая проверка: сумма П\

+

Лз +

Л6 +

Л 7 =

 

ошибочной позиции за­

== 0 +

0 +

1

+ 1

четна.

В

младший разряд номера

писываем 0.

Вторая

проверка: сумма

Л2 +

Лз + Л 6 +

Л7 = 1 +

0 + 1 + 1 не­

четна. Во второй разряд номера ошибочной позиции записываем 1. Третья проверка:

сумма Л4 + Л5 + Л6 + Л 7 = 0 + 1 + 1 + 1 нечетна. В

третий

разряд номера

ошибочной позиции записываем 1. Номер ошибочной позиции 110 =

6. Следователь­

но, символ шестой позиции следует изменить на обратный,

и мы получим правиль-

'ный код.

 

 

127


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

Таблица 24

Код, исправляющий одиночную и обнаруживающий двойную ошибки

Десятичное

 

 

 

Позиция

 

 

 

 

представле­

 

 

 

 

 

 

 

 

ние чисел

1

. 2

3

4

5

6

7

8

на позициях

3, 5, 6 и 7

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

1

1

1

0

1

0

0

1

0

2

0

1

0

1

0

1

0

1

3

1

0

0

0

0

1

1

1

4

1

0

0

1

1

0

0

1

5

0

1

0

0

1

0

1

1

6

1

1

0

0

I

1

0

0

7

0

0

0

1

1

1

1

0

8

1

1

1

0

0

0

0

1

9

0

0

1

1

0

0

1

1

10

1

0

1

1

0

1

0

0

11

0

1

1

0

0

1

1

0

12

0

1

1

1

1

0

0

0

13

1

0

1

0

1

0

1

0

14

0

0

1

0

1

1

0

1

15

1

1

1

1

1

1

1

1

для всей строки в целом. Чтобы осуществить такую проверку, следует к каждой строке кода добавить контрольные символы, записанные в дополнительной колонке (табл. 24, колонка 8). Тогда в случае одной ошибки проверки по позициям укажут номер ошибочной позиции, а проверка на четность — на наличие ошибки. Если проверки позиций укажут на наличие ошибки, а проверка на четность не фиксирует ошибки, значит в коде две ошибки.

Определением общего выражения для длины кодовой комбинации в кодах, обнаруживающих и исправляющих ошибки, занимались мно­ гие ученые. Однако точного выражения еще не найдено. Установлены лиЩь значения верхней и нижней границ количества добавочных символов, например, [8, 39, 42].

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

В свое время Р. Фанно и К. Шеннон [36, 47] доказали, что су­ ществуют коды, которые обеспечивают в стационарных каналах с ко­

128


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

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

Циклические коды строятся по принципу так называемого неопти­ мального декодирования, согласно которому исправлению подлежат не обязательно все возможные ошибки, а лишь ошибки, принадлежа­ щие некоторому фиксированному множеству. Неоптимальное деко­ дирование, с одной стороны, иногда не полностью использует возмож­ ность кодов, а с другой стороны, значительно упрощает процесс деко­ дирования. Циклические коды благодаря ряду своих свойств часто имеют преимущества перед сопоставимыми неалгебраическими кодами. Так, простейший код с проверкой на четность и циклический код с кодовым расстоянием между двумя любыми, комбинациями не мень­ ше двух казалось бы должны иметь одинаковую корректирующую способность. Однако циклический код обладает большей избыточностью за счет того, что возникает возможность обнаружения, кроме одиноч­ ных ошибок, и части парных ошибок, а это позволяет повысить про­ цент обнаруженных ошибок с 50% до 75% для кода с одним провероч­ ным разрядом [35].

Циклические коды получили свое название благодаря тому, что

каждая новая комбинация может быть получена из

некоторой обра­

зующей комбинации путем последовательного,

циклического,

сдвига.

 

Сдвиг осуществляется справа налево, причем крайний левый символ каждый раз переносится в конец комбинации. Например, совокупность комбинаций циклического кода из образующей 000101: 000101, 001010, 010100, 101000, 010001, 100010. Дальше комбинации будут повто­ ряться.

Циклический код можно представить в виде матрицы, причем все ее строки могут быть получены путем циклического сдвига обра­

5 3-1273

129