numpy.fft.ifft2#

fft.ifft2(a, s=None, axes=(-2, -1), norm=None, out=None)[源代码]#

计算二维逆离散傅里叶变换.

此函数通过快速傅里叶变换 (FFT) 计算 M 维数组中任意数量的轴上的二维离散傅里叶变换的逆变换.换句话说, ifft2(fft2(a)) == a 在数值精度范围内.默认情况下,逆变换是在输入数组的最后两个轴上计算的.

ifft 类似,输入应以与 fft2 返回的相同方式排序,即它应该在两个轴的低阶角中具有零频率项,在这些轴的前半部分中具有正频率项,在轴的中间具有奈奎斯特频率项,在两个轴的后半部分中具有负频率项,顺序为递减的负频率.

参数:
aarray_like

输入数组,可以是复数.

ssequence of ints, optional

输出的形状(每个轴的长度)( s[0] 指的是轴 0, s[1] 指的是轴 1,等等).这对应于 ifft(x, n)n .沿每个轴,如果给定的形状小于输入的形状,则输入将被裁剪.如果它更大,则输入将用零填充.

在 2.0 版本发生变更: 如果它是 -1 ,则使用整个输入(不填充/修剪).

如果未提供 s ,则使用输入沿 axes 指定的轴的形状.有关 ifft 零填充的问题,请参阅注释.

自 2.0 版本弃用: 如果 s 不是 None ,则 axes 也不能是 None .

自 2.0 版本弃用: s 必须仅包含 int s,而不是 None 值. None 值当前表示在相应的 1-D 变换中使用 n 的默认值,但是此行为已被弃用.

axessequence of ints, optional

在其上计算 FFT 的轴.如果未给出,则使用最后两个轴. axes 中的重复索引表示在该轴上多次执行变换.单元素序列表示执行一维 FFT.默认值: (-2, -1) .

自 2.0 版本弃用: 如果指定了 s ,则要变换的相应 axes 不能为 None .

norm{“backward”, “ortho”, “forward”}, optional

归一化模式(参见 numpy.fft ).默认值为"backward".指示前向/后向变换对的哪个方向被缩放以及使用什么归一化因子.

在 1.20.0 版本加入: 添加了"backward","forward"值.

outcomplex ndarray, optional

如果提供,结果将放置在此数组中.对于所有轴,它应具有适当的形状和 dtype(因此与传入除了琐碎的 s 之外的所有内容都不兼容).

在 2.0.0 版本加入.

返回:
outcomplex ndarray

沿 axes 指示的轴变换的截断或零填充输入,如果未给出 axes ,则沿最后两个轴变换.

Raises:
ValueError

如果 saxes 的长度不同,或者未给出 axeslen(s) != 2 .

IndexError

如果 axes 的元素大于 a 的轴数.

参见

numpy.fft

离散傅里叶变换的总体概述,包括所使用的定义和约定.

fft2

正向二维 FFT,其中 ifft2 是其逆变换.

ifftn

n 维 FFT 的逆变换.

fft

一维 FFT.

ifft

一维逆 FFT.

注释

ifft2 只是 ifftn ,但 axes 的默认值不同.

有关详细信息和绘图示例,请参见 ifftn ,有关所用定义和约定,请参见 numpy.fft .

ifft 类似,零填充是通过将零添加到输入沿指定维度来执行的.虽然这是常用的方法,但可能会导致令人惊讶的结果.如果需要另一种形式的零填充,则必须在调用 ifft2 之前执行.

示例

>>> import numpy as np
>>> a = 4 * np.eye(4)
>>> np.fft.ifft2(a)
array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
       [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j],
       [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
       [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]])