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

Выбор образующего полинома

Построение циклического кода, как и других групповых, приведенных выше, начинается с определения количества передаваемых команд N=2k . Затем в зависимости от заданной корректирующей способности находится общее число разрядов кода, включая избыточные. Определив n, находим число избыточных разрядов m=n-k. Как известно, степень образующего полинома должна быть равна m.

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

Наибольшее число остатков, равное (2m -1), исключая нулевой, может обеспечить неприводимый многочлен степени m (т.е. не делящийся ни на какой другой).

Известно [13], что любой двучлен (xn +1) = (+1) может быть представлен произведением всех без исключения неприводимых многочленов, степени которых являются делителями числа z (от 1 до z включительно). Следовательно, для любого z существует по крайней мере один неприводимый многочлен степени z, входящий сомножителем в двучлен (2n +1).

Таким образом, зная n и z нетрудно выбрать образующий многочлен. При этом выбрать необходимо так, чтобы число остатков было не меньше значности кода n. Поэтому, выбирая тот или иной неприводимый многочлен, степень которого равна m, необходимо проверить количество остатков.

Например, выберем образующий полином P(x) для кода (15,11), где m=4. Двучлен (x15+1) = (+1) запишем в виде произведения неприводимых многочленов.

(x15+1) = (x+1) (x2+x+1) (x4+x+1) (x4+x3+1) (x4+x3+x2+x+1) (2.43)

При проверке можно выяснить, что в качестве образующих многочленов можно выбрать (x4+x+1) и (x4+x3+1), т.к. они дают не менее 15-ти остатков, а (x4+x3+x2+x+1) дает всего 5 остатков. Следовательно, в качестве образующего его использовать нельзя.

Для кода (7,4) можно выбрать образующий многочлен аналогично.

(x7+1) = (+1)= (x+1) (x3+x+1) (x3+x2+1) (2.44)

В равной степени подходят оба многочлена степени m=3.

Обнаружение и исправление ошибок циклическим кодом заданной кратности

Простейшим циклическим кодом кратности является код, обеспечивающий обнаружение однократных ошибок. Вектору однократной ошибки соответствует одночлен xi , степень которого i может принимать значения от 1 до n. Для обнаружения ошибки одночлен xi не должен делиться на образующий полином P(x). Среди неприводимых многочленов, входящих в разложение двучлена (xn+1), является многочлен степени (x+1). Таким образом, в качестве образующего полинома выбираем P(x)=x+1.

Остаток от деления любого многочлена на (х+1) может принимать только два значения: 0 или 1. Следовательно, при любом значении информационных символов необходим только один избыточный разряд. Значение символа этого разряда обеспечивает четность числа единиц в кодовой комбинации.

Данный код обеспечивает обнаружение всех ошибок нечетной кратности.

Например, для кода при k=4 информационная матрица

│0 0 0 1│

Ik = │0 0 1 0│

│0 1 0 0│

│1 0 0 0│

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

10000│11

────┼───

11 остатки

───

10 1 │1│

11 1 Hm = │1│

─── 1 │1│

10 1 │1│

11

───

10

11

───

1

Следовательно, производящая матрица будет иметь вид

║0 0 0 1 │1║

P(5,4) = ║0 0 1 0 │1║

║0 1 0 0 │1║

║1 0 0 0 │1║