2.1.8. Простой итеративный код
Простая система кодирования, которая, как оказывается, имеет различные применения, может быть построена следующим образом. Предположим, что нужно передать девять информационных символов. Эти девять символов можно расположить в виде квадратной матрицы, как показано в табл. 2.2, с проверочными символами, добавленными к каждой строке и к каждому столбцу. Один оставшийся символ является общим проверочным символом на четность.
Таблица 2.2. (см. скан) Простой итеративный блоковый код с проверкой на четность по строкам и по столбцам
Легко показать, что кодовое расстояние этого кода равно 4. Прежде всего, одиночная ошибка приведет к тому, что проверки на четность, соответствующие строке и столбцу, содержащим ошибку, не будут выполняться. Таким образом, координаты одиночной ошибки однозначно определяются по номерам строки и столбца, в которых не выполняется проверка на четность. Поскольку эти номера различны для различных одиночных ошибок, кодовое расстояние будет не меньше 3. Поскольку наличие проверки гарантирует, что все кодовые слова имеют четный вес, кодовое
расстояние будет не меньше 4. Вместе с тем кодовое расстояние в точности равно 4, поскольку код с кодовым расстоянием 5 позволяет однозначно распознавать все двукратные ошибки. В рассматриваемом коде этого сделать нельзя, поскольку ошибки в символах приводят в точности к тем Же невыполненным проверкам (синдрому), что и ошибки в символах
Проверочная матрица этого кода имеет вид
Следует заметить, что матрица Н может быть записана в нескольких эквивалентных формах. Одна из этих форм, имеющая определенные преимущества при реализации в некоторых ситуациях, может быть получена добавлением четвертой, пятой и шестой строк к последней строке, в результате чего последняя строка становится равной
вычисляется теперь как сумма Аналогично можно вычислять как сумму Удобство, достигаемое при вычислении как суммы состоит в том, что при таком способе все столбцы вычисляются абсолютно одинаково. Этот принцип справедлив при любых размерах массива. Таким образом, описанный метод оказывается полезным в случае, когда данные естественно формируются в виде массива, как, например, знаки в шине для передачи данных или на бумажной ленте, когда длина серии знаков не фиксирована. Во многих практических случаях, связанных с пересылкой данных, обычно вводится проверка на четность для каждого знака. Нетрудно при этом вычислить знак общей проверки, записав серию знаков в регистре, использующем сложение по модулю 2.