著作權歸作者所有。
不要試圖直接從公式上去思考「翻轉」的意義,回到問題的起源,你就會豁然開朗了。
打個比方,往平靜的水面裡面扔石頭。我們把水面的反應看作是一種衝擊響應。水面在t=0時刻石頭丟進去的時候會激起高度為h(0)的波紋,但水面不會立馬歸於平靜,隨著時間的流逝,波紋幅度會越來越小,在t=1時刻,幅度衰減為h(1), 在t=2時刻,幅度衰減為h(2)……直到一段時間後,水面重複歸於平靜。
從時間軸上來看,我們只在t=0時刻丟了一塊石頭,其它時刻並沒有做任何事,但在t=1,2….時刻,水面是不平靜的,這是因為過去(t=0時刻)的作用一直持續到了現在。
那麼,問題來了:
如果我們在t=1時刻也丟入一塊石子呢?此時t=0時刻的影響還沒有消失(水面還沒有恢復平靜)新的石子又丟進來了,那麼現在激起的波浪有多高呢?答案是當前激起的波浪與t=0時刻殘餘的影響的疊加。那麼t=0時刻對t=1時刻的殘餘影響有多大呢?
為了便於說明,接下來我們作一下兩個假設:
1. 水面對於「單位石塊」的響應是固定的
2. 丟乙個兩倍於的「單位石塊」的石塊激起的波紋高度是丟乙個石塊的兩倍(即系統滿足線性疊加原理)
現在我們來計算每一時刻的波浪有多高:
y(0)=x(0)*h(0);
當前石塊引起的影響x(1)*h(0);
t=0時刻石塊x(0)引起的殘餘影響x(0)*h(1);
y(1)=x(1)*h(0)+ x(0)*h(1);
當前石塊引起的影響x(2)*h(0);
t=0時刻石塊x(0)引起的殘餘影響x(0)*h(2);
t=1時刻石塊x(1)引起的殘餘影響x(1)*h(1);
y(2)=x(2)*h(0)+ x(1)*h(1)+x(0)*h(2);
當前石塊引起的影響x(n)*h(0);
t=0時刻石塊x(0)引起的殘餘影響x(0)*h(n);
t=1時刻石塊x(1)引起的殘餘影響x(1)*h(n-1);
y(n)=x(n)*h(0)+ x(n-1)*h(1)+x(n-2)*h(2)+…+x(0)*h(n);
這就是離散卷積的公式了
理解了上面的問題,下面我們來看看「翻轉」是怎麼回事:
當我們每次要丟石子時,站在當前的時間點,系統的對我們的回應都是h(0),時間軸之後的(h(1),h(2).....)都是對未來的影響。而整體的回應要加上過去對於現在的殘餘影響。
現在我們來觀察t=4這個時刻。
站在t=0時刻看他對於未來(t=4)時刻(從現在往後4秒)的影響,可見是x(0)*h(4)
站在t=1時刻看他對於未來(t=4)時刻的影響(從現在往後3秒),可見是x(1)*h(3)
站在t=2時刻看他對於未來(t=4)時刻的影響(從現在往後2秒),可見是x(2)*h(2)
站在t=3時刻看他對於未來(t=4)時刻的影響(從現在往後1秒),可見是x(3)*h(1)
所謂的翻轉只是因為你站立的現在是過去的未來,而因為h(t)始終不變,故h(1)其實是前一秒的h(1),而前一秒的h(1)就是現在,所以從當前x(4)的角度往左看,你看到的是過去的作用。h(t)未翻轉前,當從h(0)往右看,你看到的是現在對於未來的影響,當翻轉h(t)之後,從h(0)往左看,你依次看到的越來越遠的過去對現在的影響,而這個影響,與從x=4向左看的作用影響相對應(都是越來越遠的過去),作用與作用的響應就對應起來了,這一切的本質,是因為你站立的時間觀察點和方向在變。
好像有點繞,其實@林麥講的蠻清楚的了,借用了他的圖,題主自己體會一下
matlab計算連續函式的卷積
以前讀書學習訊號與系統的時候,沒有用過matlab。現在補習一下。用matlab計算連續函式的卷積 1 首先新建乙個m檔案sconv.m,內容如下 function f,k sconv f1,f2,k1,k2,p f conv f1,f2 f f p k0 k1 1 k2 1 k3 length f...
連續函式的平移自交相關
前幾天,有人問我乙個有趣的數分問題 設 k 為大於1的正整數,f 0,k r是連續函式,滿足f 0 f k 證明 至少有 k 對不相同的 x 1,x2 滿足f x1 f x2 而且x2 x1 是整數。這是乙個很有意思的問題,初看這個問題,腦子裡大概有兩個想法 我們可以建構函式否定這兩個想法 實際上只...
1 9 閉區間上連續函式的性質
什麼叫函式在閉區間上連續?用影象表示 定理1 最值定理 若f x c a,b 則在 a,b 上一定能夠取到最小值m和最大值m,即存在x1,x2屬於 a,b 使得f x1 m,f x2 m 註解 函式在閉區間上連續是能取到最小值和最大值的充分不必要條件,如圖 定理2 有界定理 若f x c a,b 則...