一、向量的卷積運算
給定兩個n維向量α=(a0, a1, ..., an-1)T,β=(b0, b1, ..., bn-1)T,則α與β的卷積運算定義為:
α*β=(c0, c1, ..., c2n-2)T,其中
事實上,“卷積”的含義從矩陣αβT的表示即可以看出:不難發現,ck即為第k列副對角線元素之和。形象地講,對α與β作卷積,就像是將由α與β的元素形成的下述矩陣“面”沿副對角線方向卷了起來得到的“一束”向量。
卷積的蠻力算法的時間復雜度為O(n2)。為提高算法效率,可以采用分治策略,這將在下一篇博文有關快速傅立葉變換的內容中予以介紹。
二、卷積應用
2.1 多項式乘法
卷積運算與多項式乘法是對應的。不難驗證,設多項式f(x)=a0+a1x+a2x2+...+am-1xm-1, g(x)=b0+b1x+b2x2+...+bn-1xn-1,則f(x)g(x)得到的多項式的系數列向量就剛好是對f(x)與g(x)的系數列向量的卷積運算的結果。
2.2 信號平滑處理
由於噪聲干擾,信號往往需要進行平滑處理。
設信號向量為α=(a0, a1, ..., am-1),權向量β=(b2k, b2k-1, ..., b0)=(w-k, ..., wk)。一個比較常用的權向量的例子是高斯濾波權值向量,其中
這里z用於歸一化處理。
運用權向量β與信號向量α的卷積,我們可以實現為信號去噪,得到向量γ=(a'0, a'1, ..., a'm-1),其中
不過,對於邊界上的元素,由於缺項無法對齊,經過運算后可能存在誤差。