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() -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.fft.ifft.html