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