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

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

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

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

GFTUPLE
Упрощение или преобразование формата представления элементов конечного поля

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

Синтаксис:

tp = gftuple(a,m);
tp = gftuple(a,primpoly);
tp = gftuple(a,m,p);
tp = gftuple(a,primpoly,p);
tp = gftuple(a,primpoly,p,prim_ck);
[tp,expform] = gftuple(…);

Описание:

Общая информация о синтаксисе

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

В данном описании формат элемента конечного поля GF(pm) называется простейшим, если все экспоненты примитивного элемента удовлетворяют следующим условиям:

  • Лежат в пределах от 0 до m – 1 для полиномиального формата.
  • Равны -Inf или лежат в пределах от 0 до pm – 2 для экспоненциального формата.

Для всех вариантов синтаксиса входной параметр a является матрицей, каждая строка которой представляет один элемент конечного поля. Интерпретация матрицы a зависит от ее размера:

  • Если a представляет собой вектор-столбец целых чисел, то MATLAB интерпретирует элементы этого вектора как элементы конечного поля, представленные в экспоненциальном формате. Все отрицательные числа считаются эквивалентными -Inf и представляют нулевой элемент поля.
  • Если a содержит несколько столбцов, то MATLAB интерпретирует каждую строку как представление элемента конечного поля в полиномиальном формате. (Элементы матрицы a должны быть целыми числами, лежащими в диапазоне от 0 до p – 1, где p — характеристика конечного поля. Если параметр p при вызове функции не задан, по умолчанию он считается равным 2.)

Как экспоненциальный, так и полиномиальный форматы представления определяются по отношению к конкретному примитивному элементу поля. Способ выбора этого примитивного элемента описывается далее, при рассмотрении конкретных вариантов синтаксиса.

Конкретные варианты синтаксиса:

tp = gftuple(a,m)

Возвращает представление элементов из матрицы a в простейшем полиномиальном формате. При этом k-я строка результата tp соответствует k-й строке матрицы a. Форматы определяются по отношению к корню примитивного полинома, используемого по умолчанию для поля GF(2m).Входной параметр m — положительное целое число. Если возможно, производится упрощение полиномиальных форматов с помощью примитивного полинома по умолчанию.

Tp = gftuple(a,primpoly)

Возвращает представление элементов из матрицы a в простейшем полиномиальном формате. При этом k-я строка результата tp соответствует k-й строке матрицы a. Форматы определяются по отношению к корню примитивного полинома, коэффициенты которого содержатся, в порядке возрастания степеней, в векторе-строке primpoly. Если возможно, производится упрощение полиномиальных форматов с помощью данного примитивного полинома.

Tp = gftuple(a,m,p)

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

Tp = gftuple(a,primpoly,p)

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

Tp = gftuple(a,primpoly,p,prim_ck)

То же, что tp = gftuple(a,primpoly,p), однако, функция gftuple проверяет, действительно ли полином, представляемый параметром primpoly, является примитивным. Если нет, функция gftuple генерирует сообщение об ошибке и результат tp не возвращается. Последний входной параметр prim_ck может быть произвольным силом или строкой; имеет значение только его наличие.

[tp,expform] = gftuple(…)

Дополнительно возвращает матрицу expform, k-я строка которой содержит представление элемента из k-й строки матрицы a в простейшем экспоненциальном формате.

Примеры:

Приведенный ниже вызов функции gftuple генерирует список элементов поля GF(pm), упорядоченный по отношению к корню примитивного полинома, используемого по умолчанию. Некоторые функции пакета Communications используют такой список в качестве входного параметра.

p = 5; % Произвольное простое число
m = 4; % Произвольное положительное целое число
field = gftuple([-1:p^m-2]',m,p);

Две следующих команды иллюстрируют влияние формы входной матрицы на ее интерпретацию. В первом случае вектор-столбец трактуется как последовательность элементов, представленных в экспоненциальном формате. Во втором случае вектор-строка трактуется как единственный элемент, представленный в полиномиальном формате.

tp1 = gftuple([0; 1],3)

tp1 =
     1     0     0
     0     1     0

tp2 = gftuple([0, 0, 0, 1],3)

tp2 =
     1     1     0

Полученные результаты показывают, что при использовании примитивного полинома, принятого для поля GF(8) по умолчанию, имеют место следующие равенства:

a0 = 1 + 0a+ 0a2,
a1 = 0 + 1a + 0a2,
0 + 0a + 0a2 + a3 = 1 + a + 0a2.

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

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

 

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

Система Orphus

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