Простой итеративный код
Простая система кодирования, которая, как оказывается, имеет различные применения, может быть построена следующим образом. Предположим, что нужно передать девять информационных символов. Эти девять символов можно расположить в виде квадратной матрицы, как показано в табл. 1, с проверочными символами, добавленными к каждой строке и к каждому столбцу. Один оставшийся символ P7 является общим проверочным символом на четность.
Таблица 1. Простой итеративный блоковый код с проверкой на четность по строкам и по столбцам
|
.
Следует заметить, что матрица Н может быть записана в нескольких эквивалентных формах. Одна из этих форм, имеющая определенные преимущества при реализации в некоторых ситуациях, может быть получена добавлением четвертой, пятой и шестой строк к последней строке, в результате чего последняя строка становится равной
и Р7 вычисляется теперь как сумма Р1, Р2 и Р3. Аналогично Р7 можно вычислять как сумму Р4, Р5 и Р6. Удобство, достигаемое при вычислении Р7 как суммы Р1, Р2 и Р3, состоит в том, что при таком способе все столбцы вычисляются абсолютно одинаково. Этот принцип справедлив при любых размерах массива. Таким образом, описанный метод оказывается полезным в случае, когда данные естественно формируются в виде массива, как, например, знаки в шине для передачи данных или на бумажной ленте, когда длина серии знаков не фиксирована. Во многих практических случаях, связанных с пересылкой данных, обычно вводится проверка на четность для каждого знака. Нетрудно при этом вычислить знак общей проверки, записав серию знаков в регистре, использующем сложение по модулю 2.
Полиномиальные коды
В предыдущих разделах кодовое слово (п,k) -кода представлялось в виде набора длиной п:
.
Другой
способ представления того же кодового
слова состоит в том, чтобы считать
элементы
коэффициентами многочлена от х.
Таким
образом,
Используя это обозначение, можно определить полиномиальный код как множество всех многочленов степени, не большей п – 1, содержащих в качестве множителя некоторый фиксированный многочлен g(x). Многочлен g(x) называется порождающим многочленом кода. Для того чтобы иметь возможность умножать такие кодовые многочлены, разлагать их на множители и производить над ними другие операции, нужно уметь складывать, вычитать, умножать и делить их коэффициенты. Этого легко добиться, если потребовать, чтобы все коэффициенты были элементами некоторого конечного поля.
