本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

ifftn

多维快速傅里叶逆变换

说明

示例

X = ifftn(Y) 使用快速傅里叶变换算法返回 N 维数组的多维离散傅里叶逆变换。N 维逆变换相当于沿 Y 的每个维度计算一维逆变换。输出 X 的大小与 Y 相同。

示例

X = ifftn(Y,sz) 将在进行逆变换之前根据向量 sz 的元素截断 Y 或用尾随零填充 Ysz 的每个元素定义对应变换维度的长度。例如,如果 Y 是一个 5×5×5 数组,X = ifftn(Y,[8 8 8]) 将用零填充每个维度,从而产生 8×8×8 逆变换 X

示例

X = ifftn(___,symflag) 指定 Y 的对称性。例如,ifftn(Y,'symmetric')Y 视为共轭对称。

示例

全部折叠

您可以使用 ifftn 函数将频率采样多维数据转换为时空采样数据。ifftn 函数还允许您控制变换的大小。

创建一个 3×3×3 数组并计算它的傅里叶逆变换。

Y = rand(3,3,3);
ifftn(Y);

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

X = ifftn(Y,[8 8 8]);
size(X)
ans = 1×3

     8     8     8

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

计算接近共轭对称数组的三维傅里叶逆变换。

Y(:,:,1) = [1e-15*i 0; 1 0];
Y(:,:,2) = [0 1; 0 1];
X = ifftn(Y,'symmetric')
X = 
X(:,:,1) =

    0.3750   -0.1250
   -0.1250   -0.1250


X(:,:,2) =

   -0.1250    0.3750
   -0.1250   -0.1250

输入参数

全部折叠

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

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

逆变换维度的长度,指定为由正整数组成的向量。

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

对称类型,指定为 'nonsymmetric''symmetric'。当 Y 由于舍入误差而导致不完全共轭对称时,ifftn(Y,'symmetric') 会将 Y 视为共轭对称。有关共轭对称的详细信息,请参阅算法

详细信息

全部折叠

N 维傅里叶逆变换

N 维数组 Y 的离散傅里叶逆变换 X 定义为

Xp1,p2,...,pN=j1=1m11m1ωm1p1j1j2=1m21m2ωm2p2j2...jN=1mN1mNωmNpNjNYj1,j2,...,jN.

每个维度的长度为 mk,其中 k = 1,2,...,N,而 ωmk=e2πi/mk 是复单位根,其中 i 是虚数单位。

算法

  • ifftn 函数测试数组 Y 中的向量是否在所有维度上都共轭对称。当向量 v 的第 i 个元素满足 v(i) = conj(v([1,end:-1:2])) 时,它就是一个共轭对称向量。如果 Y 中的向量在所有维度上都共轭对称,则逆变换的计算速度更快,并且输出为实数。

扩展功能

另请参阅

| | | |

在 R2006a 之前推出