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] Кули, Джеймс У., и Джон У. Такки, 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])>>> 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()
В этом примере вещественный вход имеет БПФ, который является эрмитовым, т.е. симметричным по действительной части и антисимметричным по мнимой части, как описано в документации
numpy.fft.
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.fft.fft.html