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для получения подробностей.Параметры: 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--') ... >>> plt.legend(('real', 'imaginary')) ... >>> plt.show()(Исходный код, png, pdf)
-
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.fft.ifft.html