Main Content

ifft2

二维快速傅里叶逆变换

说明

示例

X = ifft2(Y) 使用快速傅里叶变换算法返回矩阵的二维离散傅里叶逆变换。如果 Y 是一个多维数组,则 ifft2 计算大于 2 的每个维度的二维逆变换。输出 X 的大小与 Y 相同。

示例

X = ifft2(Y,m,n) 在计算逆变换之前截断 Y 或用尾随零填充 Y,以形成 m×n 矩阵。X 也是 m×n。如果 Y 是一个多维数组,ifft2 将根据 mn 决定 Y 的前两个维度的形状。

示例

X = ifft2(___,symflag) 支持上述语法中的任何输入参数组合,且可指定 Y 的对称性。例如,ifft2(Y,'symmetric')Y 视为共轭对称。

示例

全部折叠

您可以使用 ifft2 函数将按频率采样的二维信号转换为按时间或空间采样的信号。ifft2 函数还允许您控制变换的大小。

创建一个 3×3 矩阵并计算其傅里叶变换。

X = magic(3)
X = 3×3

     8     1     6
     3     5     7
     4     9     2

Y = fft2(X)
Y = 3×3 complex

  45.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  13.5000 + 7.7942i   0.0000 - 5.1962i
   0.0000 - 0.0000i   0.0000 + 5.1962i  13.5000 - 7.7942i

计算 Y 的逆变换,结果与原始矩阵 X 相同(基于舍入误差)。

ifft2(Y)
ans = 3×3

    8.0000    1.0000    6.0000
    3.0000    5.0000    7.0000
    4.0000    9.0000    2.0000

用尾随零填充 Y 的两个维度,使变换的大小为 8×8。

Z = ifft2(Y,8,8);
size(Z)
ans = 1×2

     8     8

对于接近共轭对称的矩阵,通过指定 'symmetric' 选项,可以更快地计算傅里叶逆变换,还可以确保输出为实数。

计算接近共轭对称矩阵的二维傅里叶逆变换。

Y = [3+1e-15*i 5;
     5 3];
X = ifft2(Y,'symmetric')
X = 2×2

     4     0
     0    -1

输入参数

全部折叠

输入数组,指定为矩阵或多维数组。如果 Y 的类型为 single,则 ifft2 本身以单精度进行计算,X 的类型也是 single。否则,Xdouble 类型返回。

数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
复数支持:

逆变换行数,指定为正整数标量。

数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

逆变换列数,指定为正整数标量。

数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

对称类型,指定为 'nonsymmetric''symmetric'。当 Y 由于舍入误差而导致不完全共轭对称时,ifft2(Y,'symmetric') 会通过忽略 Y 的后一半元素(在负频谱中)将它视为共轭对称。有关共轭对称的详细信息,请参阅算法

详细信息

全部折叠

二维傅里叶逆变换

以下公式定义 m×n 矩阵 Y 的离散傅里叶逆变换 X:

Xp,q=1mj=1m1nk=1nωm(j1)(p1)ωn(k1)(q1)Yj,k

ωm 和 ωn 是复单位根:

ωm=e2πi/mωn=e2πi/n

i 是虚数单位。p 的范围从 1 到 m,q 的范围从 1 到 n。

算法

  • ifft2 函数测试矩阵 Y 是否为共轭对称矩阵。如果 Y 为共轭对称矩阵,则逆变换计算更快,并且输出为实数。

    如果 g(a,b)=g*(a,b),则函数 g(a,b) 为共轭对称函数。然而,二维时域信号的快速傅里叶变换有一半频谱处于正频率,另一半处于负频率,第一行和第一列保留用于零频率。因此,当所有这些条件都成立时,矩阵 Y 为共轭对称矩阵:

    • Y(1,2:end) 为共轭对称,即 Y(1,2:end) = conj(Y(1,end:-1:2))

    • Y(2:end,1) 为共轭对称,即 Y(2:end,1) = conj(Y(end:-1:2,1))

    • Y(2:end,2:end) 为共轭中心对称,即 Y(2:end,2:end) = conj(Y(end:-1:2,end:-1:2))

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | | |