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

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

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

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

GFMUL
Умножение элементов конечного поля

Внимание!

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

Синтаксис:

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

Описание:

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

c = gfmul(a,b)

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

c = gfmul(a,b,p)

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

c = gfmul(a,b,field)

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

Примеры:

Приведенный ниже код строит таблицу умножения для поля GF(5). Если a и b лежат в диапазоне от 0 до 4, то элемент матрицы gfp_mul(a+1,b+1) содержит значение произведения a*b, вычисленного в поле GF(5). Например, gfp_mul(3,5) = 3, поскольку ((2*4) mod 5) = 3.

p = 5;
row = 0:p-1;
table = ones(p,1)*row;
gfp_mul = gfmul(table,table',p)
gfp_mul =
    0    0    0    0    0
    0    1    2    3    4
    0    2    4    1    3
    0    3    1    4    2
    0    4    3    2    1

Приведенный ниже код показывает, что в поле GF(9) выполняется равенство a 2 ´  a 4 = a 6, где a  — корень примитивного полинома 2 + 2x + x2.

p = 3; m = 2;
primpoly = [2 2 1];
field = gftuple([-1:p^m-2]',primpoly,p);
a = gfmul(2,4,field)
a =
    6

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

 

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

 

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

Система Orphus

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