numpy.fft.ifft
-
numpy.fft.ifft(a, n=None, axis=-1, norm=None)[source] -
Вычислить одномерное обратное дискретное преобразование Фурье.
Эта функция вычисляет обратное одномерное n-точечное дискретное преобразование Фурье, вычисленное функцией
fft. Другими словами,ifft(fft(a)) == aс точностью до погрешности округления. Подробное описание алгоритма и определений см. вnumpy.fft.Входные данные должны быть упорядочены так же, как возвращаются функцией
fft, т.е.-
a[0]должно содержать член нулевой частоты, -
a[1:n//2]должно содержать положительные частотные члены, -
a[n//2 + 1:]должно содержать отрицательные частотные члены, в порядке возрастания, начиная с самой отрицательной частоты.
Для чётного числа входных точек
A[n//2]представляет сумму значений на положительных и отрицательных частотах Найквиста, так как они являются алиасами друг друга. См.numpy.fftдля подробностей.Параметры: -
a : array_like -
Входной массив, может быть комплексным.
-
n : int, optional -
Длина преобразованной оси выходных данных. Если
nменьше длины входных данных, входные данные обрезаются. Если она больше, входные данные дополняются нулями. Еслиnне указано, используется длина входных данных вдоль оси, указаннойaxis. См. примечания о проблемах с дополнением. -
axis : int, optional -
Ось, по которой вычисляется обратное ДПФ. Если не указано, используется последняя ось.
-
norm : {None, “ortho”}, optional -
Добавлена в версии 1.10.0.
Режим нормализации (см.
numpy.fft). По умолчанию равно None.
Возвращает: -
out : complex ndarray -
Усечённые или дополненные нулями входные данные, преобразованные вдоль оси, указанной
axis, или последней, еслиaxisне указано.
Возможные исключения: - IndexError
-
Если
axesбольше, чем последняя осьa.
См. также
Примечания
Если входной параметр
nбольше размера входных данных, входные данные дополняются нулями в конце. Хотя это распространённый подход, это может привести к неожиданным результатам. Если требуется другое заполнение, его необходимо выполнить перед вызовомifft.Примеры
>>> np.fft.ifft([0, 4, 0, 0]) array([ 1.+0.j, 0.+1.j, -1.+0.j, 0.-1.j]) # may vary
Создайте и нарисуйте ограниченный по полосе пропускания сигнал с случайными фазами:
>>> import matplotlib.pyplot as plt >>> t = np.arange(400) >>> n = np.zeros((400,), dtype=complex) >>> n[40:60] = np.exp(1j*np.random.uniform(0, 2*np.pi, (20,))) >>> s = np.fft.ifft(n) >>> plt.plot(t, s.real, 'b-', t, s.imag, 'r--') [<matplotlib.lines.Line2D object at ...>, <matplotlib.lines.Line2D object at ...>] >>> plt.legend(('real', 'imaginary')) <matplotlib.legend.Legend object at ...> >>> plt.show() -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.fft.ifft.html