exponenta event banner

dftmtx

Дискретная матрица преобразования Фурье в поле Галуа

Синтаксис

dm = dftmtx(alph)

Описание

dm = dftmtx(alph) возвращает массив Галуа, который представляет операцию дискретного преобразования Фурье для вектора Галуа относительно скаляра Галуа alph. Элемент alph является примитивным n-м корнем единства в поле Галуа GF (2m) = GF (n + 1); то есть n должно быть наименьшим положительным значениемk для которых alph^k равно 1. Дискретное преобразование Фурье имеет размер n и dm является массивом n-by-n. Множество dm представляет преобразование в том смысле, что dm умножить любой вектор столбца Галуа длиной n на преобразование этого вектора.

Примечание

Матрица обратного дискретного преобразования Фурье dftmtx(1/alph).

Примеры

Приведенный ниже пример иллюстрирует дискретное преобразование Фурье и его обратное преобразование относительно элемента. gf(3,4). В примере рассматриваются первые n степеней этого элемента, чтобы убедиться, что только n-я степень равна единице. После этого пример преобразует случайный вектор Галуа, отменяет преобразование и проверяет результат.

m = 4;
n = 2^m-1;
a = 3;
alph = gf(a,m);
mp = minpol(alph);
if (mp(1)==1 && isprimitive(mp)) % Check that alph has order n.
    disp('alph is a primitive nth root of unity.')
    dm = dftmtx(alph);
    idm = dftmtx(1/alph);
    x = gf(randi([0 2^m-1],n,1),m);
    y = dm*x; % Transform x.
    z = idm*y; % Recover x.
    ck = isequal(x,z)
end

Выходные данные:

alph is a primitive nth root of unity.

ck =

     1

Ограничения

Поле Галуа, над которым работает эта функция, должно содержать 256 или менее элементов. Другими словами, alph должен быть примитивным n-м корнем единицы в поле Галуа GF (2m), где m - целое число между 1 и 8.

Алгоритмы

Элемент dm(a,b) равняется alph^((a-1)*(b-1)).

Представлен до R2006a