通常我們求解一維卷積或者二維卷積都是采用模板平移的方法,今天我們介紹一種新的求解方法,可以一次性求出所有的結果。
一維卷積
卷積定義
對于兩個長度分別為m和n的序列x(i)和g(i)有,
h(i)=x(i)?g(i)=∑jx(j)g(i?j)
上式給出了長度為N=m+n-1的輸出序列。稱為一維情況下的卷積公式。
循環矩陣
參考百度百科:
在線性代數中,循環矩陣是一種特殊形式的 Toeplitz矩陣,它的行向量的每個元素都是前一個行向量各元素依次右移一個位置得到的結果。由于可以用離散傅立葉變換快速解循環矩陣,所以在數值分析中有重要的應用。
定義
形式為
的 矩陣 C 就是循環矩陣。
性質
循環矩陣的性質:
1. 循環矩陣遵循代數運算法則。對于兩個循環矩陣 A 與 B 來說,A + B 也是循環矩陣。AB 也是循環矩陣,并且 AB=BA。
2. 循環矩陣的特征向量矩陣是同樣維數的離散傅立葉變換矩陣,因此循環矩陣的特征值可以很容易地通過快速傅立葉變換計算出來。
循環矩陣求解卷積
按照定義,卷積后的序列長為N=m+n-1;
于是分別用0擴充序列x,g,分別為:
xp(i)={x(i)01?x?mm<i?N
gp(i)={g(i)01?x?nn<i?N
由于是用g去卷積f,所以構造g的循環矩陣:
G=?????????gp(1)gp(2)?gp(N)gp(N)gp(1)?gp(N?1)gp(N?1)gp(2)?gp(N?2)????gp(2)gp(3)?gp(1)?????????
則
h=G?xp=?????????gp(1)gp(2)?gp(N)gp(N)gp(1)?gp(N?1)gp(N?1)gp(2)?gp(N?2)????gp(2)gp(3)?gp(1)????????????????xp(1)xp(2)?xp(N)???????
則h就是卷積后的向量。
二維卷積
卷積定義
循環矩陣求解方法
舉例
參考文獻
- 北大高級遙感數字圖像處理(碩士生課程)
- 離散卷積與自相關
