Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
разное / Методы преобраз-я сигналов и помехоустойчивое кодир-е [Н.Ф.Рожков].doc
Скачиваний:
148
Добавлен:
15.06.2014
Размер:
2.36 Mб
Скачать

2.4 Систематические коды с исправлением ошибок.

Рассмотрим систематические коды с обнаружением и исправлением ошибок.

Для простоты понимания рассмотрим случай исправления ошибок, вероятность появления которых велика. Это однократные ошибки. Допустим, что необходимо закодировать 15 команд. Для чего достаточно выбрать К=4. Пользуясь соотношением (2.12) найдем необходимое число разрядов n. Число разрядов получаем равное n=7. Отсюда число избыточных символов m=n-K=3. Три избыточных разряда позволяют использовать в качестве опознавателей трехразрядные двоичные последовательности. Составим таблицу опознавателей, начиная с вектора ошибки в младшем разряде, т.е. в порядке возрастания двоичных чисел (табл.2.8.).

Табл. 2.8

Векторы ошибок

Опознаватели

Векторы ошибок

Опознаватели

0000001

001

0010000

101

0000010

010

0100000

110

0000100

011

1000000

111

0001000

100

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

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

Далее необходимо определить проверочные равенства.

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

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

Табл. 2.9

N разряда

опознаватели

N разряда

Опознаватели

N разряда

Опознаватели

1

0001

7

0111

13

1101

2

0010

8

1000

14

1110

3

0011

9

1001

15

1111

4

0100

10

1010

16

10000

5

0101

11

1011

6

0110

12

1100

Из таблицы можно определить, что оптимальными кодами являются 7/4 и 15/11, где первое число равное n, а второе k, так как имея одно и то же число проверочных символов, допускают наибольшее число информационных символов.

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

Предположим, что в результате первой проверки на четность для младшего разряда опознавателя будет получена единица. Очевидно, это может быть следствием ошибки в одном из разрядов, опознаватели которых в младшем разряде имеют единицу. Исходя из этого, первое проверочное равенство будет включать символы 1, 3, 5 и 7 разрядов

а1а3а­­5а7=0

Единица во втором разряде опознавателя свидетельствует об ошибке, опознаватели которых имеют единицу во втором разряде. Отсюда второе проверочное равенство должно иметь вид:

а2а3а6а7=0.

Аналогично находим и третье равенство:

а4а5а6а7=0

чтобы обеспечить однозначное определение значений символов в проверочных разрядах при кодировании, необходимо выбрать номера этих разрядов так, чтобы каждый из них входил только в одно из этих равенств. Из таблицы 2.10 видно, что этим требованиям удовлетворяют разряды 1, 2, 4, 8 и т.д., в зависимости от числа избыточных символов.

Табл. 2.10

Порядковый номер проверки

Разряды, входящие в проверочные равенства

1

1, 3, 5, 7, 9, 11, 13, 15

2

2, 3, 6, 7, 10, 11, 14, 15

3

4, 5, 6, 7, 12, 13, 14, 15

4

8, 9, 10, 11, 12, 13, 14, 15

Исходя из этого для кода 7/4 можно определить правила при кодировании для определения значений избыточных символов из соответствующих информационных:

а13а5а7

а23а6а7 (2.33)

а45а6а7

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