Дискретное преобразование Фурье (numpy.fft)
Стандартные FFT
| Вычислить одномерное дискретное преобразование Фурье. |
| Вычислить одномерное обратное дискретное преобразование Фурье. |
| Вычислить двумерное дискретное преобразование Фурье |
| Вычислить двумерное обратное дискретное преобразование Фурье. |
| Вычислить N-мерное дискретное преобразование Фурье. |
| Вычислить N-мерное обратное дискретное преобразование Фурье. |
Вещественные FFT
| Вычислить одномерное дискретное преобразование Фурье для вещественного входа. |
| Вычислить обратное n-точечное ДПФ для вещественного входа. |
| Вычислить двумерное FFT вещественного массива. |
| Вычислить двумерное обратное FFT вещественного массива. |
| Вычислить N-мерное дискретное преобразование Фурье для вещественного входа. |
| Вычислить обратное N-мерное FFT вещественного входа. |
Эрмитовы FFT
| Вычислить FFT сигнала, имеющего эрмитову симметрию, т. е. вещественный спектр. |
| Вычислить обратное FFT сигнала, имеющего эрмитову симметрию. |
Вспомогательные функции
| Возвращает частоты дискретного преобразования Фурье. |
| Возвращает частоты дискретного преобразования Фурье (для использования с rfft, irfft). |
| Смещает компонент нулевой частоты в центр спектра. |
| Обратное преобразование |
Общая информация
Преобразование Фурье — это метод представления функции как суммы периодических составляющих и восстановления функции по этим составляющим. Когда и функция, и её преобразование Фурье заменяются дискретными аналогами, это называется дискретным преобразованием Фурье (ДПФ). ДПФ стало неотъемлемой частью вычислительной техники, частично благодаря быстрому алгоритму его вычисления — быстрому преобразованию Фурье (БПФ), которое было известно Гауссу (1805) и в современной форме предложено Кули и Тьюки [CT]. Пресс и др. [NR] дают доступное введение в преобразование Фурье и его приложения.
Поскольку дискретное преобразование Фурье разделяет входные данные на составляющие, которые вносят вклад на дискретных частотах, оно имеет множество применений в обработке цифровых сигналов, например, для фильтрации, и в этом контексте дискретные входные данные для преобразования обычно называются сигналом, существующим во временной области. Результат называется спектром или преобразованием и существует в частотной области.
Детали реализации
Существует множество способов определения ДПФ, которые различаются знаком экспоненты, нормализацией и т. д. В этой реализации ДПФ определяется как
В общем случае ДПФ определяется для комплексных входных и выходных данных, а компонента одной частоты на линейной частоте представлена комплексной экспонентой
, где
— интервал дискретизации.
Значения в результате следуют так называемому «стандартному» порядку: Если A =
fft(a, n), то A[0] содержит член нулевой частоты (сумма сигнала), который всегда чисто вещественный для вещественного входа. Затем A[1:n/2] содержит положительные частотные члены, а A[n/2+1:] содержит отрицательные частотные члены в порядке убывания отрицательной частоты. Для чётного числа входных точек A[n/2] представляет как положительную, так и отрицательную частоту Найквиста и также является чисто вещественной для вещественного входного сигнала. Для нечётного числа входных точек A[(n-1)/2] содержит наибольшую положительную частоту, а A[(n+1)/2] содержит наибольшую отрицательную частоту. Функция np.fft.fftfreq(n) возвращает массив, содержащий частоты соответствующих элементов на выходе. Функция np.fft.fftshift(A) смещает преобразования и их частоты, чтобы поместить компоненты нулевой частоты в центр, а np.fft.ifftshift(A) отменяет это смещение.
Когда вход a — сигнал во временной области, а A = fft(a), np.abs(A) — его амплитудный спектр, а np.abs(A)**2 — его спектральная мощность. Фазовый спектр получается с помощью np.angle(A).
Обратное ДПФ определяется как
Отличается от прямого преобразования знаком аргумента экспоненты и стандартной нормализацией на .
Преобразование типов
numpy.fft повышает float32 и complex64 массивы до float64 и complex128 массивов соответственно. Для реализации БПФ, которая не повышает входные массивы, см. scipy.fftpack.
Нормализация
По умолчанию прямые преобразования не масштабируются, а обратные преобразования масштабируются на . Можно получить унитарные преобразования, установив ключевой параметр
norm в значение "ortho" (по умолчанию None), так что и прямые, и обратные преобразования будут масштабироваться на .
Вещественные и эрмитовы преобразования
Когда вход чисто вещественный, его преобразование эрмитово, т. е. компонент на частоте является комплексно сопряжённым с компонентом на частоте
, что означает, что для вещественных входных данных информация в компонентах отрицательных частот не содержит информации, которая уже не доступна из компонентов положительных частот. Семейство функций
rfft предназначено для работы с вещественными входными данными и использует эту симметрию, вычисляя только компоненты положительных частот, включая и частоту Найквиста. Таким образом, n входных точек дают n/2+1 комплексных выходных точек. Обратные преобразования этого семейства предполагают ту же симметрию своего входа, и для выхода из n точек используется n/2+1 входных точек.
Соответственно, когда спектр чисто вещественный, сигнал эрмитов. Семейство функций hfft использует эту симметрию, используя n/2+1 комплексных точек во входной (временной) области для n вещественных точек в частотной области.
В более высоких измерениях FFT используются, например, для анализа и фильтрации изображений. Вычислительная эффективность FFT означает, что она также может быть более быстрым способом вычисления больших свёртки, используя свойство, что свёртка во временной области эквивалентна точечному умножению в частотной области.
Более высокие измерения
В двух измерениях ДПФ определяется как
что очевидным образом обобщается на высшие измерения, и обратные преобразования в высших измерениях также обобщаются аналогично.
Ссылки
-
CT -
Кули, Джеймс У., и Джон У. Такей, 1965, «Алгоритм для машинного вычисления комплексных рядов Фурье», Math. Comput. 19: 297-301.
-
NR -
Пресс, У., Теукольский, С., Веттерин, У.Т., и Фланнери, Б.П., 2007, Численные рецепты: Искусство научных вычислений, гл. 12-13. Изд-во Кембриджского университета, Кембридж, Великобритания.
Примеры
Примеры см. в различных функциях.
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/routines.fft.html