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является степенью двойки, поэтому преобразование наиболее эффективно для таких размеров.ДПФ определяется, с использованием соглашений в этой реализации, в документации для модуля
numpy.fft.Ссылки
[CT] Cooley, James W., and John W. Tukey, 1965, “An algorithm for the machine calculation of complex Fourier series,” 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.12.0/reference/generated/numpy.fft.fft.html