MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/
 

Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Вычисления в конечных полях (полях Галуа)

  В оглавление \ К следующему разделу \ К предыдущему разделу

GFPRIMFD
Поиск примитивных полиномов в конечном поле

Внимание! Приведенное ниже описание относится к версии 2.0 пакета Communications, (MATLAB 6.1). В версии 2.1 (MATLAB 6.5) поиск примитивных полиномов для двоичных конечных полей (в том числе расширенных) производится с помощью функции primpoly, а данная функция применяется только к полям GF(pm), где p — простое число, большее двух.

Синтаксис:

pol = gfprimfd(m);
pol = gfprimfd(m,opt);
pol = gfprimfd(m,opt,p);

Описание:

Для всех вариантов синтаксиса, если m = 1, возвращается результат pol = [1 1].

Полином представляется в виде вектора-строки, содержащего коэффициенты в порядке возрастания степеней.

pol = gfprimfd(m)

Возвращает вектор, строку, содержащий один примитивный полином для поля GF(2m). Входной параметр m должен быть положительным целым числом.

pol = gfprimfd(m,opt)

Осуществляет поиск одного или нескольких примитивных полиномов для поля GF(2m), где m — положительное целое число. Если m > 1, то результат pol зависит от второго входного параметра opt согласно приведенной ниже таблице.

Значение opt

Смысл результата pol

Формат результата pol

'min'

Один примитивный полином для поля GF(2m), имеющий минимально возможное число ненулевых коэффициентов

Вектор-строка, представляющий полином

'max'

Один примитивный полином для поля GF(2m), имеющий максимально возможное число ненулевых коэффициентов

Вектор-строка, представляющий полином

'all'

Все примитивные полиномы для поля GF(2m)

Матрица, каждая строка которой представляет один примитивный полином

Положительное целое число

Все примитивные полиномы для поля GF(2m), имеющие ровно opt ненулевых коэффициентов

Матрица, каждая строка которой представляет один примитивный полином

pol = gfprimfd(m,opt,p)

То же, что pol = gfprimfd(m,opt), однако в качестве характеристики поля вместо двойки используется значение параметра p, который должен быть простым числом. Таким образом, в данном случае вычисления производятся для поля GF(pm).

Примеры

Приведенный ниже код осуществляет поиск примитивных полиномов для поля GF(32), имеющих различные дополнительные свойства. Обратите внимание на то, что переменная fourterms оказывается пустой матрицей, поскольку для данного поля не существует примитивных полиномов, имеющих ровно четыре ненулевых коэффициента. Также отметьте, что переменная manyterms представляет один примитивный полином, имеющий ровно пять ненулевых коэффициентов, а переменная fiveterms представляет все примитивные полиномы, имеющие ровно пять ненулевых коэффициентов.

p = 2; m = 5; % Работаем в поле GF(32)
manyterms = gfprimfd(5,'max')
fiveterms = gfprimfd(5,5)
fourterms = gfprimfd(5,4)

Ниже приводится результат работы примера.

manyterms =
     1     1     1     1     0     1

fiveterms =
     1     1     1     1     0     1
     1     1     1     0     1     1
     1     1     0     1     1     1
     1     0     1     1     1     1

No primitive polynomial satisfies the given constraints.

fourterms =
[]

Алгоритм:

Функция gfprimfd тестирует полиномы на примитивность, используя для этого функцию gfprimck. Если параметр opt имеет значение 'min', 'max' или опущен, то полиномы конструируются путем формирования m-значных представлений целых чисел в системе счисления с основанием p. Последовательно перебирая целые числа в направлении увеличения или уменьшения, функция gfprimfd возвращает первый найденный полином, удовлетворяющий заданным условиям.

Сопутствующие функции: gfprimck, gfprimdf, gftuple, gfminpol

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:


Система Orphus