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.18/reference/generated/numpy.fft.ifft.html