【信號與系統學習筆記】—— 傅里葉變換1 從零開始推導傅里葉變換(詳細易懂版)

雖然之前我的 BlogBlog 裏面也有涉及到傅里葉變換的文章,但是都感覺有點零星,今天打算祭出一篇長文,詳細地剖析傅里葉變換的本質,從零開始推導傅里葉變換。

一、從正弦波的合成說起

說來也真是佩服傅里葉他老先生及其敏銳的洞察力,他認爲:所有周期信號都可以用若干個正弦波疊加形成。, 我們看圖說話,下面三張圖,分別是:y=0.5+0.637.cos(x)y=0.5+0.637.cos(x)0.212.cos(3x)y=0.5+0.637.cos(x)0.212.cos(3x)+0.127.cos(5x) y = 0.5 + 0.637.*cos(x)\\ y=0.5+0.637.*cos(x)-0.212.*cos(3*x)\\ y=0.5+0.637.*cos(x)-0.212.*cos(3*x)+0.127.*cos(5*x)
我們看看這三個由正弦函數疊加得到的波形長什麼樣:
在這裏插入圖片描述
我們發現,這些正餘弦函數的疊加居然真的慢慢向矩形波的形狀靠攏了!

因此,我們給出實傅里葉級數的公式:
f(t)=a02+k=1(akcoskω0t+bksinkω0t)f(t) = \frac{a_0}{2} + \sum_{k=1}^{∞}(a_kcoskω_0t + b_ksinkω_0t)

1.1 復傅里葉級數的引入以及求解

實傅里葉級數的表示可能還是不夠直觀,我們想要一種新的表現方式,這時我們需要用到歐拉公式:cos(kω0t)+jsin(kω0t)=ejkω0t cos(kω_0t) + jsin(kω_0t) = e^{jkω_0t}
因此,我們將歐拉公式帶入上面的實傅里葉級數:f(t)=a02+k=1(akcoskω0t+bksinkω0t)=a02+12k=1[(akejkω0t+akejkω0t)j(bkejkω0tbkejkω0t)]=a02+12k=1(akjbk)ejkω0t+12k=1(ak+jbk)ejkω0t=k=0ak2+12k=1(akjbk)ejkω0t+12k=1(ak+jbk)ejkω0t=k=+ckejkω0t \begin{aligned} f(t) &= \frac{a_0}{2} + \sum_{k=1}^{∞}(a_kcoskω_0t + b_ksinkω_0t)\\ &=\frac{a_0}{2} + \frac{1}{2}\sum_{k=1}^{∞}[(a_ke^{jkω_0t} + a_ke^{-jkω_0t})-j(b_ke^{jkω_0t}-b_ke^{-jkω_0t})]\\ &=\frac{a_0}{2} + \frac{1}{2}\sum_{k=1}^{∞}(a_k - jb_k)e^{jkω_0t} + \frac{1}{2}\sum_{k=1}^{∞}(a_k + jb_k)e^{-jkω_0t}\\ &=\sum_{k=0}\frac{a_k}{2} +\frac{1}{2}\sum_{k=1}^{∞}(a_k - jb_k)e^{jkω_0t} + \frac{1}{2}\sum_{k=-1}^{-∞}(a_{-k} + jb_{-k})e^{jkω_0t}\\ &=\sum_{k = -∞}^{+∞}c_ke^{jkω_0t} \end{aligned}

因此,我們就得到了復傅里葉級數的表示!

