看板 MATLAB 關於我們 聯絡資訊
想請問各位有做影像修正的大大,小弟最近在lab裡解決如何deconv加雜訊了訊號 讀了paper試了幾種deconv方法,像Jansson、Wiener、L-R等等在study wiener時 發現,內建deconvwnr指令一開始有執行一行指令 H = psf2otf(PSF, sizeI) 從名稱來看是轉換psf函數成otf函數,查了一下定義otf函數是psf函數的頻域 再把psf2otf打開看,發現中間有段... -------------------------------------------------------------------- % Circularly shift otf so that the "center" of the PSF is at the % (1,1) element of the array. psf = circshift(psf,-floor(psfSize/2)); % Compute the OTF otf = fftn(psf); --------------------------------------------------------------------- 它把輸入訊號psf做循環移位1/2長度,結果似乎在消除出輸出輸入之間的phase delay?小弟這種理解不知有無錯誤,有人知道為何要如此位移嘛?謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.90.130 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1487578548.A.8A9.html
YoursEver: 如同註解所述,目的是將point spread function的中心移 02/21 02:05
YoursEver: 到矩陣的左上角. 若實際看一下wiener deconv filter的 02/21 02:07
YoursEver: 式子,你會看見好幾個在freq. domain上的相乘,這些乘法 02/21 02:08
YoursEver: 在實際運作時都是Hadamard prodcut,所以那道平移的程序 02/21 02:11
YoursEver: 多半只是為了確保頻域上的各個項能對齊罷了 02/21 02:11
nc23nick: 謝謝y大,我知道wiener公式裡頻域相除都是點對點,只是 02/22 02:05
nc23nick: 對移位1/2長度就能讓頻域對齊很好奇,y大能解釋一下嘛? 02/22 02:08
YoursEver: 為了下一行的 otf=fftn(psf); 02/22 15:54