Main Content

fftn

N 维快速傅里叶变换

说明

示例

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

示例

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

示例

全部折叠

您可以使用 fftn 函数计算多维数组中每个维度的一维快速傅里叶变换。

创建一个三维信号 XX 的大小为 20×20×20。

x = (1:20)';
y = 1:20;
z = reshape(1:20,[1 1 20]);
X = cos(2*pi*0.01*x) + sin(2*pi*0.02*y) + cos(2*pi*0.03*z);

计算该信号的三维傅里叶变换,这也是一个 20×20×20 数组。

Y = fftn(X);

用零填充 X 以计算 32×32×32 变换。

m = nextpow2(20);
Y = fftn(X,[2^m 2^m 2^m]);
size(Y)
ans = 1×3

    32    32    32

输入参数

全部折叠

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

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

变换维度的长度,指定为由正整数组成的向量。sz 的元素对应于 X 的相应维度的变换长度。length(sz) 必须至少为 ndims(X)

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

详细信息

全部折叠

N 维傅里叶变换

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

Yp1,p2,...,pN=j1=0m11ωm1p1j1j2=0m21ωm2p2j2...jNmN1ωmNpNjNXj1,j2,...,jN.

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

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |