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–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.fft.ifftn.html