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

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

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

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

GFCONV
Умножение полиномов в конечном поле

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

Синтаксис:

c = gfconv(a,b);
c = gfconv(a,b,p);
c = gfconv(a,b,field);

Описание:

Функция gfconv производит умножение полиномов, заданных над конечным полем. Для перемножения элементов конечного поля используется функция gfmul. С алгебраической точки зрения умножение полиномов в конечном поле эквивалентно свертке векторов, содержащих коэффициенты полиномов. При вычислении свертки должна использоваться арифметика над тем же конечным полем.

  • c = gfconv(a,b)

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

  • c = gfconv(a,b,p)

Выполняет умножение двух полиномов над полем GF(p), где p — простое число. Параметры a, b и c представляют собой векторы-строки, содержащие коэффициенты соответствующих полиномов в порядке возрастания степеней. Возможные значения коэффициентов лежат в диапазоне от 0 до p – 1.

  • c = gfconv(a,b,field)

Выполняет умножение двух элементов поля GF(pm), где m — положительное целое число. Входные параметры a и b — векторы-строки коэффициентов (в порядке возрастания степеней) перемножаемых полиномов, представленные в экспоненциальном формате по отношению к некоторому примитивному элементу поля GF(pm). Третий входной параметр field представляет собой матрицу, в которой перечислены все элементы поля GF(pm), упорядоченные по степеням того же самого примитивного элемента. Получить такую матрицу можно с помощью функции gftuple. Результат c — произведение полиномов, представленное в экспоненциальном формате по отношению к тому же самому примитивному элементу.

Примеры:

Приведенная ниже команда показывает, что в простом двоичном поле GF(2) выполняется равенство .

gfc = gfconv([1 1 0 0 1],[0 1 1])
gfc =
     0      1      0      1      0      1      1

Приведенный ниже код иллюстрирует выполнение равенства в поле GF(p) для случая, когда = 7, = 5 и = 3. (Разумеется, данное равенство остается справедливым для произвольного простого числа p и произвольных положительных целых чисел r и s.)

p = 7; r = 5; s = 3;
a = gfrepcov([r s]); % вычислили x^r + x^s

% ВычислЯем a^p в поле GF(p).

c = 1;
for ii = 1:p
   c = gfconv(c,a,p);
end;

% ПроверЯем равенство c = x^(rp) + x^(sp).

powers = [];
for ii = 1:length(c)
   if c(ii)~=0
      powers = [powers, ii];
   end;
end;
if (powers==[r*p+1 s*p+1] | powers==[s*p+1 r*p+1])
   disp('Равенство проверено при заданных величинах r, s и p.')
end

Сопутствующие функции: gfdeconv, gfadd, gfsub, gfmul, gftuple

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

 

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

Система Orphus

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