Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlab中进行FFT移位的有效方法(不使用fftshift函数)_Matlab_Matrix_Signal Processing_Fft - Fatal编程技术网

在matlab中进行FFT移位的有效方法(不使用fftshift函数)

在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

如果你检查这个链接-这就是我在第一张图片中要做的-交换矩阵的象限

然而,如果没有几个循环来提取相关的子矩阵,我似乎想不出一个好的方法来实现这一点

我需要它来处理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
,您将看到MATLAB实现该函数的源代码(如果希望在编辑器中以语法高亮显示的方式查看,请使用
编辑fftshift.m
)。我不是在这里发布代码,因为它是受版权保护的。但是,您可以在您的计算机上试用它,并在C中重新实现相同的功能。如果您对其中任何一项都感兴趣,则由您自己决定许可条款等。

为什么不能使用
fftshift
?这是作业吗?你试过打开fftshift吗?我不想使用fftshift,因为我正在将一些matlab移植到C