Заданы порождающая матрица G и принятый кодовый вектор v.
Требуется:
1) определить проверочную матрицу кода H;
2) определить кодовое расстояние кода dk по проверочной матрице H;
3) декодировать принятый кодовый вектор v.
Решение
1) Для определения проверочной матрицы кода H в порождающей матрице G найдем три разных столбца (опорных) с единственной единицей и сгруппируем опорные столбцы слева так, чтобы они образовали единичную матрицу
,
где
, .
Проделанной группировке столбцов соответствует следующая перестановка
Далее на основании формируем проверочную матрицу по следующему правилу: сначала формируем матрицу
в которой делаем перестановку столбцов, обратную
что дает проверочную матрицу
2) определим кодовое расстояние кода dk по проверочной матрице H, для этого составим матрицу N из небазисных столбцов проверочной матрицы
Далее вычисляем хемминговы веса всех одиночных столбцов матрицы N (обозначим это как q=1)
. Среди весов выбираем минимальный wmin. Оцениваем кодовое расстояние как dк(1)=wmin+1. В нашем случае wmin=3, а dк(1)=4
3) декодировать принятый кодовый вектор v.
Сделаем коррекцию ошибок в принятом векторе. Сначала вычислим синдромы для всех однократных ошибок по формуле
Получим
Вектор ошибка, e Синдром, c
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 0 0
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 1 1 1
0 0 0 1 0
0 0 0 0 1
Для принятого вектора v = (0 1 1 1 1 0 0 0), вычислим синдром, который в транспонированном виде будет равен сумме столбцов под номерами 2, 3, 4 и 5
Такого синдрома в таблице нет, то есть, ошибка отсутствует