- •9.1. Прямое и обратное дискретное преобразование Фурье
- •9.2. Свойства дискретное преобразования Фурье.
- •9.3. Быстрое преобразование Фурье
- •9.4. Прореживание по времени.
- •9.5.Сокращение числа умножений.
- •9.6. Двоично-инверсионный порядок.
- •Инверсный 000 100 010 110 001 101 011 111
- •9.7. Прореживание по частоте.
- •16.1. Кодирование сигналов. Основные понятия и определения.
- •16.2. Основные типы арифметических кодов.
- •16.3. Эффективное кодирование
- •17.1. Помехоустойчивое кодирование
- •17.2. Основные принципы помехоустойчивого кодирования
- •17.3. Связь корректирующей способности кода с кодовым расстоянием
- •17.4. Построение кодов с заданной исправляющей способностью
- •Лекция 18. Кодирование информации систематическим кодом.
- •18.1. Систематические коды
- •В число исходных комбинаций не должна входить нулевая.
- •18.2. Код Хемминга
- •19.2. Полиноминальное представление циклических кодов.
- •19.3. Порождающий многочлен циклического кода
- •19.4. Разделимые и неразделимые циклические коды.
- •19.5. Матричное представление циклических кодов.
- •19.6.Выбор образующего полинома
- •20.1. Технические средства кодирования и декодирования циклических кодов
- •20.2. Перемножение и деление полиномов
- •20.3. Кодирующие устройства
- •Состояния ячеек схемы при делении
- •20.4. Кодирование с использованием проверочного полинома h(X)
- •20.5. Декодирующие устройства
- •Декодирование комбинации 1001011
- •20.6. Мажоритарное декодирование цикличных кодов
- •Процесс мажоритарного декодирования
19.2. Полиноминальное представление циклических кодов.
При описании циклических кодов удобно кодовые комбинации представлять в форме полиномов степени n-1 фиктивной переменной x.
V(x)=a0
x0+a1
x1+a2
x2+…+an-1
xn-1,
где ai
.
Так для кодовой комбинации 1010111 может быть записан полином
V(x)=1∙x0+0∙x1+1∙x2+0∙x3+1∙x4+1∙x5+1∙x6=1+x2+x4+x5+x6.
Представление в виде полиномов позволяет свести действия над комбинациями к действию над полиномами. При этом при приведении подобных членов коэффициенты при равных степенях складываются по mod2.
Например, x4+x4+x4=x4; x3+x3=0; x3+x3+x3=x3 и т.д.
Операция циклической перестановки есть результат простого умножения данного полинома на x.
Так, если V(x) = a0+a1 x+a2 x2+…+an-1 xn-1, то x∙V(x)= a0 x+a1 x2+a2 x3+…+an-1 xn, заменяем xn на 1, тогда V1(x) = an-1+ a0 x+a1 x2+a2 x3+…+an-2 xn-1.
При этом V1(x) = V(x) ∙x-an-1xn+an-1=V(x) ∙x-an-1(xn-1).
Теория циклических кодов базируется на теории полей, теории полей – ветвей современной алгебры, теории конечных полей (Галуа), n-мерном представлении арифметического пространства над полем Галуа GF(2), в котором каждому кодовому вектору a0 a1 a2 ….an-1 GF(2) однозначно сопоставляется полином
P(x)= a0+a1 x+a2 x2+…+an-1 xn-1 c коэффициентами из GF(2).
Если в этом пространстве выбрать некоторый полином g(x), то множество всех полиномов, которые делятся на g(x) без остатка, образуют подпространство, на котором определяется циклический код. Код V(x) является циклическим.
Таким образом, чтобы код V1(x) был циклическим, полином V1(x) должен делиться на g(x).
V1(x) = V(x) ∙x-an-1(xn-1).
Поскольку V(x)*x из условия цикличности V(x) делится на g(x), то многочлен хn-1 тоже должен делиться на g(x).
19.3. Порождающий многочлен циклического кода
Полиномиальный код является циклическим тогда и только тогда, когда полином g(x) является делителем многочлена хn-1. В этом случае многочлен g(x) называется порождающим многочленом циклического кода.
Многочлен хn-1 можно разложить на множители
xn-1=(х-1) ∙ (хn-1+хn-2+…+1),
следовательно, циклические коды существуют при любом n.
Число циклических n-разрядных кодов равно числу делителей многочлена xn-1. Для построения циклических кодов разработана таблица разложения многочленов xn-1 на неприводимые многочлены, т.е. такие, которые делятся только на единицу и на самого себя. Неприводимые многочлены дают наибольшее число остатков при делении. Это свойство используется для обнаружения ошибки при депозировании.
Рассмотрим, например, какие коды можно построить на основе многочлена х7+1 над полем GF(2).
x7+1=(х+1)(х3+х2+1)(х3+х+1).
Комбинируя, мы можем получить шесть делителей и, соответственно, получить шесть двоичных циклических кодов.
Код
(n,k)
определяется значениями n
и k, где k=n-
,
а
–
степень многочлена g(x)
– делителя х4-1, определяющего
код.
g1(x)=x+1, =1, k=6, код (7,6)(1 разряд проверочный на четность)
g2(x)=x3+x2+1, =3, k=4, код (7,4)
g3(x)=x3+x+1, =3, k=4, код (7,4)
g4(x)=(x+1)( x3+x2+1), =4, k=3, код (7,3)
g5(x)=(x+1)(x3+x+1), =4, k=3, код (7,3)
g6(x)=( x3+x2+1)(x3+x+1), =6, k=1, код (7,1)
При осуществлении операции циклической
перестановки мы принимаем хn-1.
Учитывая, что кодовые комбинации
складываются по mod2, то
хn+1=0 и хn-1=0,
т.е. х
1=0 или хn+1=хn-1.
С другой стороны, с учетом того, что
порождающий полином делит полином хn-1,
получим
x4+1=g(x) ∙h(x), и, соответственно
g(x) ∙h(x)=0.
Полином h(x) называется проверочным полиномом. Произведение проверочного и порождающего полиномов равно h(x) ∙g(x)=0. Это соотношение положено в основу декодирования циклических кодов.
