scipy.fft.

ifftn#

scipy.fft.ifftn(x, s=None, оси=None, norm=None, overwrite_x=False, workers=None, *, plan=None)[источник]#

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

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

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

Параметры:
xarray_like

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

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

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

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

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

norm{“backward”, “ortho”, “forward”}, опционально

Режим нормализации (см. fft). По умолчанию “backward”.

overwrite_xbool, необязательно

Если True, содержимое x может быть уничтожен; по умолчанию False. См. fft для получения дополнительной информации.

workersint, необязательный

Максимальное количество рабочих процессов для параллельных вычислений. Если отрицательное, значение оборачивается с os.cpu_count(). См. fft для получения дополнительной информации.

planобъект, опционально

Этот аргумент зарезервирован для передачи предварительно вычисленного плана, предоставленного поставщиками FFT. В настоящее время не используется в SciPy.

Добавлено в версии 1.5.0.

Возвращает:
выходкомплексный ndarray

Усечённый или дополненный нулями вход, преобразованный вдоль осей, указанных оси, или комбинацией s или x, как объяснено в разделе параметров выше.

Вызывает:
ValueError

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

IndexError

Если элемент оси больше количества осей x.

Смотрите также

fftn

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

ifft

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

ifft2

2-D обратное БПФ.

ifftshift

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

Примечания

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

Примеры

>>> import scipy.fft
>>> import numpy as np
>>> x = np.eye(4)
>>> scipy.fft.ifftn(scipy.fft.fftn(x, 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
>>> rng = np.random.default_rng()
>>> n = np.zeros((200,200), dtype=complex)
>>> n[60:80, 20:40] = np.exp(1j*rng.uniform(0, 2*np.pi, (20, 20)))
>>> im = scipy.fft.ifftn(n).real
>>> plt.imshow(im)

>>> plt.show()
../../_images/scipy-fft-ifftn-1.png