Быстрое преобразование Фурье
вычисляет дискретное преобразование Фурье (DFT) Y = fft(X)X используя алгоритм быстрого преобразования Фурье (БПФ).
Если X является вектором, то fft(X) возвращает преобразование Фурье вектора.
Если X является матрицей, то fft(X) обрабатывает столбцы X в виде векторов и возвращает преобразование Фурье каждого столбца.
Если X является многомерным массивом, то fft(X) обрабатывает значения вдоль первого размера массива, размер которого не равен 1, как векторы и возвращает преобразование Фурье каждого вектора.
возвращает значение Y = fft(X,n)n-точка DFT. Если значение не указано, Y имеет тот же размер, что и X.
Если X является вектором и длиной X меньше, чем n, то X заполняется задними нулями до длины n.
Если X является вектором и длиной X больше, чем n, то X усечено до длины n.
Если X является матрицей, то каждый столбец обрабатывается как в случае вектора.
Если X является многомерным массивом, то первый размер массива, размер которого не равен 1, рассматривается как в случае вектора.
Время выполнения для fft зависит от длины преобразования. Длины преобразования, которые имеют только малые простые коэффициенты, значительно быстрее, чем те, которые являются простыми или имеют большие простые коэффициенты.
Для большинства значений nреальные входные DFT требуют приблизительно половины времени вычисления комплексных входных DFT. Однако когда n имеет большие основные факторы, разница скоростей невелика или отсутствует.
Вы можете увеличить скорость fft с помощью функции утилиты, fftw. Эта функция управляет оптимизацией алгоритма, используемого для вычисления БПФ определенного размера и размерности.
[1] FFTW (http://www.fftw.org)
[2] Фриго, М. и С. Г. Джонсон. «FFTW: архитектура адаптивного программного обеспечения для FFT». Материалы Международной конференции по акустике, речи и обработке сигналов. Т. 3, 1998, с. 1381-1384.