Gfdeconv против полиномиального двоичного деления в MATLAB

Я прочитал "Безболезненное руководство по алгоритмам обнаружения ошибок CRC " Росса Н. Уильямса, где он использует двоичное деление, чтобы получить остаток от деления исходного сообщения 1101011011 и поли 10011, Он прибывает на остаток 1110,

Я пытался использовать gfdeconv MATLAB с приведенным выше примером. В описании в документации говорится, что функция "делит многочлены на поле Галуа". Я ввел следующее в MATLAB:

[~, remd] = gfdeconv([1 1 0 1 0 1 1 0 1 1], [1 0 0 1 1]) 

Тем не менее, я получаю остаток от [0 0 1],

Я что-то здесь упускаю? Почему gfdeconv MATLAB не выдает тот же остаток, что и в примере из примера Williams? Я понимаю, что я, вероятно, предполагаю перевернуть и / или транспонировать поли и / или оригинальное сообщение, но я не уверен в методе.

Спасибо.

1 ответ

Решение

Вы должны предоставить коэффициенты в другом порядке, то есть коэффициент 1 (x0) в первую очередь. Затем вам нужно сначала добавить добавленные нули, поэтому правильное использование:

[q, r] = gfdeconv([0 0 0 0 1 1 0 1 1 0 1 0 1 1], [1 1 0 0 1])

Результат:

q =

     0     1     0     1     0     0     0     0     1     1


r =

     0     1     1     1

где r является ожидаемым результатом, также с младшим битом первым.

Другие вопросы по тегам