Упрощение или преобразование форматирования элемента поля Галуа
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 является простым. Для выполнения эквивалентных расчетов в ГФ (2m), применить .^
оператор и log
функция для массивов Галуа. Для получения дополнительной информации смотрите Пример: Экспоненция и Пример: Элементарный логарифм.
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
использует рекурсивные коллбэки для определения экспоненциального формата.