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