Дискретная матрица преобразования Фурье в поле Галуа
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))
.