Spec-Zone.ru › NumPy 1.18

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

Spec-Zone.ru

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