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для определений и используемых соглашений.Дополнение нулями, аналогично
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.10.1/reference/generated/numpy.fft.ifftn.html