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