gfdeconv

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

Описание

[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 функция.

Неприводимость 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 - положительным целым числом. Он делит полиномы на поле Галуа. Для работы в ГФ (2m), использовать deconv функции gf объект с массивами Galois. Для получения дополнительной информации смотрите Умножение и Деление Полиномов.

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

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