Файл: Бездудный, В. Г. Техника безопасности в шахтном строительстве.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
что полностью соответствует соотношениям, устанавливающим зави симость между числом информационных и проверочных разрядов систематических кодов.
Для вычисления основных параметров кода задается количество либо информационных символов, либо информационных комбинаций —
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 |