李昌利
(河海大學計算機與信息學院,江蘇南京211100)
“信號與系統(tǒng)”課程中有一個非常重要的結(jié)論:離散線性時不變系統(tǒng)的響應為系統(tǒng)脈沖響應序列與輸入序列的卷積(線性卷積)?!皵?shù)字信號處理”課程中又定義了兩個有限長序列的循環(huán)卷積運算??梢岳秒x散傅里葉變換的時域循環(huán)卷積性質(zhì)來計算兩個序列的線性卷積,而離散傅里葉變換可以通過快速傅里葉變換完成。通常的《數(shù)字信號處理》教材中討論循環(huán)卷積時,給出了計算公式和計算實例,但都是從定義出發(fā),計算過程復雜。本文從線性卷積的簡單計算方法入手,利用線性卷積與循環(huán)卷積的關系,提出一個非常簡便的計算循環(huán)卷積方法。
首先定義模運算。對任意整數(shù)m,m對N取模的運算符為:<m>N=m+lN,模運算定義為找一個整數(shù)l,使得0m+lNN-1。例如,<23>7=2,只要l=-3即可,又例如,<-13>7=1,只要l=2即可。
式中,N點循環(huán)卷積yC,N(n)定義域為0nN-1,長度為N。
對上述定義域內(nèi)的x(n)和h(n),在“信號與系統(tǒng)”課程中定義了兩者的線性卷積為
式中,yL(n)的定義域為0nM1+M2-2,有效長度為M1+M2-1。
[1] 指出循環(huán)卷積與線性卷積存在以下關系式:
由此可知,當N≥M1+M2-1時,循環(huán)卷積與線性卷積相等;而當max(M1+M2)N<M1+M2-1時,循環(huán)卷積與線性卷積不等。參考文獻[2] 和[3] 詳細證明了以上結(jié)論。
我們首先簡單介紹計算序列x(n)和序列h(n)線性卷積的序號和匹配法[4],該法采用如下步驟。
(1)按序把x(n)和h(n)的序列值從左至右排列成兩行。兩個序列的第一個序列值排列時對齊,每個序列值占據(jù)一格;
(2)把x(n)的第一個序列值與h(n)的各個序列值依次相乘,把乘積結(jié)果按序從左至右排列,每個乘積結(jié)果占據(jù)一格;
(3)把x(n)的第二個序列值與h(n)的各個序列值依次相乘,把乘積結(jié)果按序從左至右排列,排列的起始位置較(2)右移一格;
(4)依據(jù)同樣的方法,把x(n)的其它序列值與h(n)的各個序列值依次相乘,之后把所得的乘積結(jié)果依次排列,排列的起始位置依次右移一格;
(5)把同一列的乘積結(jié)果相加就是線性卷積結(jié)果,對應的序號n從左至右依次遞增。
現(xiàn)在先計算5點循環(huán)卷積yC,4(n)。式(3)右邊第二項yL(n+N)是由yL(n)左移5個單位形成的,得到如圖1所示的中間結(jié)果yL(n+5)。因為循環(huán)卷積的定義域為0n4,所以只需考慮式(3)右邊兩項在0n4的部分,兩項在0n4內(nèi)的部分相加的最終結(jié)果如圖2所示。
同理可得,6點循環(huán)卷積的最終結(jié)果如圖3所示,7點循環(huán)卷積的中間結(jié)果如圖4所示。
圖1 計算5點循環(huán)卷積的中間結(jié)果
2計算5點循環(huán)卷積的最終結(jié)果
圖3 計算6點循環(huán)卷積的最終結(jié)果
圖4 計算7點循環(huán)卷積的最終結(jié)果
很容易驗證,以上按列得到的各項恰與按式(1)計算得到的各項一致。事實上,也能以前述方法先計算兩個序列的線性卷積yL(n),再取(3)的右邊,然后取兩項相加結(jié)果在主值區(qū)間0nN-1的部分,此即序列的N點循環(huán)卷積yC,N(n)。
設x(n)={2,1,0,1}和h(n)={2,3,0,1,2},計算兩者的6點循環(huán)卷積yC,6(n)。
先計算兩個序列的線性卷積,得到的結(jié)果如圖5所示。為了計算序列的6點循環(huán)卷積,將圖5的結(jié)果整體左移6個單位,得到式(3)計算循環(huán)卷積的兩項,中間結(jié)果如圖6所示,圖的底部標出了對應列的序號n。將前述結(jié)果在0n5的部分相加,得到的結(jié)果如圖7所示,該圖還給出了按列相加的結(jié)果,這就是最后的6點循環(huán)卷積結(jié)果yC,6(n)={5,10,3,4,8,2},最后一行標示了對應的序號n。
圖5 線性卷積的計算
圖6 循環(huán)卷積的中間結(jié)果
圖7循環(huán)卷積的最終結(jié)果
直接依據(jù)定義計算兩個序列的循環(huán)卷積很繁瑣。多數(shù)《數(shù)字信號處理》教材直接利用定義式計算循環(huán)卷積,由于定義式涉及到取模運算,所以計算過程很容易出錯。分析表明。兩個序列的循環(huán)卷積與線性卷積存在一個非常簡單的關系式,而兩個有限長序列的線性卷積很容易通過序號和匹配法計算,這樣就得到本文提出的用于計算循環(huán)卷積的簡單方法。文章涉及到的概念及公式是自包含的,本文通過具體分析和計算實例,詳細地介紹了所提出的方法,便于讀者閱讀和參考。
參考文獻:
[1] Vinay K.Ingle等著,劉樹棠譯.數(shù)字信號處理(MATLAB版)[M] .西安:西安交通大學出版社,2008
[2] 李昌利,霍冠英?!皵?shù)字信號處理”中重疊保留法的證明[J] 。南京:電氣電子教學學報.2011,33(6):31-32
[3] 于鳳芹,張志剛,李昌利。數(shù)字信號處理簡明教程[M] .北京:科學出版社,2011
[4] 李昌利。有限長序列卷積和求解法[M] 。南京:電氣電子教學學報.2008,30(1):63-65