dftmtx

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

Синтаксис

dm = dftmtx(alph)

Описание

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

Примечание

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

Примеры

Пример ниже иллюстрирует дискретное преобразование Фурье и его инверсию относительно элемента gf(3,4). Пример исследует первые 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 должен быть примитивный энный корень из единицы в GF Поля Галуа (2 м), где m является целым числом между 1 и 8.

Алгоритмы

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

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