欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

matlab—— ifftshift,fftshift

最编程 2024-08-14 14:07:42
...
  1. fft(转换到频域)得到的像谱默认不是按照中心对称的(快速傅里叶变换的原因),一般需要用fftshift方法使得其按中心对称,这样的话当我们ifft时(转换回时域),得到的数据就会和之前实际的不一样了,所以还需加ifftshift 来还原。

  2. fft是一维的傅里叶变换,是将时域信号转换为频域信号的 fftshift是这针对频域信号的,将fft的DC分量移到频谱中心区,
    而iffshift是fftshift的逆运算,将fftshift还原。

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

少了omega =