Упрощение или преобразование форматирования элементов поля Galois
tp = gftuple(a,m)
tp = gftuple(a,prim_poly)
tp = gftuple(a,m,p)
tp = gftuple(a,prim_poly,p)
tp = gftuple(a,prim_poly,p,prim_ck)
[tp,expform] = gftuple(...)
Примечание
Эта функция выполняет вычисления в GF (pm), где p является простым. Для выполнения эквивалентных вычислений в GF (2m) примените .^ оператор и log функция для массивов Galois. Дополнительные сведения см. в разделах Пример: Возведение в степень и Пример: Элементный логарифм.
gftuple служит для упрощения многочлена или экспоненциального формата элементов поля Галуа или для преобразования из одного формата в другой. Для пояснения форматов, которые gftuple использует, см. раздел Представление элементов полей Галуа.
В этом обсуждении формат элемента GF (pm) называется «простейшим», если все экспоненты примитивного элемента равны
От 0 до m-1 для формата полинома
Также -Infили между 0 и pm-2 для экспоненциального формата
Для всех синтаксисов: a - матрица, каждая строка которой представляет элемент поля Галуа. Формат a определяет, как MATLAB интерпретирует его:
Если a - столбец целых чисел, MATLAB интерпретирует каждую строку как экспоненциальный формат элемента. Отрицательные целые числа эквивалентны -Inf при этом все они представляют нулевой элемент поля.
Если a имеет несколько столбцов, MATLAB интерпретирует каждую строку как полиномиальный формат элемента. (Каждая запись a должно быть целым числом от 0 до p-1.)
Все упомянутые выше экспоненциальные или полиномиальные форматы относятся к примитивному элементу, заданному вторым входным аргументом. Второй аргумент описан ниже.
tp = gftuple(a,m) возвращает простейший полиномиальный формат элементов, a представляет, где k-я строка tp соответствует k-ой строке a. Форматы относятся к корню примитивного многочлена по умолчанию для GF (2^m), где m является положительным целым числом.
tp = gftuple(a,prim_poly) является тем же, что и синтаксис выше, за исключением того, что prim_poly - вектор многочлена или вектор строки, в котором перечислены коэффициенты степени, m примитивный многочлен для GF (2^m) в порядке возрастания степеней.
tp = gftuple(a,m,p) является таким же, как tp = gftuple(a,m) за исключением того, что 2 заменяется простым числом p.
tp = gftuple(a,prim_poly,p) является таким же, как tp = gftuple(a,prim_poly) за исключением того, что 2 заменяется простым числом p.
tp = gftuple(a,prim_poly,p,prim_ck) является таким же, как tp = gftuple(a,prim_poly,p) за исключением того, что gftuple проверяет, prim_poly представляет многочлен, который действительно является примитивным. Если нет, то gftuple генерирует ошибку и tp не возвращается. Входной аргумент prim_ck может быть любым числом или символьным вектором; имеет значение только его существование.
[tp,expform] = gftuple(...) возвращает дополнительную матрицу expform. K-й ряд expform - простейший экспоненциальный формат элемента, который является k-ой строкой a представляет собой. Все остальные функции описаны в предыдущих частях этого раздела «Описание» в зависимости от входных аргументов.
В качестве другого примера, gftuple команда ниже формирует перечень элементов GF (p^m), расположенный относительно корня примитивного многочлена по умолчанию. Некоторые функции этой панели инструментов используют такой список в качестве входного аргумента.
p = 5; % Or any prime number m = 4; % Or any positive integer field = gftuple([-1:p^m-2]',m,p);
Наконец, две команды, приведенные ниже, иллюстрируют влияние формы входной матрицы. В первой команде вектор столбца обрабатывается как последовательность элементов, выраженных в экспоненциальном формате. Во второй команде вектор строки обрабатывается как единственный элемент, выраженный в полиномиальном формате.
tp1 = gftuple([0; 1],3,3) tp2 = gftuple([0, 0, 0, 1],3,3)
Выходные данные приведены ниже.
tp1 =
1 0 0
0 1 0
tp2 =
2 1 0
Выходные данные отражают, что в соответствии с примитивным многочленом по умолчанию для GF (33) уравнения ниже верны.
gftuple использует рекурсивные обратные вызовы для определения экспоненциального формата.