4.7.2. Метод декодирования
Пусть
соответственно переданный кодовый вектор и вектор ошибок. Принятый вектор
обозначим через и. Положим
Определяя многочлен
с помощью формулы (4.45), из соотношения (4.46) получаем
Так как
не имеет кратных корней, то, согласно формуле (4.43),
Следовательно,
Положим
Многочлен
может быть найден по принятому вектору. Имеет место следующее соотношение:
Так как
четное число, то положим
Далее будем предполагать, что
или, что то же самое,
Задача заключается в том, чтобы найти по заданному многочлену
такой многочлен
что
Сначала покажем, что многочлен, являющийся решением этой задачи, определяется однозначно с точностью до свободного члена. Пусть
-многочлен с коэффициентами из
не имеющий кратных корней. Если предположить, что
и
то
а следовательно,
Так как
то
так что
Так как
не имеет кратных корней, то
взаимно простые, а поэтому
Аналогично получаем, что
значит,
Далее для простоты рассмотрим лишь случай, когда
не имеет кратных корней. При этом, определяя
с помощью равенства (4.60), предварительно заменив в нем
на
получим
Если
-многочлен степени не больше
такой, что
то
Так как
является полным квадратом, то
Следовательно,
и с точностью до свободного члена решение определяется однозначно. Решение сравнения (4.61) имеет следующий вид:
Подставляя это решение в формулу (4.61), после несложных преобразований получаем
Пусть
матрица размера
у которой диагональные элементы с четными номерами равны 1, а остальные элементы равны
матрица размера
элемент которой равен
. В этих обозначениях уравнение (4.62) будет иметь следующий вид:
Из единственности решения следует, что матрица
является невырожденной, если
и вырожденной, если
Таким образом, мы получили следующий алгоритм декодирования. (Если
, будем считать, что
1) По принятому вектору находится
Если
то принимается решение о том, что ошибок при передаче не было. Если
то переходят к шагу 2.
2) Для каждого
находится остаток
от деления
3) Строится матрица
Если полученная матрица является вырожденной, то к
компоненте прибавляется единица и осуществляется переход к шагу 1. Если полученная матрица оказывается невырожденной, то находится решение
уравнения
и далее определяется
4) Подставляя в
последовательно элементы
находят все корни
уравнения
Компоненты принятого вектора с номерами
заменяются на противоположные.
Как следует из утверждения 4.29, минимальный вес
«хороших» кодов Гоппы значительно превышает правые части (4.54) и (4.55). Однако хороших методов исправления ошибок веса более чем
неизвестно. В тех случаях, когда ошибки веса до
исправляются, а ошибки большего веса обнаруживаются, вероятность ошибочного декодирования обычно тем меньше, чем больше
так что с этой точки зрения «хорошие» коды Гоппы более предпочтительны, чем примитивные БЧХ-коды, для которых
меньше приблизительно в полтора раза.
Пример 4.16 [53]. Пусть
Так как в этом случае многочлен
не должен иметь корней среди элементов
то он должен выбираться из многочленов, неприводимых над
или их произведений. Пусть а — примитивный элемент
его минимальный многочлен. Упорядочим элементы
следующим образом:
Так как элемент
имеет порядок 5 и его минимальный многочлен есть
то сумма корней
равна 1. Тогда, согласно утверждению 2.10, многочлен
является неприводимым над
и его можно использовать в качестве
. С помощью таблицы из задачи 2.59 можно проверить, что
В этом случае матрица (4.49) имеет вид
Если представить эту матрицу в двоичном виде, то она будет иметь следующий вид:
Так как ранг этой матрицы равен 8, то код имеет 8 проверочных и 8 информационных символов.
Предположим, что ошибки возникли в 1-й и 5-й компонентах. Тогда
Уравнения (4.59) имеют вид
Следовательно,
. В этом случае, как легко проверить,
Из примера 4.15 следует, что расширенный код кода Гоппы, рассмотренного в данном примере, эквивалентен циклическому
-коду с минимальным весом 6 (принадлежащему классу БЧХ-кодов из утверждения 4.4).