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.- Parameters
-
-
aarray_like -
Входной массив, может быть комплексным.
-
nint, optional -
Длина преобразованной оси выходных данных. Если
nменьше длины входных данных, входные данные обрезаются. Если она больше, входные данные дополняются нулями. Еслиnне задано, используется длина входных данных по оси, указаннойaxis. См. примечания по проблемам с дополнением. -
axisint, optional -
Ось, по которой вычисляется обратное ДПФ. Если не задано, используется последняя ось.
-
norm{None, “ortho”}, optional -
New in version 1.10.0.
Режим нормализации (см.
numpy.fft). По умолчанию равно None.
-
- Returns
-
-
outcomplex ndarray -
Усечённые или дополненные нулями входные данные, преобразованные по оси, указанной
axis, или по последней оси, еслиaxisне указано.
-
- Raises
-
- 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.fft.ifft.html