Здравствуйте, я работаю над реализацией кодов коррекции ошибок БЧХ.
Вычисления ведутся в поле галуа
построенное относительно примитивного полинома
(он используется как примитив по умолчанию для этого поля в матлабе) . Вычисления провожу в матлабе при помощи функций, встроенных в communication toolbox.
1. Вычисляю минимальные полиномы
для первых 24 нечетных членов -
.
2. Нахожу произведение этих минимальных полиномов получая generator polynomial(не знаю как его называют в русских терминах - порождающий ?)
3. Другой полином (в моем приложении - сообщение) m(x) делится на этот g(x). В результате формируется кодовое слово R(x) - полином, состоящий из остатка от деления и самого сообщения.
После этого я начинаю выполнять обратную операцию - делю R(x) на каждый из минимальных полиномов
. Ожидая в результате получить нулевые остатки от деления.
Надо отметить, что именно так оно и получается для других полей - в частности, выполнение аналогичных операций в поле
в результате деления на каждый из полиномов остаток равен нулю.
Однако при делении на
и
получаются результаты, отличные от нуля. Это, по-видимому, каким-то образом связано с тем, что минимальные полиномы для этих элементов имеют степени, меньшие 8:
;
Соответственно, и произведение из п.2 - g(x) имеет меньшую степень, чем
Помогите пожалуйста разобраться, что нужно сделать, чтобы получить правильное кодовое слово для этого поля.