文/謝沛凝
卷積方法是“信號與系統”在論述系統對輸入信號的響應而提出的,原理是將信號分解為沖擊信號之和,借助系統的沖擊響應,求解系統對任意激勵信號的零狀態響應。在“信號與系統”中,卷積是對線性時不變系統的連續時間信號即模擬信號的論述,公式表示為r(t)=e(t)*h(t)=∫ e(τ)h(t-τ)dτ 。
離散序列的卷積公式:y(n)=x(n)*h(n)= Σx(m)h(n-m),此處m為負無窮到正無窮。
卷積的過程就是相當于把信號分解為無窮多的沖擊信號,然后進行沖擊響應的疊加,關鍵在于疊加。
拿生活中最簡單的例子,吃餃子為列:
假設小明非常的餓,到飯店去吃餃子,每十分鐘上十個餃子,一共要了一百個餃子,分十次吃完。那么在第一個十分鐘內小明吃到了十個餃子,感到飽腹感。等了一會又吃了十個餃子,又有飽腹感。直到小明吃完最后十個餃子,他感覺自己跟沒吃一樣,為什么會產生這樣的結果?
人即為系統,吃餃子即為脈沖以后,會有什么表現(輸出)?
小明在很餓的情況下一次吃10個餃子相當于輸出為0;如果一次連續吃20個餃子則視為輸出1;吃30個餃子,他會感覺到明顯的飽腹感,即輸出3;一次吃40個餃子,小明可能就會很撐,相當于系統輸出5;一下子吃100個餃子,他可能就輸出0。
見圖1,下面我用一個圖表幫助大家理解,以吃餃子的個數作為X軸,以飽腹感的程度(輸出)為Y軸,繪制了一條曲線:

圖1
小明吃100個餃子還是感到饑餓,是因為每次吃餃子的時間間隔(Δτ=1小時)太長了,所以在十分鐘內,小明把吃到的10個餃子完全消化了,并沒有產生疊加效應,始終是一個常數;如果縮短吃餃子的的時間間隔(Δτ=5分鐘),那他的飽腹感可就迅速疊加了;等到小明吃完100個餃子時,飽腹感就會達到最大,會收到最好的效果。
這與線性時不變系統對脈沖、輸入、激勵的響應有關。小明吃餃子后會慢慢消化餃子,飽腹的感覺會在慢慢消失,但是不可能突然消失。這樣一來,只要吃餃子的時間間隔很小,每一個餃子產生的效應都不會完全衰減,只是對最終的飽腹程度有不同的貢獻。就像系統突然受到一個脈沖信號(信號瞬間消失),系統則會在某一時刻開始緩慢的衰減,直到為0。在衰減過程中又受到了一個瞬間脈沖信號,則信號會在原來衰減的地方累加上本次脈沖信號。若上次脈沖信號完全衰減為0時,本次脈沖信號則重復上次的動作,即上次脈沖對系統沒有產生影響。
即:n個餃子造成的飽腹感=Σ(第m個餃子給予的飽腹感*衰減系數),數學表達為:y(n)=Σx(m)h(n-m)。
通俗地說卷積的物理意義就在于單位沖激響應在輸入信號上的疊加,對于線性時不變系統,只要知道該系統的單位沖激響應,那么求卷積就相當于把輸入信號的各時間間隔的響應乘以沖激響應后相疊加,就可以直接得到輸出信號。
通俗的說:在輸入信號的每個位置,疊加一個單位響應,就得到了輸出信號。