Декодирование групповых кодов
Для декодирования групповых кодов используется так называемая проверочная матрица кода H размерности k x n.
Матрица H называется проверочной для группового кода с порождающей матрицей V, если каждая строка H ортогональна любой строке матрицы V:
В общем случае H может быть найдена методом подбора, но для групповых кодов с заданной канонической порождающей матрицей легко получить матрицу H в следующем виде:
Сам процесс декодирования группового кода состоит в том, что принимаемая кодовая комбинация b рассматривается как матрица-строка и умножается векторно на HT:
Если b – рабочая комбинация, то результат R – ненулевая матрица-строка.
Если b не является рабочей комбинацией, а представляет собой результат наложения вектора ошибки (b = a ⊕ ei), то
то есть Ri не зависит от вида принимаемой рабочей комбинации, а определяется только вектором ошибки.
Обобщая все вышеизложенное, можно определить алгоритм декодирования групповых кодов в двух основных режимах: в режиме обнаружения ошибок и в режиме исправления ошибок.
- Режим обнаружения ошибок.
Если [R] = [0], то разрешается декодирование b = a, где b – принятая кодовая комбинация, a – рабочая кодовая комбинация.
Если [R] ≠ [0], то обеспечивается защитный отказ.
- Режим исправления ошибок.
Для всех возможных векторов ошибки ei исправляемой кратности s определить
. (Ri – синдром ei.)
Все результаты занести в таблицу.Если каждому вектору ошибки однозначно соответствует свой синдром, то можно исправлять ошибки по алгоритму.
Алгоритм исправления ошибок в кодовых комбинациях группового кода (принцип синдромного декодирования):
- принятую комбинацию b = a ⊕
ei умножить векторно на HT:
- в таблице найти синдром Ri и определить соответствующий ему вектор ошибки ei;
- найденный вектор ошибки сложить по модулю два с принятой комбинацией:
b ⊕ ei = a ⊕ ei ⊕ ei = a; - декодировать a как безошибочную исходную рабочую комбинацию.