numpy.fft.fft
-
numpy.fft.fft(a, n=None, axis=-1, norm=None)[source] -
Вычислить одномерное дискретное преобразование Фурье.
Эта функция вычисляет одномерное n-точечное дискретное преобразование Фурье (ДПФ) с помощью эффективного алгоритма быстрой Фурье (БПФ) [CT].
- Параметры
-
-
aarray_like -
Входной массив, может быть комплексным.
-
nint, optional -
Длина преобразованной оси выходного массива. Если
nменьше длины входного массива, входной массив обрезается. Если оно больше, входной массив дополняется нулями. Еслиnне указано, используется длина входного массива по оси, указаннойaxis, или последняя ось, еслиaxisне указано. -
axisint, optional -
Ось, по которой вычисляется БПФ. Если не указано, используется последняя ось.
-
norm{None, “ortho”}, optional -
Новая в версии 1.10.0.
Режим нормализации (см.
numpy.fft). По умолчанию None.
-
- Возвращает
-
-
outcomplex ndarray -
Усечённый или дополненный нулями входной массив, преобразованный по оси, указанной
axis, или по последней оси, еслиaxisне указано.
-
- Возможные исключения
-
- IndexError
-
если
axesбольше, чем последняя осьa.
См. также
Примечания
БПФ (быстрое преобразование Фурье) — это способ эффективного вычисления дискретного преобразования Фурье (ДПФ), использующий симметрии в вычисляемых членах. Симметрия максимальна, когда
nявляется степенью 2, поэтому преобразование наиболее эффективно для таких размеров.ДПФ определено, с используемыми в этой реализации соглашениями, в документации для модуля
numpy.fft.Ссылки
-
CT -
Кули, Джеймс У., и Джон У. Такер, 1965, «Алгоритм для машинного вычисления комплексных рядов Фурье», Math. Comput. 19: 297-301.
Примеры
>>> np.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8)) array([-2.33486982e-16+1.14423775e-17j, 8.00000000e+00-1.25557246e-15j, 2.33486982e-16+2.33486982e-16j, 0.00000000e+00+1.22464680e-16j, -1.14423775e-17+2.33486982e-16j, 0.00000000e+00+5.20784380e-16j, 1.14423775e-17+1.14423775e-17j, 0.00000000e+00+1.22464680e-16j])В этом примере вещественный вход имеет БПФ, который является эрмитовым, т. е. симметричным по вещественной части и антисимметричным по мнимой части, как описано в документации для модуля
numpy.fft:>>> import matplotlib.pyplot as plt >>> t = np.arange(256) >>> sp = np.fft.fft(np.sin(t)) >>> freq = np.fft.fftfreq(t.shape[-1]) >>> plt.plot(freq, sp.real, freq, sp.imag) [<matplotlib.lines.Line2D object at 0x...>, <matplotlib.lines.Line2D object at 0x...>] >>> plt.show()
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.fft.fft.html