gfdeconv

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

Синтаксис

[q,r] = gfdeconv(b,a)
[q,r] = gfdeconv(b,a,p)
[q,r] = gfdeconv(b,a,field)

Описание

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

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

пример

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

[q,r] = gfdeconv(b,a,field) делит два GF (pm) полиномы, где field является матрицей, содержащей m - кортеж всех элементов в GF (pm). p является простым числом, и m является положительным целым числом. b, a и 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 function.

Неприводимость 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. Алгебраически, деление полиномов по Полю Галуа эквивалентно deconvolving векторам, содержащим коэффициенты полиномов. Эта операция развертки использует арифметику по тому же Полю Галуа.

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