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 и 1с.

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. Создайте массив полей Галуа.

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

Создайте последовательность целых чисел. Создайте массив полей Галуа в 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 в области значений [(2m + 1), (2m+1 – 1)].

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

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

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

свернуть все

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

Подробнее о

свернуть все

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

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

Значение mПримитив полинома по умолчаниюЦелочисленное представление
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.

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