1. 程式人生 > >Matlab中fftshift和ifftshift函式的區別與使用

Matlab中fftshift和ifftshift函式的區別與使用

開發十年,就只剩下這套架構體系了! >>>   

兩者實際上是不同的。首先,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]; C=ifftshift(A)=[3,4,5,1,2];

另外,兩次fftshift不能使數列恢復原狀,而要如下使用:

iff