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, optional -
Длина преобразованной оси выходных данных. Если
nменьше длины входных данных, входные данные обрезаются. Если больше, входные данные дополняются нулями. Еслиnне указано, используется длина входных данных вдоль оси, указаннойaxis. См. примечания о проблемах с доведением до нужной длины. -
axis : int, optional -
Ось, по которой вычисляется обратное ДПФ. Если не указано, используется последняя ось.
-
norm : {None, “ortho”}, optional -
Добавлена в версии 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() -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.fft.ifft.html