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.16.1/reference/generated/numpy.fft.ifft.html