Быстрое преобразование Фурье на основе библиотеки fftw
[y]=fftw(x) [y]=fftw(x,sign) [y]=fftw(x,sign,dim,incr) [y]=fftw(x,sign,[dim1 dim2 ...dimN],[incr1 incr2 ...incrN])
matrix/вектор вещественных/комплексных данных. Входные/выходные данные, которые должны быть преобразованы.
Целое число. 1 или -1. Устанавливает прямое или обратное преобразование.
Целое число. Устанавливает размерность (длину) преобразования.
Целое число. Устанавливает шаг (интервал) преобразования.
Эта функция реализует прямое/обратное Дискретное Преобразование Фурье (ДПФ) с помощью библиотеки FFTW.
С помощью этой функции можно делать одномерное (вектор), двумерное, и многомерное преобразование.
За подробной информацией о синтаксисе fftw обращайтесь к функции fft Scilab'а.
За подробной информацией о библиотеке FFTW обращайтесь на вэб-сайт FFTW : http://www.fftw.org
Примечание: Функция fftw автоматически сохраняет свои последние параметры в памяти для повторного использования.
Это значительно улучшает время вычисления при выполнении последовательных вызовов.
//простое одномерное прямое преобразование a = rand(50,1)+%i*rand(50,1); y = fftw(a); y = fftw(a,-1); //обратное преобразование b = fftw(y,1); //двумерное преобразование a = rand(512,512)+%i*rand(512,512); y = fftw(a); //многомерное преобразование -старая последовательность вызова- a = rand(120,1); y = a; dim=[5 6 4]; incr=[1 5 30]; for i=1:3 y = fftw(y,-1,dim(i),incr(i)); end //многомерное преобразование -новая последовательность вызова- //Более эффективна, чем старая y = fftw(a,-1,[5 6 4],[1 5 30]); b = fftw(y,1,[5 6 4],[1 5 30]); | ![]() | ![]() |
Matteo Frigo and Steven G. Johnson, "FFTW Documentation" http://www.fftw.org/#documentation