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

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

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

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

GFPRIMCK
Проверка полинома в конечном поле на примитивность

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

Синтаксис:

ck = gfprimck(a);
ck = gfprimck(a,p);

Описание:

ck = gfprimck(a)

Возвращает флаг ck, индицирующий, является ли полином в конечном поле GF(2) неприводимым или примитивным. Входной параметр a — вектор-строка, содержащий коэффициенты полинома в порядке возрастания степеней. Каждый коэффициент может быть равен 0 или 1, поскольку рассматривается двоичное поле GF(2). Если степень полинома равна m, то результат работы ck равен:

  • –1, если a не является неприводимым полиномом.
  • 0, если a является неприводимым, но не является примитивным в поле GF(2m).
  • 1, если a — примитивный полином для поля GF(2m).

Полином с нулевыми коэффициентами трактуется как не являющийся неприводимым. Все полиномы нулевой и первой степени считаются примитивными.

ck = gfprimck(a,p)

То же, что предыдущий вариант синтаксиса, но в качестве характеристики поля вместо 2 используется значение параметра p, который должен быть простым числом.

Примеры:

Приведенный ниже код демонстрирует неприводимость всех минимальных полиномов. Однако минимальный полином для непримитивного элемента не является примитивным. В примере принято p = 3; m = 4, то есть рассматривается конечное поле GF(34).

p = 3; m = 4;
% Используем примитивный полином по умолчанию

prim_poly = gfminpol(1,m,p);
ckprim = gfprimck(prim_poly,p);
% ckprim = 1, так как prim_poly представляет примитивный полином

notprimpoly = gfminpol(5,m,p);
cknotprim = gfprimck(notprimpoly,p);
% cknotprim = 0 (неприводимый, но не примитивный),
% так как alpha^5 не является примитивным элементом для p = 3

ckreducible = gfprimck([0 1 1],p);
% ckreducible = -1, так как полином является приводимым

Алгоритм:

Неприводимый полином степени 2 и более, заданный в конечном поле GF(p), считается примитивным в том и только том случае, если он не является делителем полинома –1 + xk для всех положительных целых k, меньших чем pm – 1.

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

Литература:

Clark, George C. Jr. and J. Bibb Cain. Error-Correction Coding for Digital Communications. New York: Plenum Press, 1981. (Русский перевод: Кларк Дж., мл., Кейн Дж. Кодирование с исправлением ошибок в системах цифровой связи: Пер. с англ. — М.: Радио и связь, 1987. — 392 с.)

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

 

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

Система Orphus

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