【发布时间】:2016-07-19 22:00:51
【问题描述】:
所以我有这个矩阵 M=(50,50,250),我想获得沿第三维 = 250 的切片 S=(50,50) 的 FFT2。
假设我愿意
FT = fftshift(fft2(M));
这是按我的意愿计算 FT 吗?
因为在函数描述中它说 函数返回 X 的每个高维切片的二维 DFT。例如,如果 size(X) = [100 100 3],则 fft2 计算X(:,:,1), X(:,:,2) 和 X(:,:,3).
所以,我假设它正在计算沿第一维 = 50 的切片 S=(50x250) 的 FT。
谁能帮我解决这个问题?
【问题讨论】:
-
这是按我的意愿计算 FT 吗?是的。因此,我假设它正在计算沿第 1 维 = 50 的切片 S=(50x250) 的 FT。某种意义上,它正在计算沿第 3 维 250 帧/单位的切片 50*50。
-
Arg,
fftshift! Prakhar 的回答告诉你如何使用它的第二个参数来告诉它要移入哪个维度,但是我遇到了很多错误,因为我忘记了fftshift的第二个参数,我自己创建了i/fftshift函数,如果你不这样做,就会出错'当第一个参数是 2D/ND 数组时,不要给它第二个参数! -
但是 matlab fftshift 函数不是已经适用于 fft2,而您不必为每个维度单独执行这些步骤吗?