那麼,這裏有一個未知數 ckc_k,我們如何求解呢?我們來看看:f(t)=k=+ckejkω0tf(t)=cmejmω0t+k=,km+ckejkω0tf(t)ejmω0t=cm+k=,km+ckej(km)ω0tT2T2f(t)ejmω0t=T2T2cm+T2T2k=,km+ckej(km)ω0tT2T2f(t)ejmω0t=Tcm+0cm=1TT2T2f(t)ejmω0t \begin{aligned} f(t) &= \sum_{k = -∞}^{+∞}c_ke^{jkω_0t}\\ f(t)&=c_me^{jmω_0t}+\sum_{k = -∞,k≠m}^{+∞}c_ke^{jkω_0t}\\ f(t)e^{-jmω_0t} &=c_m+\sum_{k = -∞,k≠m}^{+∞}c_ke^{j(k-m)ω_0t}\\ \int_{-\frac{T}{2}}^{\frac{T}{2}}f(t)e^{-jmω_0t} &= \int_{-\frac{T}{2}}^{\frac{T}{2}}c_m+\int_{-\frac{T}{2}}^{\frac{T}{2}}\sum_{k = -∞,k≠m}^{+∞}c_ke^{j(k-m)ω_0t}\\ \int_{-\frac{T}{2}}^{\frac{T}{2}}f(t)e^{-jmω_0t} &= Tc_m+0\\ c_m &= \frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}f(t)e^{-jmω_0t} \end{aligned}

1.2 到底爲什麼要引入複數?

剛剛在 1.1 節我們在討論爲什麼要用複數的線性疊加來代替原來的信號時,解釋得有點牽強。

難道僅僅是因爲看起來一堆不同幅度的正弦波可能可以疊加成一些其他新的波形,我們就用正餘弦函數來表示、然後又根據歐拉公式,我們就可以用複數的線性疊加來表示信號嗎?

說到底,還是沒有講清楚引入複數的意義!

其實,我們考慮用復指數信號來合成信號的原因是:復指數信號具有保真性。也就是說,一個復指數信號經過一個系統,輸出的信號依然還是復指數,只不過幅度或頻率改變了,我們看看爲什麼?

首先分析一下連續時間信號,假設我們的輸入信號是 x(t)=estx(t) = e^{st},系統的單位衝激響應是 h(t)h(t),那麼根據我們之前 BlogBlog 中學習的卷積原理,我們可以知道,x(t)x(t)輸入系統得到的輸出是:y(t)=+h(τ)x(tτ)dτ=+h(tτ)es(tτ)dτ=est+h(τ)esτdτ=estH(s) \begin{aligned} y(t) &= \int_{-∞}^{+∞}h(τ)x(t-τ)dτ\\ &=\int_{-∞}^{+∞}h(t-τ)e^{s(t-τ)} dτ\\ &=e^{st}\int_{-∞}^{+∞}h(τ)e^{-sτ}dτ\\ &=e^{st}H(s) \end{aligned}

而這個 H(s)H(s) 是一個復常數,如果信號可以用復指數表示,那麼信號經過系統之後的輸出表示就非常簡單,同樣地,對於離散時間信號也是一樣,設輸入爲 :x[n]=znx[n] = z^{n}
y[n]=k=+h[k]x[nk]=k=+h[k]znk=znk=+h[k]zk=znH(z) \begin{aligned} y[n] &= \sum_{k=-∞}^{+∞}h[k]x[n-k]\\ &=\sum_{k=-∞}^{+∞}h[k]z^{n-k}\\ &=z^n\sum_{k=-∞}^{+∞}h[k]z^{-k}\\ &=z^nH(z) \end{aligned}

至此,我們得到了復傅里葉級數的表示方法,以及復傅里葉係數的計算公式。但是,這些有什麼用?爲什麼需要用這樣的傅里葉級數形式來表示呢??

1.3 復傅里葉級數的意義——頻譜

復傅里葉級數最好的用途就是表示信號的頻譜!何謂之信號的頻譜?那就要牽扯到頻域了。

我們平時所接觸到的信號,大多是以時域的形式和我們見面的。例如我們常聽見的音樂信號,我們可以非常熟悉它時域上的表示:

但是,學過樂器的同學們應該更熟悉音樂信號的另外一種表示形式——音符:

不同的音符,代表着不同的頻率成分。我們看看復傅里葉級數的公式:f(t)=k=+ckejkω0t f(t) = \sum_{k = -∞}^{+∞}c_ke^{jkω_0t}

所以我們發現,f(t)f(t) 由不同的頻率成分組成 ejkω0te^{jkω_0t},也就代表了不同的音符,而每種音符所彈奏的聲音大小,也就是 ejkω0te^{jkω_0t} 的係數 ckc_kckc_k可以是複數)

