以上來(lái)自知乎:通俗理解卷積枫攀,本人尊重版權(quán),僅作為筆記用
卷積就是以一個(gè)函數(shù)為輸入函數(shù)聚谁,在輸入函數(shù)每個(gè)點(diǎn)上,以輸入函數(shù)為系數(shù)疊加位移了的響應(yīng)函數(shù),最終得到的函數(shù)洲炊。
在輸入信號(hào)的每個(gè)位置,疊加一個(gè)單位響應(yīng)尼啡,就得到了輸出信號(hào)暂衡。
在打游戲的時(shí)候,假設(shè)你對(duì)敵方英雄造成了一次攻擊崖瞭。攻擊的效果是狂巢,地方英雄會(huì)在接下來(lái)5秒內(nèi)持續(xù)增長(zhǎng)的掉血。每秒掉血分別為1 2 3 4 5书聚;那么你在0秒的時(shí)候攻擊了一下敵方英雄唧领,敵方英雄的掉血情況為:
抽象一下。假設(shè)x[k]是一個(gè)單位信號(hào)(一次攻擊)雌续,即僅當(dāng)k=0時(shí)x(k) = 1.假設(shè)把這個(gè)信號(hào)輸入到一個(gè)系統(tǒng)里面得到的響應(yīng)為h[n]:
同樣斩个,假設(shè)你在第2秒對(duì)地方英雄進(jìn)行了攻擊,則敵方英雄會(huì)在地2-7秒持續(xù)掉血驯杜。
由于攻擊不是在第0秒萨驶,而是在第二秒,因此艇肴,產(chǎn)生傷害也是從第二秒開(kāi)始腔呜。使用函數(shù)位移的想法了解釋叁温,則本來(lái)第0秒產(chǎn)生的傷害右移了兩個(gè)單位,變成了h[n-2]:
那么核畴,如果第0秒和第2秒都進(jìn)行了攻擊膝但,傷害是怎樣的呢?當(dāng)然是第0秒的傷害加上第2秒的傷害谤草,即:
那么跟束,對(duì)于任意形式的攻擊x[k],很容易推廣到丑孩,產(chǎn)生的傷害y[n]計(jì)算方法為:
這就是卷積的公式冀宴。解釋很簡(jiǎn)單,就是對(duì)任意的攻擊x[k]温学,產(chǎn)生的傷害就是略贮,把所有k時(shí)刻的攻擊產(chǎn)生的傷害h[n-k]都疊加起來(lái)了。
那么仗岖,如果我想知道逃延,對(duì)與任意的攻擊方式,敵方英雄某一秒(比如第3秒)受到的傷害是怎樣的呢轧拄?
即揽祥,對(duì)于輸入x[k],任意一個(gè)y[n]點(diǎn)的傷害是怎樣的呢檩电?
我把不同k時(shí)候的關(guān)于n的函數(shù)h[n-k]全部畫(huà)出來(lái)拄丰。如上圖中不同的縱軸表示。那第三秒敵方英雄收到的傷害y[3]等于x(0) h(3)+ x(1) h(3-1)+ x(2) h(3-2)+ x(3) h(3-3).
注意@S浮!在上圖的表示中鹅搪,我并未直接計(jì)算 站绪,而是將其表示為不同的函數(shù)h[n-k]與不同的[k]的組合!丽柿!
------------學(xué)術(shù)的分割線--------------
也就是說(shuō)恢准,以離散信號(hào)為例,
卷積y[n] = x[n] * h[n]甫题,可以理解為馁筐,將y[n]分為不同的 分量為h[n-k]、系數(shù)為x[k]的線性組合坠非。也就是說(shuō)敏沉,y[n]是一系列關(guān)于h[n]移位后的h[n-k],每個(gè)函數(shù)h[n-k]乘上特定的系數(shù)x[k] 組合而成的函數(shù)。
這種 “用一組函數(shù)進(jìn)行線性組合得到目標(biāo)函數(shù)”的理念盟迟,在傅里葉分析中也有應(yīng)用:將原始信號(hào)y[n],分為一系列諧波信號(hào)e^(jkwn)的函數(shù)的線性組合秋泳。
再來(lái)看這個(gè)圖:
你想到了什么?攒菠?