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

Исправление единичных или обнаружение двойных ошибок

Для исправления однократной ошибки в принятой комбинации необходимо определить какой из разрядов был искажен. В циклическом коде опознавателем ошибки является остаток от деления многочленов ошибок на образующий полином P(x). При степени многочлена m=n-k он должен дать (2n-k-1) ненулевых остатков (нулевой остаток гласит об безошибочной передаче).

Следовательно, необходимым условием исправления любой одиночной ошибки является выполнение неравенства

2n-k – 1 ≥ = n (2.45)

где- общее число разновидностей ошибок в кодовой комбинации из n символов. Отсюда находим степень образующего многочлена

m = n - k ≥ log(n+1) (2.46)

и общее число символов в кодовой комбинации. Наибольшее значение k и n можно найти из таблицы 2.11

Таблица 2.11

m

1

2

3

5

6

7

8

9

10

n

1

3

7

15

63

127

255

511

1023

k

6

1

4

11

57

120

247

502

1013

Производящая матрица для кода (7,4), исправляющего однократные ошибки, приведена выше.

Обнаружение и исправление независимых ошибок произвольной кратности

Циклический код, исправляющий более одной ошибки в любом сочетании можно построить следующим образом [11]:

  1. По заданному числу информационных символов определяется m=n-k и находится образующий полином.

  2. Далее, рассматривая код для исправления однократной ошибки как некорректирующий n-разрядный код, определяем (n1 - n) дополнительных разрядов для обеспечения исправления одной ошибки в этом коде, и находят соответствующий образующий полином, т.е. строится (n1,n) код.

  3. Повторяя длинную процедуру n-раз, можно построить код для исправления независимых ошибок любой кратности.

Однако построенный таким образом код является неоптимальным с точки зрения числа избыточных символов. В этом отношении более совершенен код Боуза-Чоудхури [14], обеспечивающий минимальное число проверочных символов при заданном k. Математическая структура этого кода несколько отлична от рассмотренной ранее и характеризуется более сложными устройствами для обнаружения и исправления ошибок.

Обнаружение и исправление пачек ошибок

Для всех циклических кодов, исправляющих пачки ошибок, образующий многочлен P(x) представляет собой произведение неприводимого многочлена степени m на другой многочлен, вид которого определяется типом кода, а старшая степень с – длинной пачки ошибок, на исправление которой код рассчитан. Следовательно, показатель степени P(x) равен (c+m).

В общем случае степени m и c не могут принимать произвольных значений и для различных типов кодов связаны между собой различной функциональной зависимостью. Длина кодовой комбинации также является функцией m и с. Таким образом общей для всех типов кодов, исправляющих пачки ошибок, методики определения P(x) по заданному k не существует. Однако, зная закономерности построения отдельных классов кодов, можно составить таблицы для определения объема и корректирующей способности реализуемых кодов для различных значений m и c.

Из циклических кодов, предназначенных для исправления пачек ошибок, широко известны коды Файра, Абрамсона, Милласа-Абрамсона и Рида-Соломона. В отличии от указанных 3-х код Рида-Соломона позволяет исправить несколько пачек ошибок.