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 : sequence of ints, optional -
Размер (длина каждой преобразованной оси) выходного массива (
s[0]относится к оси 0,s[1]к оси 1 и т.д.). Это соответствуетnдляifft(x, n). По любой оси, если заданный размер меньше размера входных данных, входные данные обрезаются. Если он больше, входные данные дополняются нулями. еслиsне задано, используется размер входных данных по осям, указанным вaxes. См. примечания к проблеме сifftдополнением нулями. -
axes : sequence of ints, optional -
Оси, по которым вычисляется обратное преобразование Фурье. Если не указано, используются последние
len(s)оси, или все оси, еслиsтакже не указано. Повторение индексов вaxesозначает, что обратное преобразование по этой оси выполняется несколько раз. -
norm : {None, “ortho”}, optional -
Новое в версии 1.10.0.
Режим нормализации (см.
numpy.fft). По умолчанию None.
Возвращает: -
out : complex ndarray -
Усечённый или дополненный нулями входной массив, преобразованный по осям, указанным в
axes, или по комбинацииsилиa, как описано в разделе параметров выше.
Возбуждает: - ValueError
-
Если
sиaxesимеют разную длину. - IndexError
-
Если элемент
axesбольше числа осей вa.
См. также
-
numpy.fft - Общий обзор дискретных преобразований Фурье с определениями и соглашениями, используемыми в них.
-
fftn - Прямое N-мерное FFT, обратное к которому является
ifftn. -
ifft - Обратное одномерное FFT.
-
ifft2 - Обратное двумерное FFT.
-
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()
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.fft.ifftn.html