numpy.fft.fft
-
numpy.fft.fft(a, n=None, axis=-1, norm=None)[source] -
Вычисление одномерного дискретного преобразования Фурье.
Эта функция вычисляет одномерное n-точечное дискретное преобразование Фурье (ДПФ) с помощью эффективного алгоритма быстрой Фурье (БПФ) [CT].
Параметры: a : array_like
Входной массив, может быть комплексным.
n : int, необязательно
Длина преобразованной оси выходного значения. Если
nменьше длины входных данных, входные данные усекаются. Если оно больше, входные данные дополняются нулями. Еслиnне указано, используется длина входных данных вдоль оси, указаннойaxis, или последняя ось, еслиaxisне указано.axis : int, необязательно
Ось, по которой вычисляется БПФ. Если не указано, используется последняя ось.
norm : {None, “ortho”}, необязательно
Новое в версии 1.10.0.
Режим нормализации (см.
numpy.fft). Значение по умолчанию — None.Возвращает: out : complex ndarray
Усечённые или дополненные нулями входные данные, преобразованные вдоль оси, указанной
axis, или последней оси, еслиaxisне указано.Возможные исключения: IndexError
если
axesбольше, чем последняя осьa.См. также
Примечания
БПФ (быстрое преобразование Фурье) относится к способу эффективного вычисления дискретного преобразования Фурье (ДПФ) с использованием симметрий в вычисляемых членах. Симметрия максимальна, когда
nявляется степенью 2, и поэтому преобразование наиболее эффективно для таких размеров.ДПФ определяется, с соглашениями, используемыми в этой реализации, в документации модуля
numpy.fft.Ссылки
[CT] Кули, Джеймс В., и Джон В. Таккeй, 1965, «Алгоритм для машинного вычисления комплексных рядов Фурье», Math. Comput. 19: 297-301. Примеры
>>> np.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8)) array([ -3.44505240e-16 +1.14383329e-17j, 8.00000000e+00 -5.71092652e-15j, 2.33482938e-16 +1.22460635e-16j, 1.64863782e-15 +1.77635684e-15j, 9.95839695e-17 +2.33482938e-16j, 0.00000000e+00 +1.66837030e-15j, 1.14383329e-17 +1.22460635e-16j, -1.64863782e-15 +1.77635684e-15j])В этом примере вещественный входной массив имеет БПФ, который является эрмитовым, т.е. симметричным по вещественной части и антисимметричным по мнимой части, как описано в документации
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()
(Исходный код, png, pdf)
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.fft.fft.html