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

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

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