FFT中卷積運算

轉載

信號處理中的一個重要運算是卷積.初學卷積的時候,往往是在連續的情形, 

  兩個函數f(x),g(x)的卷積,是∫f(u)g(x-u)du 
  當然,證明卷積的一些性質並不困難,比如交換,結合等等,但是對於卷積運算的來處,初學者就不甚了了。 
   
  其實,從離散的情形看卷積,或許更加清楚, 
  對於兩個序列f[n],g[n],一般可以將其卷積定義爲s[x]= ∑f[k]g[x-k] 
   
  卷積的一個典型例子,其實就是初中就學過的多項式相乘的運算, 
  比如(x*x+3*x+2)(2*x+5) 
  一般計算順序是這樣, 
  (x*x+3*x+2)(2*x+5) 
  = (x*x+3*x+2)*2*x+(x*x+3*x+2)*5 
  = 2*x*x*x+3*2*x*x+2*2*x+ 5*x*x+3*5*x+10 
  然後合併同類項的係數, 
  2 x*x*x 
  3*2+1*5 x*x 
  2*2+3*5 x 
  2*5 
  ---------- 
  2*x*x*x+11*x*x+19*x+10 
   
  實際上,從線性代數可以知道,多項式構成一個向量空間,其基底可選爲 
  {1,x,x*x,x*x*x,...} 
  如此,則任何多項式均可與無窮維空間中的一個座標向量相對應, 
  如,(x*x+3*x+2)對應於 
  (1 3 2), 
  (2*x+5)對應於 
  (2,5). 
   
  線性空間中沒有定義兩個向量間的卷積運算,而只有加法,數乘兩種運算,而實際上,多項式的乘法,就無法在線性空間中說明.可見線性空間的理論多麼侷限了. 
  但如果按照我們上面對向量卷積的定義來處理座標向量, 
  (1 3 2)*(2 5) 
  則有 
  2 3 1 
  _ _ 2 5 
  -------- 
      2 
   
   
  2 3 1 
  _ 2 5 
  ----- 
    6+5=11 
   
  2 3 1 
  2 5 
  ----- 
  4+15 =19 
   
   
  _ 2 3 1 
  2 5 
  ------- 
    10 
   
   或者說, 
  (1 3 2)*(2 5)=(2 11 19 10) 
   
  回到多項式的表示上來, 
  (x*x+3*x+2)(2*x+5)= 2*x*x*x+11*x*x+19*x+10 
   
  似乎很神奇,結果跟我們用傳統辦法得到的是完全一樣的. 
  換句話,多項式相乘,相當於係數向量的卷積. 
   
  其實,琢磨一下,道理也很簡單, 
  卷積運算實際上是分別求 x*x*x ,x*x,x,1的係數,也就是說,他把加法和求和雜合在一起做了。(傳統的辦法是先做乘法,然後在合併同類項的時候才作加法) 
  以x*x的係數爲例,得到x*x,或者是用x*x乘5,或者是用3x乘2x,也就是 
  2 3 1 
  _ 2 5 
  ----- 
   6+5=11 
  其實,這正是向量的內積.如此則,卷積運算,可以看作是一串內積運算.既然是一串內積運算,則我們可以試圖用矩陣表示上述過程。 
   
  [ 2 3 1 0 0 0] 
  [ 0 2 3 1 0 0]==A 
  [ 0 0 2 3 1 0] 
  [ 0 0 0 2 3 1] 
   
  [0 0 2 5 0 0]' == x 
   
  b= Ax=[ 2 11 19 10]' 
   
  採用行的觀點看Ax,則b的每行都是一個內積。 
  A的每一行都是序列[2 3 1]的一個移動位置。 
   
  --------- 
   
  顯然,在這個特定的背景下,我們知道,卷積滿足交換,結合等定律,因爲,衆所周知的,多項式的乘法滿足交換律,結合律.在一般情形下,其實也成立. 
   
  在這裏,我們發現多項式,除了構成特定的線性空間外,基與基之間還存在某種特殊的聯繫,正是這種聯繫,給予多項式空間以特殊的性質. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章