http://www.mathworks.com/help/techdoc/ref/fftshift.htmlEffcient办法做到在Matlab FFT移(不使用fftshift功能)
如果您检查链接 - 这就是我要在第一张照片的事 - 矩阵交换象限。
但是,我似乎没有想到一个好的方法来做到这一点,没有几个循环拉出相关的子矩阵。
我需要它与MxN矩阵一起工作,其中M和N可以是偶数和奇数的任意组合。
感谢
http://www.mathworks.com/help/techdoc/ref/fftshift.htmlEffcient办法做到在Matlab FFT移(不使用fftshift功能)
如果您检查链接 - 这就是我要在第一张照片的事 - 矩阵交换象限。
但是,我似乎没有想到一个好的方法来做到这一点,没有几个循环拉出相关的子矩阵。
我需要它与MxN矩阵一起工作,其中M和N可以是偶数和奇数的任意组合。
感谢
如果您在MATLAB的命令行输入type fftshift.m
,您将看到MATLAB实现函数的源代码(如果您想在编辑器中使用语法高亮显示,请使用edit fftshift.m
)。我没有在这里发布代码,因为它是受版权保护的。但是,您可以在您的机器上尝试它,然后在C中重新实现它。如果您遇到任何问题,则可以自行决定授权条款等。
下应该工作
sz = ceil(size(A)/2)
A = A([sz(1)+1:end, 1:sz(1)], [sz(2)+1:end, 1:sz(2)])
这仅适用于二维矩阵,但是可以很容易地推广到钕情况。
为什么你不能使用'fftshift'?这是功课吗? – abcd 2011-04-20 19:47:05
你尝试过'打开fftshift'吗? – Phonon 2011-04-20 20:26:00
我不想使用fftshift,因为我正在将一些matlab移植到C – Derek 2011-04-20 20:53:53