numpy.fft.ifftn
-
numpy.fft.ifftn(a, s=None, axes=None, norm=None)[source] -
Вычисление N-мерного обратного дискретного преобразования Фурье.
Эта функция вычисляет обратное N-мерное дискретное преобразование Фурье по любому количеству осей в массиве размерности M с использованием быстрого преобразования Фурье (FFT). Другими словами,
ifftn(fftn(a)) == aс точностью до погрешности округления. Для описания используемых определений и соглашений см.numpy.fft.Входные данные, аналогично
ifft, должны быть упорядочены так же, как возвращаетfftn, т.е. члены для нулевой частоты на всех осях должны быть в углу с наименьшими индексами, положительные частоты — в первой половине всех осей, члены для частоты Найквиста — в середине всех осей, а отрицательные частоты — во второй половине всех осей в порядке убывания отрицательной частоты.Параметры: a : array_like
Вводной массив, может быть комплексным.
s : последовательность целых чисел, необязательно
Форма (длина каждой преобразованной оси) выходного массива (
s[0]относится к оси 0,s[1]— к оси 1 и т. д.). Это соответствуетnдляifft(x, n). Если заданная форма меньше, чем форма входных данных вдоль любой оси, входные данные обрезаются. Если она больше, входные данные дополняются нулями. Еслиsне задано, используется форма входных данных вдоль осей, указанных вaxes. См. примечания для проблемы сifftзаполнением нулями.axes : последовательность целых чисел, необязательно
Оси, по которым вычисляется обратное ПФТ. Если не указано, используются последние
len(s)оси или все оси, если также не указаноs. Повторные индексы вaxesозначают, что обратное преобразование по этой оси выполняется несколько раз.norm : {None, “ortho”}, необязательно
Новое в версии 1.10.0.
Режим нормализации (см.
numpy.fft). Значение по умолчанию — None.Возвращает: 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], [ 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()
(Исходный код, png, pdf)
-
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.fft.ifftn.html