numpy.fft.ifft
- 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для подробностей.- Parameters
-
- aarray_like
-
Входной массив, может быть комплексным.
- nint, optional
-
Длина преобразованной оси результата. Если
nменьше длины входных данных, входные данные усекаются. Если она больше, входные данные дополняются нулями. Еслиnне задано, используется длина входных данных вдоль оси, указаннойaxis. См. примечания по проблемам с дополнением. - axisint, optional
-
Ось, по которой вычисляется обратное ДПФ. Если не задано, используется последняя ось.
- norm{“backward”, “ortho”, “forward”}, optional
-
New in version 1.10.0.
Режим нормализации (см.
numpy.fft). По умолчанию — “backward”. Указывает, какой из направлений прямого/обратного преобразования масштабируется и с каким нормализационным коэффициентом.New in version 1.20.0: Значения “backward”, “forward” были добавлены.
- Returns
-
- outcomplex ndarray
-
Усечённые или дополненные нулями входные данные, преобразованные вдоль оси, указанной
axis, или по последней, еслиaxisне указано.
- Raises
-
- IndexError
-
Если
axisне является допустимой осью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, label='real') [<matplotlib.lines.Line2D object at ...>] >>> plt.plot(t, s.imag, '--', label='imaginary') [<matplotlib.lines.Line2D object at ...>] >>> plt.legend() <matplotlib.legend.Legend object at ...> >>> plt.show()
-
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.fft.ifft.html