Gfdeconv против полиномиального двоичного деления в MATLAB - PullRequest
0 голосов
/ 05 июля 2018

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

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

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

Однако я получаю остаток от [0 0 1].

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

Спасибо.

1 Ответ

0 голосов
/ 05 июля 2018

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

[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 - ожидаемый результат, также с младшим битом первым.

...