gfconv

Умножьте полиномы по Полю Галуа

Описание

пример

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

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

пример

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

пример

c = gfconv(a,b,field) умножает два GF (pm) полиномы, где field матрица, содержащая m - кортеж всех элементов в GF (pm). p является простым числом, и m является положительным целым числом. aB, и 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]. aB, и c находятся в том же Поле Галуа.

пример

c = gfconv(polys,field) умножает GF (pm) полиномы в polys, где field матрица, содержащая m - кортеж всех элементов в GF (pm). p является простым числом, и m является положительным целым числом. aB, и 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 может быть или Представление Полиномов в Communications Toolbox или числовой вектор.

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

Пример: [1 2 3 4] полином 1+2x+3x2+4x3 в GF (5) описанный как вектор-строка.

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

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

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 объект с массивами Галуа. Для получения дополнительной информации смотрите Умножение и Деление Полиномов.

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

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