卷积(转自wiki百科)
-
維基百科,自由的百科全書
圖示兩個方形脈沖波的卷積。其中函數 "g" 首先對??反射,接著平移 "t" ,成為??。那么重疊部份的面積就相當于 "t" 處的卷積,其中橫坐標代表待積變量??以及新函數??的自變量 "t" 。
圖示方形脈沖波和指數衰退的脈沖波的卷積(后者可能出現于?RC電路中),同樣地重疊部份面積就相當于 "t" 處的卷積。注意到因為 "g" 是對稱的,所以在這兩張圖中,反射并不會改變它的形狀。
在泛函分析中,卷積(捲積)、旋積或摺積,是通過兩個函數f?和g?生成第三個函數的一種數學算子,表征函數f?與經過翻轉和平移的g?的重疊部分的累積。如果將參加卷積的一個函數看作區間的指示函數,卷積還可以被看作是“滑動平均”的推廣。
目錄
- 1 簡單介紹
- 2 定義
- 2.1 計算卷積的方法
- 2.1.1 方法1 直接計算
- 2.1.2 方法2 快速傅里葉轉換(FFT)
- 2.1.3 方法3 分段卷積(sectioned convolution)
- 2.1.4 應用時機
- 2.1.4.1 例子
- 2.2 多元函數卷積
- 2.1 計算卷積的方法
- 3 性質
- 4 卷積定理
- 5 在群上的卷積
- 6 應用
- 7 參見
- 8 外部鏈接
簡單介紹
卷積是分析數學中一種重要的運算。設:??,是上的兩個可積函數,作積分:
可以證明,關于幾乎所有的??,上述積分是存在的。這樣,隨著??的不同取值,這個積分就定義了一個新函數,稱為函數?與?的卷積,記為。我們可以輕易驗證:,并且?仍為可積函數。這就是說,把卷積代替乘法,?空間是一個代數,甚至是巴拿赫代數。
卷積與傅里葉變換有著密切的關系。例如兩函數的傅里葉變換的乘積等于它們卷積后的傅里葉變換,利用此一性質,能簡化傅里葉分析中的許多問題。
由卷積得到的函數??一般要比??和??都光滑。特別當??為具有緊支集的光滑函數,?為局部可積時,它們的卷積??也是光滑函數。利用這一性質,對于任意的可積函數??,都可以簡單地構造出一列逼近于??的光滑函數列??,這種方法稱為函數的光滑化或正則化。
卷積的概念還可以推廣到數列、測度以及廣義函數上去。
定義
函數f?與g?的卷積記作,它是其中一個函數翻轉并平移后與另一個函數的乘積的積分,是一個對平移量的函數。
積分區間取決于f?與g?的定義域。
對于定義在離散域的函數,卷積定義為
圖解卷積
- 首先將兩個函數都用來表示。
- 對其中一個函數做水平翻轉:??→
- 加上一個時間偏移量,讓??能沿著??軸滑動。
- 讓t從-∞滑動到+∞。兩函數交會時,計算交會范圍中兩函數乘積的積分值。換句話說,我們是在計算一個滑動的的加權平均值。也就是使用當做加權函數,來對取加權平均值。
- 最后得到的波形(未包含在此圖中)就是f和g的卷積。
- 作法: 利用卷積的定義
- 若?和??皆為實數信號,則需要??個乘法。
- 若?和??皆為更一般性的復數信號,不使用復數乘法的快速算法,會需要??個乘法;但若使用復數乘法的快速算法,則可簡化至?個乘法。
- 因此,使用定義直接計算卷積的復雜度為??。
- 概念:由于兩個離散信號在時域(time domain)做卷積相當于這兩個信號的離散傅里葉轉換在頻域(frequency domain)做相乘:
- ,可以看出在頻域的計算較簡單。
- 作法: 因此這個方法即是先將信號從時域轉成頻域:
- ,于是
- ,最后再將頻域信號轉回時域,就完成了卷積的計算:
- 總共做了 2 次 DFT 和 1 次 IDFT。
- 特別注意 DFT 和 IDFT 的點數??要滿足??。
- 由于 DFT 有快速算法 FFT,所以運算量為?
- 假設?點 DFT 的乘法量為??,?和??為一般性的復數信號,并使用復數乘法的快速算法,則共需要?個乘法。
- 概念: 將??切成好幾段,每一段分別和??做卷積后,再將結果相加。
- 作法: 先將??切成每段長度為??的區段 (),假設共切成S段:
- Section 1:?
- Section 2:?
- Section r:?
- Section S:?
- ,為各個section的和
- 因此, ,
- 每一小段作卷積則是采用方法2,先將時域信號轉到頻域相乘,再轉回時域: 。
- 總共只需要做?點 FFT??次,因為??只需要做一次FFT。
- 假設?點 DFT 的乘法量為??,?和??為一般性的復數信號,并使用復數乘法的快速算法,則共需要個乘法。
- 運算量:?
- 運算復雜度:??,和??呈線性,較方法2小。
- 分為 Overlap-Add 和 Overlap-Save 兩種方法。
-
分段卷積: Overlap-Add
欲做的分段卷積分,?長度為?,?長度為?,
Step 1: 將每??分成一段
Step 2: 再每段??點后面添加?個零,變成長度?
Step 3: 把? ?添加 個零,變成長度? 的? h'[n]}
Step 4: 把每個? x[n]}?的小段和? h'[n]}?做快速卷積,也就是 IDFT_{L+M-1}\{{DFT_{L+M-1}(x[n])DFT_{L+M-1}(h'[n])}\}},每小段會得到長度? ?的時域信號
Step 5: 放置第? i}?個小段的起點在位置? L\times i}?上,? i=0,1,...,\lceil {\frac {N}{L}}\rceil -1}
Step 6: 會發現在每一段的后面? M-1}?點有重疊,將所有點都相加起來,顧名思義 Overlap-Add,最后得到結果
舉例來說:
x[n]=[1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5]}, 長度? N=15}
h[n]=[1,2,3]}, 長度? M=3}
令? L=5}
-
x[n]和h[n]
令? L=5}?切成三段,分別為? x_{0}[n],x_{1}[n],x_{2}[n]}, 每段填? M-1}?個零,并將? ?填零至長度?
-
分段x[n]
將每一段做 IDFT_{L+M-1}\{{DFT_{L+M-1}(x[n])DFT_{L+M-1}(h'[n])}\}}
-
分段運算結果
若將每小段擺在一起,可以注意到第一段的范圍是? 0\thicksim 6}?,第二段的范圍是? 5\thicksim 11},第三段的范圍是? 10\thicksim 16},三段的范圍是有重疊的
-
合并分段運算結果
最后將三小段加在一起,并將結果和未分段的卷積做比較,上圖是分段的結果,下圖是沒有分段并利用快速卷積所算出的結果,驗證兩者運算結果相同。
-
結果比較圖
分段卷積: Overlap-Save
欲做 x[n]*h[n]}的分段卷積分, x[n]}?長度為? N}, ?長度為? M},
Step 1: 將? x[n]}?前面填? M-1}?個零
Step 2: 第一段? i=0}, 從新的? ?中? ?取到?總共? ?點當做一段,因此每小段會重復取到前一小段的? 點,取到新的一段全為零為止
Step 3: 把? ?添加? L-M}?個零,變成長度? ?的
Step 4: 把每個?的小段和??做快速卷積,也就是,每小段會得到長度?的時域信號
Step 5: 對于每個小段,只會保留末端的?點,因此得名 Overlap-Save
Step 6: 將所有保留的點合再一起,得到最后結果
舉例來說:
, 長度
, 長度
令?
-
-
x[n]和h[n]
-
將??前面填?個零以后,按照 Step 2 的方式分段,可以看到每一段都重復上一段的?點
-
分段x[n]
再將每一段做以后可以得到
-
分段運算結果
保留每一段末端的?點,擺在一起以后,可以注意到第一段的范圍是?,第二段的范圍是,第三段的范圍是},第四段的范圍是,四段的范圍是沒有重疊的
-
合并分段運算結果
將結果和未分段的卷積做比較,下圖是分段的結果,上圖是沒有分段并利用快速卷積所算出的結果,驗證兩者運算結果相同。
-
結果比較圖
至于為什么要把前面? M-1}?丟掉?
以下以一例子來闡述:
, 長度,
, 長度,
第一條藍線代表?軸,而兩條藍線之間代表長度,是在做快速卷積時的周期
-
x[n]和h[n]
當在做快速卷積時,是把信號視為周期,在時域上為循環卷積分,
而在一開始前?點所得到的值,是?和?內積的值,
然而?這?個值應該要為零,以往在做快速卷積時長度為? ?時不會遇到這些問題,
而今天因為在做快速卷積時長度為?才會把這?點算進來,因此我們要丟棄這?點內積的結果
-
循環卷積
為了要丟棄這? M-1}?點內積的結果,位移? h[-n]}? M-1}?點,并把位移以后內積合的值才算有效。
-
位移以后內積
-
- ?為一非常小的整數 - 直接計算
- ?- 快速傅里葉轉換
- ?- 分段卷積
- ?- 快速傅里葉轉換
- ?為一非常小的整數 - 直接計算
- 方法1: 所需乘法量為?
- 方法2:??,而2016點的DFT最少乘法數??,所以總乘法量為?
- 方法3:
- 若切成 8 塊(),則。選,則總乘法量為??,比方法1和2少了很多。
- 但是若要找到最少的乘法量,必須依照以下步驟
- (1)先找出??: 解??:?
- (2)由?算出點數在??附近的DFT所需最少的乘法量,選擇DFT的點數
- (3)最后由?算出?
- 因此,
- (1)由運算量對??的偏微分為0而求出?
- (2),所以選擇101點 DFT 附近點數乘法量最少的點數?或??。
- (3-1)當??,總乘法量為??。
- (3-2)當??,總乘法量為??。
- 由此可知,切成 20 塊會有較好的效率,而所需總乘法量為 21480。
- 因此,當,所需總乘法量: 分段卷積 < 快速傅里葉轉換 < 直接計算。故,此時選擇使用分段卷積來計算卷積最適合。
- 方法1: 所需乘法量為?
- 方法2:??,選擇1026點 DFT 附近點數乘法量最少的點數,。
- 因此,所需乘法量為?
- 方法3:
- (1)由運算量對??的偏微分為0而求出?
- (2),所以選擇7點 DFT 附近點數乘法量最少的點數??或??或??。
- (3-1)當??,總乘法量為??。
- (3-2)當??,總乘法量為??。
- (3-3)當??,總乘法量為??。
- 由此可知,切成 171 塊會有較好的效率,而所需總乘法量為 5476。
- 因此,當,所需總乘法量: 分段卷積 < 直接計算 < 快速傅里葉轉換。故,此時選擇使用分段卷積來計算卷積最適合。
- 雖然當??是個很小的正整數時,大致上適合使用直接計算。但實際上還是將3個方法所需的乘法量都算出來,才能知道用哪種方法可以達到最高的效率。
- 方法1: 所需乘法量為?
- 方法2:??,選擇1026點 DFT 附近點數乘法量最少的點數,。
- 因此,所需乘法量為?
- 方法3:
- (1)由運算量對??的偏微分為0而求出?
- (2),所以選擇1623點 DFT 附近點數乘法量最少的點數??。
- (3)當??,總乘法量為??。
- 由此可知,此時切成一段,就跟方法2一樣,所需總乘法量為 44232。
- 因此,當,所需總乘法量: 快速傅里葉轉換 = 分段卷積 < 直接計算。故,此時選擇使用分段卷積來計算卷積最適合。
- 前向差分:
- 后向差分:
- 統計學中,加權的滑動平均是一種卷積。
- 概率論中,兩個統計獨立變量X與Y的和的概率密度函數是X與Y的概率密度函數的卷積。
- 聲學中,回聲可以用源聲與一個反映各種反射效應的函數的卷積表示。
- 電子工程與信號處理中,任一個線性系統的輸出都可以通過將輸入信號與系統函數(系統的沖激響應)做卷積獲得。
- 物理學中,任何一個線性系統(符合疊加原理)都存在卷積。
- 反卷積
- 傅里葉變換
- PlanetMath上Convolution的資料。
- Visual convolution Java Applet
- Lecture notes, Jian-Jiun Ding (2013),?Advanced Digital Signal Processing
如果f(t)是一個單位脈沖,我們得到的乘積就是g(t)本身,稱為沖激響應?。
計算卷積的方法
當??為有限長度??,??為有限長度??的信號,計算卷積??有三種主要的方法,分別為 1.直接計算(Direct Method) 2.快速傅里葉轉換(FFT) 和 3.分段卷積 (sectioned convolution)。方法1是直接利用定義來計算卷積,而方法2和3都是用到了FFT來快速計算卷積。也有不需要用到FFT的作法,如使用數論轉換。
方法1 直接計算
方法2 快速傅里葉轉換(FFT)
方法3 分段卷積(sectioned convolution)
應用時機
以上三種方法皆可用來計算卷積,其差別在于所需總體乘法量不同。基于運算量以及效率的考量,在計算卷積時,通常會選擇所需總體乘法量較少的方法。
以下根據??和??的長度(??)分成5類,并列出適合使用的方法:
基本上,以上只是粗略的分類。在實際應用時,最好還是算出三種方法所需的總乘法量,再選擇其中最有效率的方法來計算卷積。
例子
Q1: 當??,適合用哪種方法計算卷積?
Ans:
Q2: 當??,適合用哪種方法計算卷積?
Ans:
Q3: 當??,適合用哪種方法計算卷積?
Ans:
多元函數卷積
按照翻轉、平移、積分的定義,還可以類似的定義多元函數上的積分:
性質
各種卷積算子都滿足下列性質:
交換律結合律分配律數乘結合律其中為任意實數(或復數)。
微分定理其中Df?表示f的微分,如果在離散域中則是指差分算子,包括前向差分與后向差分兩種:
卷積定理
卷積定理指出,函數卷積的傅里葉變換是函數傅里葉變換的乘積。即,一個域中的卷積相當于另一個域中的乘積,例如時域中的卷積就對應于頻域中的乘積。
其中表示f?的傅里葉變換。
這一定理對拉普拉斯變換、雙邊拉普拉斯變換、Z變換、Mellin變換和Hartley變換(參見Mellin inversion theorem)等各種傅里葉變換的變體同樣成立。在調和分析中還可以推廣到在局部緊致的阿貝爾群上定義的傅里葉變換。
利用卷積定理可以簡化卷積的運算量。對于長度為的序列,按照卷積的定義進行計算,需要做組對位乘法,其計算復雜度為;而利用傅里葉變換將序列變換到頻域上后,只需要一組對位乘法,利用傅里葉變換的快速算法之后,總的計算復雜度為。這一結果可以在快速乘法計算中得到應用。
在群上的卷積
若?G?是有某?m?測度的群(例如豪斯多夫空間上哈爾測度下局部緊致的拓撲群),對于G?上?m-勒貝格可積的實數或復數函數f?和g,可定義它們的卷積:
對于這些群上定義的卷積同樣可以給出諸如卷積定理等性質,但是這需要對這些群的表示理論以及調和分析的彼得-外爾定理。
應用
卷積在工程和數學上都有很多應用:
參見
外部鏈接
轉載于:https://www.cnblogs.com/noticeable/p/9194782.html
總結
以上是生活随笔為你收集整理的卷积(转自wiki百科)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的写一个发布订阅器
- 下一篇: vim删除文件第n行到结尾、或某段内容