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

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

Для просмотра документации необходимо авторизоваться на сайте