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”}, необязательно
New in version 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.13.0/reference/generated/numpy.fft.ifftn.html