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