- •Циклические коды.
- •1. Операции над двоичными многочленами.
- •Аппаратное умножение двоичных многочленов
- •Аппаратное деление многочленов.
- •2.Виды многочленов
- •Двойственные полиномы
- •Восьмеричное представление двоичных многочленов
- •Требования к образующему g(X).
- •Требования к образующему полиному.
- •Этап декодирования
- •Аппаратная реализация этапов кодирования и декодирования для циклических кодов.
- •Структурная схема кодирующего устройства.
- •Аппаратная реализация алгоритма декодирования.
- •Аппаратная реализация алгоритма декодирования.
Циклические коды.
Из всех известных корректирующих кодов наиболее простыми и эффективными являются циклические коды. Эти коды могут быть использованы как для обнаружения, так и для исправления независимых ошибок, так и, в особенности, для обнаружения и исправления серийных ошибок.
Ц. к. принадлежат линейным кодам. При этом среди всего многообразия линейных разделительных кодов можно выделить коды, у которых кодовые комбинации помимо условия Wmin dmin связаны дополнительным условием цикличности. Т.е. одна разрешенная кодовая комбинация может получаться из другой путем циклического сдвига.
011001101 110011010 100110101 001101011 и т.д.
Коды, удовлетворяющие условию циклического сдвига, называются циклическими.
3. Применение циклического кода основано на записи любой кодовой комбинации в виде полинома
1 0 1 1 0 1 0 1 ,где конкретные значения
x7 x6 x5 x4 x3 x2 x 1 коэффициенты при xi.
x7 x6 +x5 +x4 +x3 +x2 +x +1 Т.е. конкретная кодовая
комбинация двоичному многочлену.
При таком подходе действия над кодовыми комбинациями сводятся к действиям над многочленами.
а.) Сдвиг кодовой комбинации влево на i-разрядов эквивалентен умножению на xi, при этом, чтобы степень полинома не стала больше «n», т.е. кодовая комбинация не стала длинней.
1. Операции над двоичными многочленами.
I. Сложение многочленов.
n
C(x) = A(x) + B(x), где A(x) = aixi;
i=0
n
B(x) = bixi;
i=0
n
C(x) = cixi; где ci = ai bi;
i=0
Пример: A(x) = x4 + x + 1;
C(x) = x4 + x3 + x2 + 1
B(x) = x3 + x2 + x ;
II. Умножение многочленов.
2n i
C(x) = A(x)B(x) = cixi , где сi = ajbi-j ;
i=0 j=0
x4 + x + 1 1 0 0 1 1
x3 + x2 + x 1 1 1 0
x5 x2 x 0 0 0 0 0
x6 x3 x2 1 0 0 1 1
x7 x4 x3 1 0 0 1 1
1 0 0 1 1
x7 + x6 + x5 + x4 + x 1 1 1 1 0 0 10
x7x6x5x4x3x2x1 x7 + x6 + x5 + x4 + x
Приведение подобных членов осуществляется сложением по mod 2.