比如我們有這樣一個信號:f(t)=ej2ω0t+5ejω0t+6f(t) = e^{j2ω_0t} + 5e^{jω_0t} + 6,那麼它的頻譜就可以表示成:

也就是說,計算復傅里葉係數的過程,就是計算信號頻譜的過程!

二、週期信號的頻譜(線譜)

我們知道如何計算頻譜了,這算是邁出了一大步:因爲我們處理信號的能力,從時域擴展到了頻域。

我們先來看看下面這個週期爲:T0T_0,脈衝寬度爲 T02\frac{T_0}{2} 的矩形週期信號的頻譜:

c0=1T0T02T02f(t)dt=1T0T04T041dt=0.5c_0 = \frac{1}{T_0}\int_{-\frac{T_0}{2}}^{\frac{T_0}{2}}f(t)dt =\frac{1}{T_0}\int_{-\frac{T_0}{4}}^{\frac{T_0}{4}}1dt = 0.5

ck=1T0T02T02f(t)ejkωtdt=1T0T04+T04ejkωtdt=1T0T04+T04(cos(kωt)jsin(ωt))dt=1T0T04+T04cos(kωt)dtjT0T04+T04sin(kωt)dt=1T0kωT04+T04cos(kωt)d(kωt)=2sinkωT04Tkω \begin{aligned} c_k &= \frac{1}{T_0}\int_{-\frac{T_0}{2}}^{\frac{T_0}{2}}f(t)e^{jkωt}dt\\ &=\frac{1}{T_0}\int_{-\frac{T_0}{4}}^{+\frac{T_0}{4}}e^{jkωt}dt\\ &=\frac{1}{T_0}\int_{-\frac{T_0}{4}}^{+\frac{T_0}{4}}(cos(kωt)-jsin(ωt))dt\\ &=\frac{1}{T_0}\int_{-\frac{T_0}{4}}^{+\frac{T_0}{4}}cos(kωt)dt - \frac{j}{T_0}\int_{-\frac{T_0}{4}}^{+\frac{T_0}{4}}sin(kωt)dt \\ &=\frac{1}{T_0kω}\int_{-\frac{T_0}{4}}^{+\frac{T_0}{4}}cos(kωt)d(kωt)\\ &=\frac{2sin\frac{kωT_0}{4}}{Tkω}\\ \end{aligned}
又因爲:ω=2ΠT=2ΠT0ω = \frac{2Π}{T} = \frac{2Π}{T_0},因此:2sinkωT04Tkω=12sinkΠ2kΠ2 \frac{2sin\frac{kωT_0}{4}}{Tkω}=\frac{1}{2}\frac{sin\frac{kΠ}{2}}{\frac{kΠ}{2}}
這裏我們引入辛格函數 sinc:sinc(x)=sin(Πx)Πxsinc(x) = \frac{sin(Πx)}{Πx} 它長這樣:

那麼,我們上面那個佔空比爲 12\frac{1}{2} 的矩形信號的線譜就可以表示爲:X(k)=12sinc(k2) X(k) = \frac{1}{2}sinc(\frac{k}{2})
信號與它對應的線譜如下圖所示:

如果我們改變佔空比,即矩形信號的脈衝寬度不變,還是 T02\frac{T_0}{2},但是週期變爲 T=2T0T = 2T_0.即佔空比變爲 1/4:

我們先看看 c0c_0c0=12T0T0T0f(t)dt=12T0T04T04dt=0.25 \begin{aligned} c_0 &= \frac{1}{2T_0}\int_{-T_0}^{T_0}f(t)dt\\ &=\frac{1}{2T_0}\int_{-\frac{T_0}{4}}^{\frac{T_0}{4}}dt=0.25 \end{aligned}
然後是 ckc_kck=12T0T04T04ejkωtdt=12T0T04T04(cos(kωt)+jsin(kωt))dt=12T01kω2sin(kωT04)=sin(kΠ4)kΠ=14sin(kΠ4)kΠ4=14sinc(k4) \begin{aligned} c_k &= \frac{1}{2T_0}\int_{-\frac{T_0}{4}}^{\frac{T_0}{4}}e^{jkωt}dt\\ &=\frac{1}{2T_0}\int_{-\frac{T_0}{4}}^{\frac{T_0}{4}}(cos(kωt)+jsin(kωt))dt\\ &=\frac{1}{2T_0}\frac{1}{kω}2sin(kω\frac{T_0}{4})\\ &=\frac{sin(\frac{kΠ}{4})}{kΠ}\\ &=\frac{1}{4}\frac{sin(\frac{kΠ}{4})}{\frac{kΠ}{4}}\\ &=\frac{1}{4}sinc(\frac{k}{4}) \end{aligned}

