Spec-Zone.ru › NumPy 1.19

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.

Parameters
aarray_like

Входной массив, может быть комплексным.

nint, optional

Длина преобразованной оси выходных данных. Если n меньше длины входных данных, входные данные обрезаются. Если она больше, входные данные дополняются нулями. Если n не задано, используется длина входных данных по оси, указанной axis. См. примечания по проблемам с дополнением.

axisint, optional

Ось, по которой вычисляется обратное ДПФ. Если не задано, используется последняя ось.

norm{None, “ortho”}, optional

New in version 1.10.0.

Режим нормализации (см. numpy.fft). По умолчанию равно None.

Returns
outcomplex ndarray

Усечённые или дополненные нулями входные данные, преобразованные по оси, указанной axis, или по последней оси, если axis не указано.

Raises
IndexError

Если axes больше, чем последняя ось a.

См. также

numpy.fft

Введение с определениями и общими объяснениями.

fft

Одномерное (прямое) преобразование Фурье, обратным к которому является ifft

ifft2

Обратное двумерное преобразование Фурье.

ifftn

Обратное n-мерное преобразование Фурье.

Примечания

Если параметр n больше размера входных данных, входные данные дополняются нулями в конце. Хотя это распространённый подход, он может привести к неожиданным результатам. Если требуется другое дополнение, его необходимо выполнить перед вызовом ifft.

Примеры

>>> np.fft.ifft([0, 4, 0, 0])
array([ 1.+0.j,  0.+1.j, -1.+0.j,  0.-1.j]) # may vary

Создать и отобразить ограниченный полосой сигнал с случайными фазами:

>>> 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--')
[<matplotlib.lines.Line2D object at ...>, <matplotlib.lines.Line2D object at ...>]
>>> plt.legend(('real', 'imaginary'))
<matplotlib.legend.Legend object at ...>
>>> plt.show()
../../_images/numpy-fft-ifft-1.png

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.fft.ifft.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API