matlab中fftshift与ifftshift的区别?

matlab中fftshift与ifftshift的区别?

两者实际上是不同的。
fftshift就是对换数据的左右两边:
x=[1 2 3 4] fftshift(x) ->[3 4 1 2]
ifftshift是为了当数据不是偶数长度时加出来的一个函数:
x=[1 2 3 4 5] ifftshift(x) ->[4 5 3 1 2]

(1)ifftshift和fftshift执行的都是圆周位移的操作。fftshift是将数组或矩阵按正方向(向右和向下)做圆周位移,而ifftshift是按负方向(向左和向上)做圆周位移。圆周位移的步长等于数组或矩阵长度的一半,对于偶数是N/2,对于奇数是(N-1)/2。这也就是为什么对于偶数长的数组,fftshift和ifftshift的结果相同,而对于奇数长的数组,两者结果却不一样的原因。
(2)两次fftshift不能使数列恢复原状,而要如下使用:
ifftshift(fftshift(A))=A

猜你喜欢

转载自blog.csdn.net/yxnooo1/article/details/108315811