同樣地,我們再來看看這個佔空比爲 14\frac{1}{4} 的矩形波和它對應的線譜:

下面我們直接給出佔空比是 18\frac{1}{8} 的矩形信號和它對應的頻譜(大家自己可以推導一下)

歸納一下我們剛剛計算的,不同佔空比矩形信號的頻譜(線譜)的表達式規律:如果我們設矩形信號的佔空比爲:1n\frac{1}{n},那麼這個矩形週期信號的線譜就可以表示成:X(k)=1nsinc(kn) X(k) = \frac{1}{n}sinc(\frac{k}{n})

這個表達式我們發現:佔空比越小,ckc_k的幅度就越小,而且譜線與譜線之間的間隙就越來越小,譜線越密集。

三、非週期信號的頻譜(連續譜)

從上面的分析發現:隨着T的增大,線譜中不同頻率的譜線的間距越來越小,數量也越來越多,這樣不太利於我們對頻率的分析,我們引入了連續譜,或者我們叫做頻譜密度曲線

爲了更好地理解:頻譜密度曲線,我們先來看看概率密度曲線的意義:

紅色的曲線就是x的概率密度函數pdf曲線。如果我現在這樣問你:P(x = 10) = ?
乍一看,x = 10對應曲線的縱座標在0.16附近,我們能說x = 10的概率是0.16嗎??

答案是:NO!,P(x=10) = 0!
正如我們在生活中所說的當x=10,我們一般會把10.01,10.001,9.99等等這樣的數都當作10,我們以x爲某地的降雨量爲例,你能保證當天降雨的總量剛剛好在10mm,一滴不多一滴不少嗎?

我們上面所討論的問題,都基於一個前提:就是我們的自變量x是一個連續隨機變量,在連續隨機變量的概率密度曲線中,x準確等於任何一個數的概率都是0!

那麼要怎麼表示概率呢?我們可以用一個區間,比如說x在[9.9, 10.1]區間的概率是多少。這樣就會取得一個確定的概率P. 在微積分的知識裏我們知道,在pdf曲線中計算x落在區間[9.9, 10.1]上的概率就應該是曲線在[9.9, 10.1]那段的面積:9.910.1f(x)dx \int_{9.9}^{10.1}f(x)dx

近似可以看作上圖的藍色矩形的面積。
因此,概率密度曲線中某一x範圍[x,x+x][x, x+△x]概率,就是曲線在[x,x+x][x, x+△x]這一範圍下與橫軸圍成的區域的面積

概率密度函數,頻譜密度函數,這兩者其實內涵是類似的!

概率密度P(x)P(x)對應的是概率,那麼曲線在[x,x+x][x, x+△x]這一範圍下與橫軸圍成的區域的面積就是x在[x,x+x][x, x+△x]這一範圍下的概率
頻譜密度X(f)X(f)對應的是ckc_k,那麼曲線在[f,f+f][f, f+△f]這一範圍下與橫軸圍成的面積就是f在[f,f+f][f, f+△f]這一範圍下的ckc_k

而面積可以近似地以矩形的面積代替,那麼矩形的底就是f△f,高就是ckf\frac{c_k}{△f},如下圖:

因此,所有的ckf\frac{c_k}{△f}就構成了頻譜密度曲線
其中,在上圖,f△f是信號基波的頻率f0f_0,和信號的週期T0T_0有關

四、線譜與連續譜的關係

4.1 週期信號的連續譜表示

我們在剛剛說了:ckf\frac{c_k}{△f}就構成了頻譜密度曲線,那麼知道:ckf\frac{c_k}{△f} 的表達式就很關鍵了:

