Spec-Zone.ru › NumPy 1.21

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, т.е. член для нулевой частоты во всех осях должен находиться в углу с наименьшим порядком, положительные частоты - в первой половине всех осей, член для частоты Найквиста - посередине всех осей, а отрицательные частоты - во второй половине всех осей, в порядке убывания отрицательной частоты.

Параметры
aarray_like

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

sпоследовательность целых чисел, необязательно

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

axesпоследовательность целых чисел, необязательно

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

norm{“backward”, “ortho”, “forward”}, необязательно

Введено в версии 1.10.0.

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

Введено в версии 1.20.0: Были добавлены значения «backward», «forward».

Возвращает
outкомплексный массив ndarray

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

Возбуждает
ValueError

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

IndexError

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

См. также

numpy.fft

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

fftn

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

ifft

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

ifft2

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

ifftshift

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

Примечания

См. 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.fft.ifftn.html

Spec-Zone.ru

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