Spec-Zone.ru › NumPy 1.20

numpy.fft.ifftn

fft.ifftn(a, s=None, axes=None, norm=None) [source]

Вычисление обратного N-мерного дискретного преобразования Фурье.

Эта функция вычисляет обратное N-мерное дискретное преобразование Фурье по любому числу осей в массиве размерности M с помощью быстрого преобразования Фурье (FFT). Другими словами, ifftn(fftn(a)) == a с точностью до погрешности вычисления. Для описания используемых определений и соглашений см. numpy.fft.

Входные данные, аналогично ifft, должны быть упорядочены так же, как возвращает fftn, т.е. член для нулевой частоты должен находиться в углу с меньшими индексами, положительные частоты — в первой половине всех осей, член для частоты Найквиста — посередине всех осей, а отрицательные частоты — во второй половине всех осей, в порядке убывания отрицательной частоты.

Parameters
aarray_like

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

ssequence of ints, optional

Форма (длина каждой оси преобразования) результата (s[0] относится к оси 0, s[1] к оси 1 и т.д.). Это соответствует n для ifft(x, n). По любой оси, если заданная форма меньше, чем форма входных данных, входные данные обрезаются. Если она больше, входные данные дополняются нулями. Если s не указан, используется форма входных данных по осям, указанным в axes. См. заметки по вопросу о заполнении нулями ifft.

axessequence of ints, optional

Оси, по которым вычисляется обратное преобразование Фурье. Если не указаны, используются последние len(s) оси, или все оси, если также не указан s. Повторяющиеся индексы в axes означают, что обратное преобразование по данной оси выполняется несколько раз.

norm{“backward”, “ortho”, “forward”}, optional

Новое в версии 1.10.0.

Режим нормализации (см. numpy.fft). По умолчанию — “обратное”. Указывает, какая сторона пары прямых/обратных преобразований масштабируется и с каким коэффициентом нормализации.

Новое в версии 1.20.0: Добавлены значения “обратное”, “прямое”.

Returns
outcomplex ndarray

Обрезанные или дополненные нулями входные данные, преобразованные по осям, указанным в axes, или комбинацией s или a, как объяснено в разделе параметров выше.

Raises
ValueError

Если s и axes имеют разную длину.

IndexError

Если элемент axes больше, чем количество осей в a.

См. также

numpy.fft

Обзор дискретных преобразований Фурье, с определениями и используемыми соглашениями.

fftn

Прямое N-мерное преобразование Фурье, обратным к которому является ifftn.

ifft

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

ifft2

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

ifftshift

Отменяет fftshift, смещает члены с нулевой частотой в начало массива.

Notes

См. numpy.fft для определений и соглашений.

Заполнение нулями, аналогично ifft, выполняется путем добавления нулей к входным данным вдоль указанной оси. Хотя это распространенный подход, он может привести к неожиданным результатам. Если требуется другая форма заполнения нулями, необходимо выполнить её до вызова ifftn.

Примеры

>>> a = np.eye(4)
>>> np.fft.ifftn(np.fft.fftn(a, axes=(0,)), axes=(1,))
array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
       [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j],
       [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
       [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j]])

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

>>> import matplotlib.pyplot as plt
>>> n = np.zeros((200,200), dtype=complex)
>>> n[60:80, 20:40] = np.exp(1j*np.random.uniform(0, 2*np.pi, (20, 20)))
>>> im = np.fft.ifftn(n).real
>>> plt.imshow(im)
<matplotlib.image.AxesImage object at 0x...>
>>> plt.show()
../../_images/numpy-fft-ifftn-1.png

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

Spec-Zone.ru

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