- •Применение циклических кодов в каналах с независимыми ошибками
- •1. Кодирование при помощи порождающего полинома g(X)
- •1.1. Общие принципы кодирования
- •1.2. Кодирующие устройства бчх-кодов, построенные при помощи порождающего полинома g(X)
- •С предварительным умножением на x3
- •2. Декодирование циклических кодов (бчх-кодов)
- •2.1. Принципы декодирования бчх-кодов по алгоритму Меггита (декодер Меггита)
- •2.2. Проектирование декодеров Меггита
- •2.3. Декодер Меггита для укороченных бчх-кодов
Применение циклических кодов в каналах с независимыми ошибками
1. Кодирование при помощи порождающего полинома g(X)
1.1. Общие принципы кодирования
Полином циклического кода можно представить в виде
(1.1)
где cj – коэффициенты полинома избыточной части ; ui – коэффициенты исходного полинома информационной части
Полином информационной части u(x) сдвинут в сторону старших разрядов на k символов, что эквивалентно умножению информационного полинома на xk. Представим полином циклического кода в виде
(1.2)
Поскольку полиномы циклических кодов делятся на порождающий полином g(x) без остатка, то выражение можно записать в виде
(1.3)
где g(x) – порождающий полином; q(x) – частное от деления полинома u(x)xk на порождающий полином g(x); r(x) – остаток от деления полинома u(x)xk на порождающий полином g(x).
Таким образом, для определения избыточной части r(x) полинома циклического систематического кода V(x) необходимо определить остаток от деления полинома u(x)xk на порождающий полином g(x). Указанный способ достаточно прост и эффективно алгоритмизируется, поэтому нашел наибольшее применение на практике.
Пример 1.1. Для циклического кода (7,4,3), заданного порождающим полиномом g(x) = 1 x2 x3, и информационного полинома u(x) = 1 рассчитать избыточные символы.
Определим остаток от деления полинома u(x)xk = 1x3 = x3 на порождающий полином g(x) = 1 x2 x3.
Рассчитанную избыточную часть представим в виде полинома r(x) = 1x2. Полином V(x) может быть представлен в виде V(x) = 1x2x3. Вектор V может быть представлен в виде V = (1011000).
Кодирование при помощи порождающего полинома g(x) для кодов с четным минимальным кодовым расстоянием проводится по указанному алгоритму, за исключением одного нюанса. Он связан с видом порождающего полинома, который, как известно, получается путем умножения порождающего полинома g(x) кода с нечетным минимальным кодовым расстоянием на полином (1x). Все остальные вычисления с применением полученного порождающего полинома проводятся аналогично.
Пример 1.2. Для циклического кода (7,3,4), заданного порождающим полиномом g(x) = 1 x2 x3, и информационного полинома u(x) = 1 рассчитать избыточные символы.
Построим порождающий полином для заданного кода
g(x) = (1 x2 x3)·(1 x) = 1 x2 x3 x x3 x4 = 1 x x2 x4.
Определим остаток от деления полинома u(x)xk = 1x4 = x4 на порождающий полином g(x) = 1 x x2 x4:
Рассчитанную избыточную часть представим в виде полинома r(x) = = 1 x x2. Полином V(x) может быть представлен как V(x) = 1 x x2 x4. Вектор V может быть представлен в виде V = (1110100).
Кодирование при помощи порождающего полинома g(x) для укороченных циклических кодов не имеет принципиальных отличий. Это объясняется тем, что количество избыточных символов для неукороченного и полученного от него укороченного циклического кода, как известно, совпадает. Укорочению подвергается информационная часть, что не влияет на алгоритм кодирования.