MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

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

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

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

GFROOTS
Поиск корней полинома в простом конечном поле

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

Синтаксис:

rt = gfroots(f);
rt = gfroots(f,m);
rt = gfroots(f,primpoly);
rt = gfroots(f,m,p);
rt = gfroots(f,primpoly,p);
[rt,rt_tuple] = gfroots(...);
[rt,rt_tuple,field] = gfroots(...);

Описание:

Для всех вариантов синтаксиса параметр f — это вектор-строка, содержащий коэффициенты полинома степени d в порядке возрастания степеней.

Замечание. Результат работы функции gfroots содержит каждый корень полинома ровно один раз, независимо от его кратности.

  • rt = gfroots(f)

Находит в конечном поле GF(2d) корни полинома, представленного вектором f. Результат rt — вектор-столбец, содержащий корни полинома в экспоненциальном формате. Экспоненциальный формат формируется по отношению к корню примитивного полинома, используемого для поля GF(2d) по умолчанию.

  • rt = gfroots(f,m)

Находит в конечном поле GF(2m) корни полинома, представленного вектором f. Параметр m должен быть целым числом, большим или равным степени полинома d. Результат rt — вектор-столбец, содержащий корни полинома в экспоненциальном формате. Экспоненциальный формат формируется по отношению к корню примитивного полинома, используемого для поля GF(2m) по умолчанию.

  • rt = gfroots(f,primpoly)

Находит в конечном поле GF(2m) корни полинома, представленного вектором f. Результат rt — вектор-столбец, содержащий корни полинома в экспоненциальном формате. Экспоненциальный формат формируется по отношению к корню примитивного полинома, представленного входным параметром primpoly. Этот параметр должен представлять полином степени m, являющийся примитивным для поля GF(2m). Здесь m — целое число, большее или равное степени полинома d.

  • rt = gfroots(f,m,p)

То же, что и rt = gfroots(f,m), но вычисления производятся в конечном поле GF(pm). Параметр p должен быть простым числом.

  • rt = gfroots(f,primpoly,p)

То же, что и rt = gfroots(f,primpoly), но вычисления производятся в конечном поле GF(pm). Параметр p должен быть простым числом.

  • [rt,rt_tuple] = gfroots(...)

Дополнительно возвращает матрицу rt_tuple, k-я строка которой представляет найденный корень rt(k) в полиномиальном формате. Полиномиальный (rt_tuple) и экспоненциальный (rt) форматы формируются по отношению к одному и тому же примитивному элементу.

  • [rt,rt_tuple,field] = gfroots(...)

Дополнительно возвращает матрицы rt_tuple и field. Описание матрицы rt_tuple приведено выше. Матрица field содержит список элементов расширенного поля. Этот список (field), а также полиномиальный (rt_tuple) и экспоненциальный (rt) форматы результата формируются по отношению к одному и тому же примитивному элементу.

Примеры:

Приведенный ниже код находит полиномиальный формат корней примитивного полинома в поле GF(16). Затем корни представляются в традиционной форме — как полиномы от переменной alpha. Поскольку primpoly одновременно является примитивным полиномом и анализируемым полиномом, переменная alpha сама является его корнем.

p = 2; m = 4;
primpoly = [1 0 0 1 1]; % Примитивный полином для поля GF(16)
f = primpoly; % Будем искать корни примитивного полинома
[rt,rt_tuple] = gfroots(f,primpoly,p);
% Отображаем корни в виде полиномов от alpha
for ii = 1:length(rt_tuple)
    gfpretty(rt_tuple(ii,:),'alpha')
end

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

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

 

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

Система Orphus

Яндекс.Метрика