我們從週期矩形信號的 ckc_k 值入手:ck=1nsinc(kn) c_k = \frac{1}{n}sinc(\frac{k}{n})
如果設矩形信號的脈衝寬度是:ττ,週期是 T0T_0(這裏大家注意區分一下:我們現在是令週期不變,就是 T0T_0,改變脈衝寬度而改變佔空比。我們上文計算週期矩形波時是改變週期,保持脈衝寬度不變)
那麼,佔空比就是:τT0\frac{τ}{T_0}

所以,原式變爲:ck=τT0sinc(kτT0) c_k = \frac{τ}{T_0}sinc(\frac{kτ}{T_0})

既然我們現在想找週期信號的連續譜,就意味着我們想計算:ckf\frac{c_k}{△f}
ckf=ckf0=ckT0=τsinc(kτf0)(1) \begin{aligned} \frac{c_k}{△f} &= \frac{c_k}{f_0} = c_kT_0\\ &=τsinc(kτf_0)\tag{1} \end{aligned}
我們看這個式子啊:f0f_0 是這個週期信號的基波頻率,因爲它可以分解成若干個不同頻率成分的信號疊加,那麼 kf0kf_0 不就相當於我們前面的 ω=kω0ω = kω_0 嗎!因此,我們就用 ff 來替換 kf0kf_0
ckf=τsinc(τf)(2) \frac{c_k}{△f} = τsinc(τf)\tag{2}

因爲(2)式沒有 k,而 ff 又是連續的,所以 τsinc(τf)τsinc(τf) 是一個連續函數!那麼,週期信號的連續譜概率密度函數:τsinc(kτf0)τsinc(kτf_0) 不就是以採樣頻率 f0f_0 對這個連續信號 τsinc(τf)τsinc(τf) 進行採樣嗎!

我們先看看對佔空比 50% 的信號以 f0f_0 爲採樣頻率進行採樣得到的連續譜長什麼樣:

同樣,對比一下其他佔空比的信號的連續譜:

下面這個圖我沒有把對應的線譜畫出來,不然太密了就看不清連續譜的樣子了:

4.2 非週期矩形信號的連續譜

我們可以發現:
第一張採樣得到的連續譜,是週期爲 T0T_0 的矩形信號對 τsinc(τf)τsinc(τf)f0f_0的頻率採樣

第二張採樣得到的連續譜,是週期爲 2T02T_0 的矩形信號對 τsinc(τf)τsinc(τf)12T0\frac{1}{2T_0}的頻率採樣

第三張採樣得到的連續譜,是週期爲:3T03T_0 的矩形信號對 τsinc(τf)τsinc(τf)13T0\frac{1}{3T_0}的頻率採樣

我們發現,隨着週期矩形信號的頻率不斷增大,採樣得到的連續譜就越來越接近信號 τsinc(τf)τsinc(τf)
所以,我們可以推出:在 T無窮大的時候,也就是非週期矩形信號,它的連續譜就是:τsinc(τf)τsinc(τf)

五、傅里葉變換的引入

知道了週期信號和非週期信號都可以用連續譜(即頻譜密度函數)表示,那麼
下面,我們就來看看信號頻譜密度的計算:ckf=ckT0=T02+T02x(t)ejkω0tdt=T02+T02x(t)ejk2Πf0tdt=T02+T02x(t)ej2Πftdt \begin{aligned} \frac{c_k}{△f} &=c_kT_0 = \int_{-\frac{T_0}{2}}^{+\frac{T_0}{2}}x(t)e^{-jkω_0t}dt\\ &=\int_{-\frac{T_0}{2}}^{+\frac{T_0}{2}}x(t)e^{-jk2Πf_0t}dt\\ &=\int_{-\frac{T_0}{2}}^{+\frac{T_0}{2}}x(t)e^{-j2Πft}dt\\ \end{aligned}

當T=∞時,就有:X(f)=+x(t)ej2Πftdt=+x(t)ejωtdt X(f) = \int_{-∞}^{+∞}x(t)e^{-j2Πft}dt = \int_{-∞}^{+∞}x(t)e^{-jωt}dt
這就是大名鼎鼎的傅里葉變換公式!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章