exponenta event banner

gf

Массив полей Галуа

Описание

пример

x_gf = gf(x) создает массив поля Галуа (GF), GF (2), из матрицыx.

пример

x_gf = gf(x,m) создает массив полей Галуа из матрицы x. Поле Галуа имеет 2m элементы, где m - целое число от 1 до 16.

пример

x_gf = gf(x,m,prim_poly) создает массив полей Галуа из матрицы x с помощью примитивного многочлена prim_poly.

Примеры

свернуть все

Укажите матрицу 0s и 1s.

x = [0 1 1; 0 1 0; 1 1 1];

Создание массива GF (2) изx.

x_gf = gf(x)
 
x_gf = GF(2) array. 
 
Array elements = 
 
   0   1   1
   0   1   0
   1   1   1

Установите порядок поля Галуа равным 16, где порядок равен 2m. Укажите матрицу элементов в диапазоне от 0 до 2m-1. Создайте массив полей Galois.

m = 4;
x = [3 2 9; 1 2 1];
y = gf(x,m)
 
y = GF(2^4) array. Primitive polynomial = D^4+D+1 (19 decimal)
 
Array elements = 
 
   3   2   9
   1   2   1

Создайте последовательность целых чисел. Создайте массив полей Galois в GF (25).

x = [17 8 11 27];
y = gf(x,5)
 
y = GF(2^5) array. Primitive polynomial = D^5+D^2+1 (37 decimal)
 
Array elements = 
 
   17    8   11   27

Определите все возможные примитивные многочлены для GF (25).

pp = primpoly(5,'all')
 
Primitive polynomial(s) = 
 
D^5+D^2+1
D^5+D^3+1
D^5+D^3+D^2+D^1+1
D^5+D^4+D^2+D^1+1
D^5+D^4+D^3+D^1+1
D^5+D^4+D^3+D^2+1
pp = 6×1

    37
    41
    47
    55
    59
    61

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

z = gf(x,5,'D5+D4+D3+D+1')
 
z = GF(2^5) array. Primitive polynomial = D^5+D^4+D^3+D+1 (59 decimal)
 
Array elements = 
 
   17    8   11   27

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

свернуть все

Входная матрица, заданная как матрица со значениями, большими или равными нулю. Функция использует это значение для создания массива GF.

  • Если не указать prim_poly входной аргумент, каждый элемент x должно быть целым числом в диапазоне [0, 2m–1].

  • При указании prim_poly входной аргумент, каждый элемент x должно быть 0 или 1.

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

Порядок примитивного многочлена, определяемый как положительное целое число от 1 до 16. Функция использует это значение для вычисления отдельного количества элементов в GF.

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

Примитивный многочлен, заданный как одна из следующих опций:

  • Двоичный вектор строки - этот вектор задает коэффициенты prim_poly в порядке восходящих сил.

  • Символьный вектор или строковый скаляр - это значение определяет prim_poly в текстовом представлении. Дополнительные сведения см. в разделе Вектор многочленов.

  • Положительное целое число - это значение определяет prim_poly в диапазоне [(2 м + 1), (2 м + 1 - 1)].

Если prim_poly не указан, см. «Полиномы примитивов по умолчанию» в списке полиномов примитивов по умолчанию, используемых для каждого массива поля Галуа GF (2m).

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

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

свернуть все

Массив поля Галуа, возвращаемый как переменная, которую MATLAB распознает как массив поля Галуа, а не как массив целых чисел. В результате при манипулировании переменной MATLAB работает в поле Галуа, указанном переменной. Например, если применить log функция для массива Галуа, MATLAB вычисляет логарифм в поле Галуа для этого массива Галуа, а не в поле вещественных или комплексных чисел.

Подробнее

свернуть все

Примитивные многочлены по умолчанию

В этой таблице перечислены примитивные многочлены по умолчанию, используемые для каждого массива полей Галуа GF (2m). Чтобы использовать другой примитивный многочлен, укажите prim_poly в качестве входного аргумента. prim_poly должно находиться в диапазоне [(2m + 1), (2m+ 1-1)] и должен указывать неприводимый многочлен. Дополнительные сведения см. в разделе Примитивные полиномы и представления элементов.

Значение мПолином примитива по умолчаниюЦелочисленное представление
1D + 13
2D2 + D + 17
3D3 + D + 111
4D4 + D + 119
5D5 + D2 + 137
6D6 + D + 167
7D7 + D3 + 1137
8D8 + D4 + D3 + D2 + 1285
9D9 + D4 + 1529
10D10 + D3 + 11033
11D11 + D2 + 12053
12D12 + D6 + D4 + D + 14179
13D13 + D4 + D3 + D + 18219
14D14 + D10 + D6 + D + 117475
15D15 + D + 132771
16D16 + D12 + D3 + D + 169643

Расчеты Галуа

В этой таблице перечислены операции, поддерживаемые полевыми массивами Galois.

ОперацияОписание
+ -Сложение и вычитание массивов Галуа
* / \Матричное умножение и деление массивов Галуа
.* ./ .\Элементное умножение и деление массивов Галуа
^Возведение матрицы в степень массива Галуа
.^Элементное возведение в степень массива Галуа
' .'Транспонирование массива Галуа
==, ~=Реляционные операторы для массивов Galois
всеTrue, если все элементы вектора Галуа ненулевые
любойTrue, если любой элемент вектора Галуа не равен нулю
convСвертка векторов Галуа
convmtxМатрица свертки вектора поля Галуа
deconvДеконволюция и многочленовое деление
detОпределитель квадратной матрицы Галуа
dftmtxДискретная матрица преобразования Фурье в поле Галуа
диагональДиагональные матрицы Галуа и диагонали матрицы Галуа
fftДискретное преобразование Фурье
filter (gf)Одномерный цифровой фильтр над полем Галуа
ifftОбратное дискретное преобразование Фурье
invОбратная матрица Галуа
длинаДлина вектора Галуа
logЛогарифм в поле Галуа
лютецийНижне-верхняя треугольная факторизация массива Галуа
minpolНайти минимальный полином для элемента Галуа
mldivideМатрица левого деления массивов Galois
polyvalВычислить полином в поле Галуа
разрядРанг массива Галуа
изменитьсяИзменить форму массива Галуа
корниНайти корни полинома через поле Галуа
размерРазмер массива Галуа
трельИзвлечь нижнюю треугольную часть массива Галуа
triuИзвлечь верхнюю треугольную часть массива Галуа
Представлен до R2006a