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

输入数组,可以是复数.

s整数序列,可选

输出的形状(每个轴的长度)( 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 ,而不是 None 值. None 值目前意味着在相应的 1-D 变换中使用 n 的默认值,但此行为已被弃用.

axes整数序列,可选

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

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

norm{“backward”, “ortho”, “forward”},可选

归一化模式(请参阅 numpy.fft ).默认为 “backward”.指示缩放正向/反向变换对的哪个方向以及使用什么归一化因子.

在 1.20.0 版本加入: 增加了“backward”,“forward”值.

outcomplex ndarray, 可选

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

在 2.0.0 版本加入.

返回:
outcomplex ndarray

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

提出:
ValueError

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

IndexError

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

参见

numpy.fft

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

fft2

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

ifftn

n 维 FFT 的逆变换.

fft

一维FFT.

ifft

一维逆 FFT.

注释

ifft2 只是具有不同默认 axes 值的 ifftn .

有关详细信息和绘图示例,请参见 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]])