版權聲明:本文來自于icoolmedia,歡迎轉載,轉載請注明出處,相關的音視頻算法討論請加群(374737122)一起交流!
由于工作中經常會用到傅里葉分析方法、不得不對它基本思想做一些深入的思考。這里記錄下我對傅立葉分析的學習過程中真正加深自己印象的一些推導過程,希望對其它朋友能有所幫助、初學時,能看些淺顯易懂的圖文分析對理解的幫助是非常大的,至少能讓你很快的理解主要思路而不至于陷入大量的公式推導之中,但初步理解了之后,要深入下去,是應該好好理解下推導過程的。
傅里葉分析法建立在一個基本的認知基礎之上:周期信號可以用多個正弦信號的線性組合來表示。周期信號的這種分解,被稱為傅里葉級數。下面我們就來分析下這種分解過程。
給定一個最簡單的正弦信號
y(t)=Asin(ωt+θ) 其中周期T=2*PI/ω,將這個信號展開成由一系列以T為周期的正弦函數組成的級數來表示,記為
f(t)=A0+∑n=1∞Ansin(nωt+θn) 然后我們將正弦函數進行三角變形
Ansin(nωt+θn)=Ansinθncos(nωt)+Ancosθnsin(nωt) 同時,再令:
a02=A0an=Ansinθnbn=Ancosθnωt=x 則上式最終可以寫為
f(x)=a02+∑n=1∞[ancos(nx)+bnsin(nx)] 從上式可以看出,只要確定了a0、an、bn這三個參數,函數f(x)就可以確定下來,在求這三個參數的過程中,積分將變的十分有用,先來求a0,對上式從-PI到PI的逐項積分。
∫π?πf(x)dx=∫π?πa02dx+∑k=1∞[ak∫π?πcoskxdx+bk∫π?πsinkxdx] 根據三角函數系的正交性(三角函數在整數周期范圍內的積分為零),上面等式右端除第一項外,后面的長長的求和項看起來挺多,可以得到
∫π?πf(x)dx=a02?2π 于是得到
a0=1π∫π?πf(x)dx 再來求an,先在f(x)的展開式兩端乘以cos(nx),再從-PI到PI進行逐項積分。可以得到
∫π?πf(x)cos(nx)dx=a02∫π?πcos(nx)dx+∑k=1∞[ak∫π?πcos(kx)cos(nx)dx+bk∫π?πsin(kx)cos(nx)dx] 根據三角函數的正交性,上式右邊除 k=n項外,其它各項均為零,可得
∫π?πf(x)cos(nx)dx=an∫π?πcos2(nx)dx=anπ 整理,可得
an=1π∫π?πf(x)cos(nx)dxn=1,2,3,... 再求bn,同理,在f(x)的展開式兩端乘以sin(nx),再從-PI到PI進行逐項積分。最終可以得到
bn=1π∫π?πf(x)sin(nx)dxn=1,2,3,... 現在,我們已經得到了a0、an、bn這三個參數,它們被稱為f(x)的傅里葉系數,把這三個參數代入f(x)的展開式,這種把周期函數f(x)分解為一系列的三角函數被稱為函數f(x)的傅里葉級數。
下面我們再看下,當f(x)為奇函數或者偶函數時,其傅里葉級數是什么樣子?
(1)當f(x)為奇函數時,f(-x)=-f(x),我們算下f(x)的傅里葉系數
an=1π∫π?πf(x)cos(nx)dx=1π∫0?πf(x)cos(nx)dx+1π∫π0f(x)cos(nx)dx=1π∫0πf(?x)cos(?nx)(?dx)+1π∫π0f(x)cos(nx)dx=?1π∫π0f(x)cos(nx)dx+1π∫π0f(x)cos(nx)dx=0bn=1π∫π?πf(x)sin(nx)dx=1π∫0?πf(x)sin(nx)dx+1π∫π0f(x)sin(nx)dx=1π∫0πf(?x)sin(?nx)(?dx)+1π∫π0f(x)sin(nx)dx=1π∫π0f(x)sin(nx)dx+1π∫π0f(x)sin(nx)dx=2π∫π0f(x)sin(nx)dx 可以看出,當f(x)為奇函數時,把系數代入f(x)的展開式,則傅里葉級數只剩下正弦級數。同理 (2)當f(x)為偶函數時,f(-x)=f(x),其傅里葉系數為
an=1π∫π0f(x)cos(nx)dxbn=0 這時, f(x)的展開式,則傅里葉級數只剩下了余弦級數。
在上面的內容中,f(x)展開傅里葉級數時,一直是是以2*PI做為一個完整的周期的,但實際中的周期函數,周期不一定是2*PI,當周期為2*l時,其傅里葉級數展開式為:
f(x)=a02+∑n=1∞[ancos(nπxl)+bnsin(nπxl)]an=1l∫l?lf(x)cos(nπxl)dxbn=1l∫l?lf(x)sin(nπxl)dx 如果我們利用歐拉公式cos(t)=eit+e?it2sin(t)=eit?e?it2i 則周期為2l的周期函數可以化為
f(x)=a02+∑n=1∞[an2(einπxl+e?inπxl)?ibn2(einπxl+e?inπxl)]=a02+∑n=1∞[an?ibn2einπxl+an+ibn2e?inπxl]a02=c0an?ibn2=cnan+ibn2=c?n=c0+∑n=1∞(cneinπxl+c?ne?inπxl)=(cneinπxl)n=0+∑n=1∞(cneinπxl+c?ne?inπxl)=∑?∞∞cneinπxl 新的系數cn可以表示為
c0=a02=12l∫l?lf(x)dxcn=an?ibn2=12[1l∫l?lf(x)cos(nπxl)dx?il∫l?lf(x)sin(nπxl)dx]=12l∫l?lf(x)[cos(nπxl)?isin(nπxl)]dx=12l∫l?lf(x)e?inπxldx(n=1,2,3,...)c?n=an+ibn2=12l∫l?lf(x)einπxldx(n=1,2,3,...) 合并上面的結果
cn=12l∫l?lf(x)e?inπxldx(n=0,±1,±2,±3,...) 這就是傅里葉系數的復數形式