Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций ТИК.doc
Скачиваний:
381
Добавлен:
10.02.2016
Размер:
7.57 Mб
Скачать

Тема 6. Построение кодов заданой помехоустойчивости. Применение недвоичных помехоустойчивых кодов.

Лекция 9

Циклические коды.

Напомним еще раз, о методе кодирования в циклических линейных кодах.

Образование кодовых слов (кодирование) KC выполняется путем умножения информационного полинома (информационный полином – полином с коэффициентами, являющимися информационной последовательностью) Иi(X) порядка i<k на образующий полином:

КСm+i(Х) = gm(X) * Иi(X) .

9.1 Матричное описание циклических кодов.

Циклические коды можно, как и любые линейные коды, описывать с помощью матриц.

Вспомним, что KC(X) = gm(X)*И(Х) .

Это соответствует описанному выше упрощенному способу умножения матриц:

Образующая матрица ||OM|| это (k*n) - это матрица, при помощи которой происходит построение циклического кода. Образующая матрица получается в результате k- кратного циклического сдвига кодовой комбинации, соответствующей первой строке образующей матрицы. Первая строка образующей матрицы получается путем добавления слева от коэффициентов полинома gm(X) такого числа нулей, чтобы общая длина кодовой комбинации была равна n.

Например, образующий полином имеет вид G(X)=111010001=X8+X7+X6+X4+1 при n=15 и k=7. Тогда первая строка образующей матрицы примет вид: 000000111010001, а вся матрица:

0 0 0 0 0 0 1 1 1 0 1 0 0 0 1

0 0 0 0 0 1 1 1 0 1 0 0 0 1 0

0 0 0 0 1 1 1 0 1 0 0 0 1 0 0

0 0 0 1 1 1 0 1 0 0 0 1 0 0 0

0 0 1 1 1 0 1 0 0 0 1 0 0 0 0

0 1 1 1 0 1 0 0 0 1 0 0 0 0 0

1 1 1 0 1 0 0 0 1 0 0 0 0 0 0

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

9.2 Коды Боуза — Чоудхури — Хоквингема (бчх)

Коды Боуза — Чоудхури — Хоквингема (БЧХ) являются подклассом циклических кодов. Их отличительное свойство — возможность построения кода БЧХ с минимальным расстоянием d не меньше заданного. Это важно, потому что, вообще говоря, построение кода с расстоянием не меньше заданного это очень сложная задача.

В БЧХ-коде образующий полинома представляет собой произведение нескольких неприводимых полиномов – мы далее посмотрим каких.

БЧХ коды, вообще-то говоря , как и линейные циклические коды в целом не обязательно являются двоичными., то есть с символами, из которых состоит код =1 или 0.

Символами КС слова могут быть например числа вида qm представленные в виде полиномов с недвоичными коэффициентами. Мы же рассматриваем двоичные коды, что позволяет избежать значительных усилий на знакомство с теорией полей Галуа.

В БЧХ-кодах построение образующего полинома, в основном, зависит от двух параметров: от длины кодового слова n=k+r и от числа исправляемых ошибок S.

Особенностью кода является, то что для исправления числа ошибок S>=2 еще недостаточно условия, что между комбинациями кода минимальное кодовое расстояние dmin=2*S+1. Необходимо также, чтобы длина кода n удовлетворяла условию

n = 2h - 1, (1)

где h -любое целое число.

При этом длина кода n всегда будет нечетным числом и принимать значения: 1,3,7,15,31,63,127..и.т.д, т.е не все значения динымогут быть заданы пользователем.

Выбранная по формуле (1) величина n определяет число контрольных символов r.

r<=h*S<=log2(n+1)*S. (2)

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

Построение образующего полинома G(X) производится при помощи таблицы неприводимых полиномов M(X). Образующий полином представляет собой произведение неприводимых полиномов и является их наименьшим общим кратным (НОК). Максимальный номер неприводимого полинома в их произведении

p = 2*S - 1 . (3)

Порядок полинома используется при определении числа сомножителей. Для построения G(X) используются только нечетные полиномы.

Например, при S=4 ими будут: M1(X); M3(X); M5(X); M7(X). Старший из них имеет номер p=2*S-1=7. Число их равно 4, т.е. равно числу исправляемых ошибок.

Число неприводимых полиномов, участвующих в построении образующего полинома

V = S, (4)

а старшая степень

v= h (5)

указывает строку в таблице неприводимых полиномов, из которой обычно выбирается полином для построения G(X). Для построения образующего полинома используются только нечетные полиномы степени v. Иногда допускается использование полиномов и меньшей степени. Степень образующего полинома, полученного в результате перемножения выбранных неприводимых полиномов,

b = r = v*S = h*S (6)

В общем виде G(X)=НОК[M1(X)M3(X)...Mp(X)].

Пример: Рассмотрим построение циклического кода длиной в 15 разрядов, исправляющего одну или две ошибки. Согласно (1) ,

n = 2h - 1, откуда h=log2(n+1) = log216 = 4

Число контрольных символов k, согласно (2),

r=log2(n+1)*S=4*2=8.

Номер старшего из неприводимых полиномов, cогласно (3)

p = 2*S-1 = 2*2 -1 = 3.

Количество неприводимых полиномов, участвующих в построении образующего полинома, согласно (4),

V= S = 2,

cтаршая степень, согласно (5),

v = h = 4.

Степень образующего полинома , согласно (6),

b = r = 8.

Из таблицы неприводимых полиномов выбираем полиномы степени v=4, из них выбираем два (V=2) неприводимых полинома , номер старшего из которых равен 3(p=3), т.е. выбираем неприводимые полиномы p1 и p3 .

G(X)=M1(X)*M3(X) = 10011 * 11111 = 111010001 = X8+X7+X6+X4+1.

Число информационных разрядов

k = n - m = 15 - 8 = 7.

Первая строка образующей матрицы получается путем добавления слева от G(X) такого числа нулей, чтобы общая длина кодовой комбинации была равна n. Образующая матрица получается в результате m кратного циклического сдвига кодовой комбинации, соответствующей первой строке образующей матрицы.

0 0 0 0 0 0 1 1 1 0 1 0 0 0 1

0 0 0 0 0 1 1 1 0 1 0 0 0 1 0

0 0 0 0 1 1 1 0 1 0 0 0 1 0 0

||ОМ|| = 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0

0 0 1 1 1 0 1 0 0 0 1 0 0 0 0

0 1 1 1 0 1 0 0 0 1 0 0 0 0 0

1 1 1 0 1 0 0 0 1 0 0 0 0 0 0

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