dftmtx

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

Синтаксис

dm = dftmtx(alph)

Описание

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