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+1]должно содержать члены положительной частоты, аa[n/2+1:]должно содержать члены отрицательной частоты в порядке убывания отрицательных частот. Подробности см. вnumpy.fft.Параметры: a : array_like
Вводной массив, может быть комплексным.
n : int, необязательно
Длина преобразованной оси выходного значения. Если
nменьше длины входных данных, входные данные обрезаются. Если оно больше, входные данные дополняются нулями. Еслиnне задано, используется длина входных данных вдоль оси, указаннойaxis. См. заметки о проблемах с дополнением.axis : int, необязательно
Ось, по которой вычисляется обратное ДПФ. Если не указано, используется последняя ось.
norm : {None, “ortho”}, необязательно
Введено в версии 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])
Создайте и постройте ограниченный по полосе частот сигнал со случайными фазами:
>>> 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 0x...>, <matplotlib.lines.Line2D object at 0x...>] >>> plt.legend(('real', 'imaginary')) <matplotlib.legend.Legend object at 0x...> >>> plt.show()(Исходный код, png, pdf)
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.fft.ifft.html