[問題]fftshift的問題已回收

看板MATLAB作者 (不是一朝一夕)時間15年前 (2010/10/27 00:04), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
想請教一些關於使用fft2時 對應使用fftshift的問題 首先先定義幾個函數 H12 是一個二維的相位函數Exp(-jx^2-jy^2) rH12是H12的反函數,一樣是二維的相位函數 這兩個函數我事先將他做了fftshift, ie H12=fftshift(H12) A是我的目標函數 是一張二維的圖片檔案 現在我想把A與H12作convolution 我使用的是Fourier轉換的方式來執行convolution ie. B = ifft2(fft2(A)*H12) 然後再把B與rH12做convolution得到C ie. C= ifft2(fft2(B)*rH12) 我預期C應該要經過fftshift(C)的動作才會與A在相位還有強度上完全相等 不知道這樣是否有錯? 我是否應該要在fft2(A)之前加上fftshift 變成 fft2(fftshift(A)) 這樣出來的才是正確的頻譜 而且頻譜排列是從 DC值開始. 一直不是很明白做兩次fftshift(fft2(fftshift(A)))的原因 不知道板上各位先進能不能幫忙解釋一下原因 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.62.90.238

10/31 21:55, , 1F
我覺得可以先不用fftshift~點就從0~2pi...最後要畫圖
10/31 21:55, 1F

10/31 21:55, , 2F
在用fftshift就好~ 兩軸都是0~2pi...蠻好掌握的
10/31 21:55, 2F

05/04 08:18, , 3F
第一次fftshift應該是要處理相位的部分~
05/04 08:18, 3F
文章代碼(AID): #1CnlmW2O (MATLAB)