[問題] 請問fft2已回收

看板MATLAB作者 (過去了..)時間17年前 (2009/02/04 14:32), 編輯推噓2(206)
留言8則, 2人參與, 最新討論串1/1
如果是fft 用help查過後 他的計算方法是 N X(k) = sum x(n)*exp(-j*2*pi*(k-1)*(n-1)/N), 1 <= k <= N. n=1 因此 假設x=[-1 2 3 5 0 0] 我可以帶進去得到與matlab跑出的相同結果 9.0000 -6.5000 - 4.3301i 1.5000 + 0.8660i -5.0000 1.5000 - 0.8660i -6.5000 + 4.3301i 不過對於fft2有點不太了解他的計算方法 用help查 他是寫說他的計算方法是 fft2(X) can be simply computed as fft(fft(X).').' 有點不太清楚 比如 我讓x=[1,2,3;4,5,6;7,8,9] 利用上述的方法 a=fft(x).' b=fft(a).' 可以得到 c=fft2(x)=b 不過如果要用手去計算x=[1,2,3;4,5,6;7,8,9]的fft2 要怎麼做呢 另一個問題是關於fftshift 如果做完fft2之後 再做fftsfift可以將DC項移到矩陣的中央 原因是matlab會把DC項放在前面 這是因為matlab本身計算就會這樣嗎 所以做完fft2之後 一定要加fftshift嗎 加fftshift除了可以移動DC項到中央 還有什麼其他用意嗎 感謝大家幫忙解答疑惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.172.244.131

02/04 14:42, , 1F
fft做完dc項本來就是在前面,數學就是這樣,不是matlab搞的
02/04 14:42, 1F

02/04 14:42, , 2F
移到中間是在看頻譜時比較好看而已
02/04 14:42, 2F

02/04 14:51, , 3F
所以有沒有做fftshift是沒有影響的嗎 感謝
02/04 14:51, 3F

02/04 14:53, , 4F
因為我做模擬的時候有加fftshift之後的結果與沒加有點
02/04 14:53, 4F

02/04 14:54, , 5F
差異 指的是影像的畫面結果
02/04 14:54, 5F

02/04 15:18, , 6F
如果只是要算,就沒影響,如果是要"好"看,再shift就好
02/04 15:18, 6F

02/04 15:18, , 7F
但如果你加了fftshift,在做ifft時記得先做ifftshift
02/04 15:18, 7F

02/04 16:37, , 8F
嗯嗯 了解了 感謝
02/04 16:37, 8F
文章代碼(AID): #19YJPXUn (MATLAB)
文章代碼(AID): #19YJPXUn (MATLAB)