顯示廣告
隱藏 ✕
看板 DJJ_Course
作者 Knuckles(阿德)
標題 作業二的convolution問題
時間 2007年11月15日 Thu. PM 01:32:50


我以前有寫一篇圖解convolution範圍問題的筆記
給大家參考參考
(好像太晚貼了 XD)

補充說明:

題目是 x 有限定範圍為 N 點,h 無限長
x與h做convolution的結果 y 有限定範圍在 M 點

則我們可以將 h 的範圍限制在 N+M-1 點

如果是用一般的convolution來做,也就是用MATLAB的 y = conv(x,h) 指令
那求得的結果 y 就如上面那篇說明講的,會有 N+(N+M-1)-1 = 2N+M-2 點
我們要的結果是中間的 M 點,而兩邊的 N-1 點要捨棄

如果是用頻域的方法來做,也就是先做fft後相乘再ifft回來
要注意得先將x用0填補至h的長度 N+M-1,再做fft
或是可以直接用MATLAB的fft()指令將要求的長度補在第二個參數,如下:
X = fft(x,N+M-1); H = fft(h,N+M-1); y = ifft(X.*H,N+M-1)
所以最後求出來的結果 y 的長度也會是 N+M-1

因為長度不足正常的convolution結果的長度 2N+M-2
後面多出來的N-1點,會被加到前面的的N-1點
也就是會變成 circular convolution
不過沒關係,因為前面的 N-1 與後面的 N-1 點我們本來就不要
所以我們只要取結果後面的 M 點,即為所求


--
※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles  來自: 140.112.175.130  時間: 2007-11-15 13:32:50
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2007-11-15 15:56:18
dato: 阿德超帥...! >>124.8.20.98 11-25 23:37
※ 編輯: Knuckles  來自: 140.112.175.128  時間: 2008-10-13 04:18:27
※ 看板: DJJ_Course 文章推薦值: 2 目前人氣: 0 累積人氣: 2255 
( ̄︶ ̄)b lightwith 說讚!
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