exponenta event banner

gfconv

Умножить многочлены на поле Галуа

Описание

пример

c = gfconv(a,b) возвращает вектор строки, который задает полиномиальные коэффициенты GF (2) в порядке возрастания. Возвращенный вектор является результатом умножения полиномов GF (2)a и b. Степень полинома полученного полинома GF (2) c равно степени a плюс степень b.

Дополнительные сведения см. в разделе Советы.

пример

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

пример

c = gfconv(a,b,field) умножает два полинома GF (pm), гдеfield - матрица, содержащая m-кортеж всех элементов в GF (pm). p - простое число, m - положительное целое число .a, b, и c находятся в том же поле Галуа.

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

пример

c = gfconv(polys) возвращает вектор строки, который задает полиномиальные коэффициенты GF (2) в порядке возрастания. Возвращенный вектор является результатом умножения полиномов GF (2), указанных вpolys. Степень полинома полученного полинома GF (2) c равно сумме степеней многочленов, содержащихся в polys. Использовать этот синтаксис при polys задает многочлены как массив ячеек символьных векторов или как строковый массив.

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

пример

c = gfconv(polys,field) умножает полиномы GF (pm) вpolys, где field - матрица, содержащая m-кортеж всех элементов в GF (pm). p - простое число, m - положительное целое число .a, b, и c находятся в том же поле Галуа.

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

Примеры

свернуть все

Умножьте 1 + 2x + 3x2 + 4x3 и 1 + x три раза. Представить многочлены как векторы строк, символьные векторы и строки.

c_rv = gfconv([1 1 0 1],[1 1])
c_rv = 1×5

     1     0     1     1     1

c_cv = gfconv('1 + x + x^3','1 + x')
c_cv = 1×5

     1     0     1     1     1

c_s = gfconv("1 + x + x^3","1 + x")
c_s = 1×5

     1     0     1     1     1

Результаты соответствуют 1 + x2 + x3 + x4.

Умножьте 1 + x + x4 и x + x2 на поле Галуа GF (3).

gfc = gfconv([1 1 0 0 1],[0 1 1],3)
gfc = 1×7

     0     1     2     1     0     1     1

Результат соответствует x + 2x2 + x3 + x5 + x6.

Умножьте 1 + 2x + 3x2 + 4x3 + 5x4 и 1 + x в поле Галуа GF (24).

field = gftuple([-1:2^4-2]',4,2);
c = gfconv('1 + 2x + 3x^2 + 4x^3 + 5x^4','1 + x',field)
c = 1×6

     2     6     7     8     9     6

Используйте gfpretty для отображения результата в полиномиальной форме.

gfpretty(c)
 
                                   2      3      4      5
                      2 + 6 X + 7 X  + 8 X  + 9 X  + 6 X 

Создайте массив ячеек, содержащий три многочлена, которые при умножении вместе приводят к многочлену генератора DVB-S2 для t = 3.

polyCell = {'1 + x + x3 + x5 + x14', ...
    '1 + x6 + x8 + x11 + x14','1 + x + x2 + x6 + x9 + x10 + x14'};
gp = gfconv(polyCell); % DVB-S2 for t=3

Используйте gfpretty для отображения результата в полиномиальной форме.

gfpretty(gp)
 
     4    6    8    10    11    13    16    17    20    24    25    26    27
1 + X  + X  + X  + X   + X   + X   + X   + X   + X   + X   + X   + X   + X  
 
              30    31    32    33    34    35    36    37    38    39    42
           + X   + X   + X   + X   + X   + X   + X   + X   + X   + X   + X  

Умножьте 1 + 2x + 3x2 + 4x3 + 5x4, 1 + x и 1 + x3 в поле Галуа GF (24).

field = gftuple((-1:2^4-2)', 4, 2);
c = gfconv(["1 + 2x + 3x^2 + 4x^3 + 5x^4","1 + x","1 + x3"],field)
c = 1×9

     4    13    14     9     2     1     7     8     8

Используйте gfpretty для отображения результата в полиномиальной форме.

gfpretty(c)
 
                          2      3      4    5      6      7      8
           4 + 13 X + 14 X  + 9 X  + 2 X  + X  + 7 X  + 8 X  + 8 X 

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

свернуть все

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

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

Пример: [1 2 3 4] является многочленом 1 + 2x + 3x2+4x3 в GF (5), выраженном в виде вектора строки.

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

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

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

Пример: '1 + x' является многочленом в GF (24), выраженный в виде символьного вектора.

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

Простое число, указанное как простое число.

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

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

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

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

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

Пример: ["1+x+x3+x5+x14","1+x6+x8+x11+x14"] - строковый массив многочленов.

Типы данных: cell | string

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

свернуть все

Полином поля Галуа, возвращаемый как вектор строки коэффициентов многочлена в порядке возрастающих степеней. Степень полинома полученного полинома GF (pm) c равно сумме степеней входных многочленов. c находится в том же поле Галуа, что и входные многочлены.

Совет

  • Функция gfconv выполняет вычисления в GF (pm), где p - простое число, а m - положительное целое число. Он умножает многочлены на поле Галуа. Для работы в GF (2m) можно также использовать conv функции gf объект с массивами Galois. Дополнительные сведения см. в разделе Умножение и деление многочленов.

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

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