gfdeconv

Разделите полиномы по Полю Галуа

Описание

[q,r] = gfdeconv(b,a) возвращает частное q и остаток r как векторы-строки, которые задают GF (2) полиномиальные коэффициенты в порядке возрастающих степеней. Возвращенные векторы следуют из деления b aAB, и q находятся в GF (2).

Для получения дополнительной информации смотрите Советы.

пример

[q,r] = gfdeconv(b,a,p) делит два GF (p) полиномы, где p простое число. bA, и q находятся в том же Поле Галуа. bAQ, и r полиномы с коэффициентами в порядке возрастающих степеней. Каждый коэффициент находится в области значений [0, p–1].

[q,r] = gfdeconv(b,a,field) делит два GF (pm) полиномы, где field матрица, содержащая m - кортеж всех элементов в GF (pm). p является простым числом, и m является положительным целым числом. bA, и q находятся в том же Поле Галуа.

В этом синтаксисе каждый коэффициент задан в экспоненциальном формате, в частности [-Inf, 0, 1, 2...]. Элементы в экспоненциальном формате представляют field элементы [0, 1, α, α 2...] относительно некоторого примитивного элемента α GF (pm).

Примеры

свернуть все

Разделиться x+x3+x4 1+x в GF Поля Галуа (3) три раза. Представляйте полиномы как векторы-строки, векторы символов и строки.

p = 3;

Представляйте полиномы с помощью векторов-строк и разделите их на GF (3).

b = [0 1 0 1 1];
a = [1 1];
[q_rv,r_rv] = gfdeconv(b,a,p)
q_rv = 1×4

     1     0     0     1

r_rv = 2

Чтобы подтвердить выход, сравните исходные полиномы Поля Галуа с результатом добавления остатка к продукту частного и делителя.

bnew = gfadd(gfconv(q_rv,a,p),r_rv,p);
isequal(b,bnew)
ans = logical
   1

Представляйте полиномы с помощью векторов символов и разделите их на GF (3).

b = 'x + x^3 + x^4';
a = '1 + x';
[q_cv,r_cv] = gfdeconv(b,a,p)
q_cv = 1×4

     1     0     0     1

r_cv = 2

Представляйте полиномы с помощью строк и разделите их на GF (3).

b = "x + x^3 + x^4";
a = "1 + x";
[q_s,r_s] = gfdeconv(b,a,p)
q_s = 1×4

     1     0     0     1

r_s = 2

Используйте gfpretty функция, чтобы отобразить результат без остатка в полиномиальной форме.

gfpretty(q_s)
 
                                         3
                                    1 + X 

В GF Поля Галуа (3), выходные полиномы формы xk-1 для k в области значений [2, 8], которые являются равномерно делимыми 1+x2. Неприводимый полином по GF (p) степени, по крайней мере 2 примитивны, если и только если это не делится -1+xk равномерно для любого положительного целого числа k меньше, чем pm-1. Для получения дополнительной информации смотрите gfprimck функция.

Неприводимость 1+x2 по GF (3), наряду с полиномами, которые выводятся, указывает на это 1+x2 не примитивно для GF (32).

p = 3; m = 2;
a = [1 0 1]; % 1+x^2
for ii = 2:p^m-1
   b = gfrepcov(ii); % x^ii
   b(1) = p-1; % -1+x^ii
   [quot,remd] = gfdeconv(b,a,p);
   % Display -1+x^ii if a divides it evenly.
   if remd==0
      multiple{ii}=b;
      gfpretty(b)
   end
end
 
                                         4
                                    2 + X 
 
                                         8
                                    2 + X 

Входные параметры

свернуть все

Полином поля Галуа в виде вектора-строки, вектора символов или строки. b может быть или Символьное представление Полиномов или числовой вектор.

a и b должен оба быть GF (p) полиномы или GF (pm) полиномы, где p является главным. Значение p столь же задано, когда включено, 2 когда не использовано, или подразумеваемый, когда field задан.

Пример: '1 + x' полином в GF (24) описанный как вектор символов.

Типы данных: double | char | string

Полином поля Галуа в виде вектора-строки, вектора символов или строки. a может быть или Символьное представление Полиномов или числовой вектор.

a и b должен оба быть GF (p) полиномы или GF (pm) полиномы, где p является главным. Значение p столь же задано, когда включено, 2 когда не использовано, или подразумеваемый, когда field задан.

Пример: [1 2 3 4] полином 1+2x+3x2+4x3 в GF (5) описанный как вектор-строка.

Типы данных: double | char | string

Простое число в виде простого числа.

Типы данных: double

m- всех элементов в GF (pm) в виде матрицы. field матрица, перечисляющая все элементы GF (pm), расположенный относительно того же примитивного элемента. Чтобы сгенерировать m - кортеж всех элементов в GF (pm), использовать

field =gftuple([-1:p^m-2]',m,p)
Коэффициенты, заданные в экспоненциальном формате, представляют полевые элементы в GF (pm). Для объяснения этих форматов смотрите Элементы Представления Полей Галуа.

Типы данных: double

Выходные аргументы

свернуть все

Полином поля Галуа, возвращенный как вектор-строка из полиномиальных коэффициентов в порядке возрастающих степеней. q частное от деления b a и находится в том же Поле Галуа как входные полиномы.

Остаток деления, возвращенный как скаляр или вектор-строка из полиномиальных коэффициентов в порядке возрастающих степеней. r остаток, следующий из деления b a.

Советы

  • Функция gfdeconv выполняет расчеты в GF (pm), где p является главным, и m является положительным целым числом. Это делит полиномы по Полю Галуа. Чтобы работать в GF (2m), используйте deconv функция gf объект с массивами Галуа. Для получения дополнительной информации смотрите Умножение и Деление Полиномов.

  • Чтобы разделить элементы Поля Галуа, можно также использовать gfdiv вместо gfdeconv. Алгебраически, деление полиномов по Полю Галуа эквивалентно развертке векторов, содержащих коэффициенты полиномов. Эта операция развертки использует арифметику по тому же Полю Галуа.

Представлено до R2006a