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 : комплексный 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–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.fft.ifft.html