fft
Страница в процессе разработки. |
Быстрое преобразование Фурье.
Библиотека |
|
Синтаксис
Вызов функции
-
Y = fft(X)
— вычисляет Дискретное преобразование Фурье (ДПФ) для аргументаX
, используя алгоритм быстрого преобразования Фурье (БПФ). АргументY
имеет тот же размер, что иX
.-
Если
X
— вектор, тоfft(X)
возвращает преобразование Фурье для этого вектора. -
Если
X
— матрица, тоfft(X)
рассматривает столбцы аргументаX
как векторы и возвращает преобразование Фурье для каждого столбца. -
Если
X
— многомерный массив, тоfft(X)
рассматривает значения по первому измерению массива, размер которых не равен1
, как векторы и возвращает преобразование Фурье для каждого вектора.
-
-
Y = fft(X,n)
— возвращаетn
-точечное ДПФ.-
Если
X
— вектор и длинаX
меньшеn
, тоX
дополняется нулями до длиныn
. -
Если
X
— вектор и длинаX
большеn
, тоX
усекается до длиныn
. -
Если
X
— матрица, то каждый столбец обрабатывается как вектор. -
Если
X
— многомерный массив, то первое измерение массива, размер которого не равен1
, обрабатывается как вектор.
-
Аргументы
Входные аргументы
#
X —
входной массив
вектор
| матрица
| многомерный массив
Details
Входной массив, заданный как вектор, матрица или многомерный массив.
Если X
— пустая матрица размером 0
на 0
, то fft(X)
возвращает пустую матрицу размером 0
на 0
.
Типы данных |
|
Поддержка комплексных чисел |
Да |
#
n —
длина преобразования
[]
(по умолчанию) | неотрицательный целочисленный скаляр
Details
Длина преобразования, заданная как []
или неотрицательный целочисленный скаляр. Указание положительного целого числа для длины преобразования может повысить производительность функции fft
. Длина обычно указывается как степень двойки или значение, которое можно разложить на множители (с простыми множителями не более 7
). Если n
меньше длины сигнала, функция fft
игнорирует оставшиеся значения сигнала после n
-го элемента и возвращает усеченный результат. Если n
равно 0
, функция fft
возвращает пустую матрицу.
Типы данных |
|
#
dim —
измерение, по которому выполняется операция
положительный целочисленный скаляр
Details
Измерение, по которому выполняется операция, задается как положительное целое число. Если измерение не указано, по умолчанию используется первое измерение массива, размер которого не равен 1
.
Если dim
больше ndims(X)
, то fft(X,[],dim)
возвращает X
. Если указано n
, fft(X,n,dim)
дополняет или усекает X
до длины n
по измерению dim
.
Типы данных |
|
Выходные аргументы
#
Y —
представление в частотной области
вектор
| матрица
| многомерный массив
Details
Представление в частотной области возвращается в виде вектора, матрицы или многомерного массива.
Если аргумент X
имеет тип Float32
, то функция fft
вычисляется с одинарной точностью, а Y
также имеет тип Float32
. В противном случае Y
возвращается как тип Float64
.
Размер аргумента Y
определяется следующим образом:
Если X
— вещественное число, то Y
является сопряженно-симметричным, а количество уникальных точек в Y
равно ceil((n+1)/2)
.
Типы данных |
|
Советы
-
Время выполнения
fft
зависит от длины преобразования. Длины преобразований, имеющие только малые простые множители (не более7
) обеспечивают значительно более быстрое время выполнения, чем те, которые являются простыми числами имеют большие простые множители. -
Для большинства значений
n
ДПФ с вещественными входными данными требуют примерно вдвое меньше времени вычисления, чем ДПФ с комплексными входными данными. Однако при больших простых множителяхn
разница в скорости незначительна или отсутствует вовсе. -
Вы можете потенциально увеличить скорость
fft
с помощью утилитыfftw
. Эта функция управляет оптимизацией алгоритма, используемого для вычисления БПФ заданного размера и размерности.
Список литературы
-
FFTW (https://www.fftw.org)
-
Frigo, M., and S. G. Johnson. «FFTW: An Adaptive Software Architecture for the FFT.» Proceedings of the International Conference on Acoustics, Speech, and Signal Processing. Vol. 3, 1998, pp. 1381–1384.