在matlab中进行FFT移位的有效方法(不使用fftshift函数)
如果你检查这个链接-这就是我在第一张图片中要做的-交换矩阵的象限 然而,如果没有几个循环来提取相关的子矩阵,我似乎想不出一个好的方法来实现这一点 我需要它来处理MxN矩阵,其中M和N可以是偶数和奇数的任意组合在matlab中进行FFT移位的有效方法(不使用fftshift函数),matlab,matrix,signal-processing,fft,Matlab,Matrix,Signal Processing,Fft,如果你检查这个链接-这就是我在第一张图片中要做的-交换矩阵的象限 然而,如果没有几个循环来提取相关的子矩阵,我似乎想不出一个好的方法来实现这一点 我需要它来处理MxN矩阵,其中M和N可以是偶数和奇数的任意组合 谢谢以下功能应该可以使用 sz = ceil(size(A)/2) A = A([sz(1)+1:end, 1:sz(1)], [sz(2)+1:end, 1:sz(2)]) 这只适用于2d矩阵,但很容易推广到Nd情况 如果在MATLAB的命令行中输入键入fftshift.m,您将看到M
谢谢以下功能应该可以使用
sz = ceil(size(A)/2)
A = A([sz(1)+1:end, 1:sz(1)], [sz(2)+1:end, 1:sz(2)])
这只适用于2d矩阵,但很容易推广到Nd情况 如果在MATLAB的命令行中输入
键入fftshift.m
,您将看到MATLAB实现该函数的源代码(如果希望在编辑器中以语法高亮显示的方式查看,请使用编辑fftshift.m
)。我不是在这里发布代码,因为它是受版权保护的。但是,您可以在您的计算机上试用它,并在C中重新实现相同的功能。如果您对其中任何一项都感兴趣,则由您自己决定许可条款等。为什么不能使用fftshift
?这是作业吗?你试过打开fftshift吗?我不想使用fftshift,因为我正在将一些matlab移植到C