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()
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.fft.ifftn.html