banner
IWSR

IWSR

美少女爱好者,我永远喜欢芳泽瑾。另外 P5 天下第一!

從傅立葉級數到傅立葉變換

Games101 的第 6 講內有涉及到傅立葉變換的內容,課後花了點功夫才搞明白這東西(雖然大學學過但也忘得差不多了),於是寫下這篇文章用以記錄學習心得。

參考資料中我強烈推薦 DR_CAN 老師的《純乾貨數學推導》系列!本文大多都是他課程內的筆記。

本文將從以下幾個方面按序推導

  • 三角函數正交性
  • 對周期為 2 π\pi 的函數進行傅立葉級數展開
  • 對周期為 T 的函數進行傅立葉級數展開
  • 傅立葉級數的複數形式
  • 對非周期函數進行傅立葉級數展開

需要注意的是,由於我的學識不足因此並不能給出關於傅立葉級數展開公式的證明,就像我不會證明為什麼 G=mg 一樣,對於真理也許直接拿來用會更簡單。但如果覺得不搞明白不舒服的讀者來說我更推薦王繼良老師寫的文章,這篇文章有詳細介紹關於傅立葉如何從熱傳導方程中提煉出傅立葉級數的過程。

傅立葉級數展開 : f(x)=a02+Σn=1+(ancosnx+bnsinnx)f(x) = \frac{a_0}{2} + \varSigma_{n=1}^{+\infty}(a_{n}\cos nx + b_{n}\sin nx)

三角函數的正交性#

如果存在函數 f (x) 與 g (x),且兩者滿足 abf(x)g(x)dx=0\int_{a}^{b} f(x)g(x) dx = 0 那麼我們稱函數 f (x) 與 g (x) 在區間 [a, b] 正交。

對於三角函數 0(sin0),1(cos0),sinx,cosx,sin2x,cos2x.....sinnx,cosnx0(\sin 0), 1(\cos 0), \sin x, \cos x, \sin 2x, \cos 2x..... \sin nx, \cos nx 在區間 [- π\pi, π\pi ] 上正交。

{ππcos(nx)sin(mx)dx=0,ππcos(nx)cos(mx)dx=0,nmππsin(nx)sin(mx)dx=0nm\begin{cases} \int_{-\pi}^{\pi} \cos (nx) \sin (mx) dx = 0, \\ \int_{-\pi}^{\pi} \cos (nx) \cos (mx) dx = 0, & n \neq m \\ \int_{-\pi}^{\pi} \sin (nx) \sin (mx) dx = 0 & n \neq m \end{cases}

以上積分可根據三角函數的積化和差方式求證,此處只給出其中一個計算過程作為參考

ππcos(nx)sin(mx)dx=12ππsin(n+m)xdx12ππsin(nm)xdx=12[1n+mcos(n+m)xππ+1nmcos(nm)xππ]=0\int_{-\pi}^{\pi} \cos (nx) \sin (mx) dx = \frac{1}{2} \int_{-\pi}^{\pi} \sin(n+m)x dx - \frac{1}{2} \int_{-\pi}^{\pi} \sin(n-m)x dx \\ = \frac{1}{2} [-\frac{1}{n+m} \cos (n+m)x |_{-\pi}^{\pi} + \frac{1}{n-m} \cos (n-m)x |_{-\pi}^{\pi}] \\ = 0

那假如 n = m 會怎麼樣?對於 sin cos 這樣的組合來說沒什麼影響,但對於 cos cos 或者 sin sin 來說就相當於兩個一樣的三角函數相乘取積分了,以下給出關於 cosmx\cos mxcosmx\cos mx 組合的求解

ππcos(mx)cos(mx)dx=ππ1+cos(2m)x2dx=12(x+12msin2mx)ππ=π\int_{-\pi}^{\pi} \cos (mx) \cos (mx) dx = \int_{-\pi}^{\pi} \frac{1 + \cos (2m)x}{2} dx \\ = \frac{1}{2} (x + \frac{1}{2m} \sin{2mx})|_{-\pi}^{\pi} = \pi

記住這裡推導的結果,下一節的內容將會用到這些。

對周期為 2 π\pi 的函數進行傅立葉級數展開#

在開始時已經直接給出了傅立葉級數的相關公式,接下來開始介紹如何結合三角函數的正交性來求出公式內的係數。

a0a_{0}#

對傅立葉級數展開公式兩邊求 π-\piπ\pi 的積分

ππf(x)dx=ππ(a02+Σn=1+(ancosnx+bnsinnx))dx=ππa02dx+anππΣn=1+1cosnxdx+bnππΣn=1+1sinnxdx\int_{-\pi}^{\pi} f(x) dx \\ = \int_{-\pi}^{\pi} (\frac{a_0}{2} + \varSigma_{n=1}^{+\infty}(a_{n}\cos nx + b_{n}\sin nx)) dx \\ = \int_{-\pi}^{\pi} \frac{a_0}{2} dx + a_{n} \int_{-\pi}^{\pi} \varSigma_{n=1}^{+\infty} 1 \cos nx dx + b_{n} \int_{-\pi}^{\pi} \varSigma_{n=1}^{+\infty} 1 \sin nx dx

在對兩邊積分後,很明顯的能注意到 1、 cosnx\cos nx 與 1、 sinnx\sin nx 這兩個組合,根據三角函數的正交性不難得出這兩對組合的積分結果必然為 0。因此可以直接消去得到以下等式

ππf(x)dx=ππa02dx=a02ππ1dx=a02xππ=a0π\int_{-\pi}^{\pi} f(x) dx = \int_{-\pi}^{\pi} \frac{a_0}{2} dx \\ = \frac{a_0}{2} \int_{-\pi}^{\pi} 1 dx \\ = \frac{a_0}{2} x|_{-\pi}^{\pi} \\ = a_{0} \pi

於是可得 a0a_{0}

a0=12ππf(x)dxa_{0} = \frac{1}{2}\int_{-\pi}^{\pi} f(x) dx

ana_{n}#

對傅立葉級數展開兩邊都乘上 cosmx\cos mx 並求積分

ππf(x)cosmxdx=ππ(a02cosmx+Σn=1+(ancosnxcosmx+bnsinnxcosmx))dx=a02ππ1cosmxdx+anππΣn=1+cosnxcosmxdx+bnππΣn=1+sinnxcosmxdx\int_{-\pi}^{\pi} f(x) \cos mx dx \\ = \int_{-\pi}^{\pi} (\frac{a_0}{2} \cos mx + \varSigma_{n=1}^{+\infty}(a_{n}\cos nx \cos mx + b_{n}\sin nx \cos mx)) dx \\ = \frac{a_0}{2} \int_{-\pi}^{\pi} 1 \cos mx dx + a_{n} \int_{-\pi}^{\pi} \varSigma_{n=1}^{+\infty} \cos nx \cos mx dx + b_{n} \int_{-\pi}^{\pi} \varSigma_{n=1}^{+\infty} \sin nx \cos mx dx

此時我們根據三角函數正交性可以直接刪去 a02ππ1cosmxdx\frac{a_0}{2} \int_{-\pi}^{\pi} 1 \cos mx dxbnππΣn=1+sinnxcosmxdxb_{n} \int_{-\pi}^{\pi} \varSigma_{n=1}^{+\infty} \sin nx \cos mx dx,畢竟最後都是 0。但對於中間的 anππΣn=1+cosnxcosmxdxa_{n} \int_{-\pi}^{\pi} \varSigma_{n=1}^{+\infty} \cos nx \cos mx dx 卻不能直接整個刪除,因為在 m=nm = n 的情況下,其積分結果為 π\pi

於是我們得到

ππf(x)cosmxdx=anπ\int_{-\pi}^{\pi} f(x) \cos mx dx = a_{n} \pi

變形得

an=1πππf(x)cosmxdxa_{n} = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) \cos mx dx

bnb_{n}#

對傅立葉級數展開兩邊都乘上 sinmx\sin mx 並求積分

ππf(x)sinmxdx=ππ(a02sinmx+Σn=1+(ancosnxsinmx+bnsinnxsinmx))dx\int_{-\pi}^{\pi} f(x) \sin mx dx = \int_{-\pi}^{\pi} (\frac{a_0}{2} \sin mx + \varSigma_{n=1}^{+\infty}(a_{n}\cos nx \sin mx + b_{n}\sin nx \sin mx)) dx

省略求證過程,因為和上面的思路是一樣的,得

bn=1πππf(x)sinmxdxb_{n} = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) \sin mx dx

對周期為 T 的函數進行傅立葉級數展開#

對周期為 T 的函數展開的辦法有一點巧妙,總的來說是通過參數的變換將式子強行變成 π\pi 的形狀

設 T = 2L,則有 f (t) = f (t + 2L)

設 x = πL\frac{\pi}{L} t,則有 t = Lxπ\frac{Lx}{\pi},於是有 f (t) = f ( Lxπ\frac{Lx}{\pi} )

tx
00
2L2 π\pi
4L4 π\pi

如果將 g (x) 視為 f ( Lπ\frac{L}{\pi} (x)),由上表的對應關係可得,g (x) 的圖形可與 f (t) 對應上,舉例來說就是 f (2L) = g (2 π\pi) 這樣子。 g (x) 的周期為 2 π\pi ,不過在上一節我們便已經得到了關於周期為 2 π\pi的函數的傅立葉展開時的係數。

{a0=12ππg(x)dxan=1πππg(x)cosnxdxbn=1πππg(x)sinnxdx\begin{cases} a_{0} = \frac{1}{2}\int_{-\pi}^{\pi} g(x) dx \\ a_{n} = \frac{1}{\pi} \int_{-\pi}^{\pi} g(x) \cos nx dx \\ b_{n} = \frac{1}{\pi} \int_{-\pi}^{\pi} g(x) \sin nx dx \end{cases}

那麼接下來只需要把 x = πL\frac{\pi}{L} t 帶入,

{cosnx=cosnπLtsinnx=sinnπLtππ1dx=LL1dπtLg(x)=f(t)\begin{cases} \cos nx = \cos \frac{n \pi}{L}t \\ \sin nx = \sin \frac{n \pi}{L}t \\ \int_{-\pi}^{\pi} 1 dx = \int_{-L}^{L} 1 d\frac{\pi t}{L} \\ g(x) = f(t) \end{cases}

那麼就得到了關於周期為 T 的傅立葉級數展開

f(t)=a02+Σn=1+(ancosnπLt+bnsinnπLt)f(t) = \frac{a_0}{2} + \varSigma_{n=1}^{+\infty}(a_{n}\cos \frac{n \pi}{L}t + b_{n}\sin \frac{n \pi}{L}t)

其中(省略計算過程,解法和上一節一致)

{a0=1LLLf(t)dtan=1LLLf(t)cosnπLtdtbn=1LLLf(t)sinnπLtdt\begin{cases} a_{0} = \frac{1}{L}\int_{-L}^{L} f(t) dt \\ a_{n} = \frac{1}{L} \int_{-L}^{L} f(t) \cos \frac{n \pi}{L} t dt \\ b_{n} = \frac{1}{L} \int_{-L}^{L} f(t) \sin \frac{n \pi}{L} t dt \end{cases}

如果將 L 換成 T,那就會變成

f(t)=a02+Σn=1+(ancos2nπTt+bnsin2nπTt)f(t) = \frac{a_0}{2} + \varSigma_{n=1}^{+\infty}(a_{n}\cos \frac{2n \pi}{T}t + b_{n}\sin \frac{2n \pi}{T}t)
{a0=2T0Tf(t)dtan=2T0Tf(t)cos2nπTtdtbn=2T0Tf(t)sin2nπTtdt\begin{cases} a_{0} = \frac{2}{T}\int_{0}^{T} f(t) dt \\ a_{n} = \frac{2}{T} \int_{0}^{T} f(t) \cos \frac{2 n \pi}{T} t dt \\ b_{n} = \frac{2}{T} \int_{0}^{T} f(t) \sin \frac{2 n \pi}{T} t dt \end{cases}

傅立葉級數的複數形式#

這一節會用到歐拉公式,對於歐拉公式的證明我後續會再寫一篇文章(證明需要用到泰勒展開,儘管歐拉本人並不是用這個辦法得到的)

eiθ=cosθ+isinθe^{i\theta} = \cos \theta + i \sin \theta
{eiθ=cosθ+isinθeiθ=cosθ+isinθ=cosθisinθ\begin{cases} e^{i\theta} = \cos \theta + i \sin \theta \\ e^{i-\theta} = \cos -\theta + i \sin -\theta = \cos \theta - i \sin \theta \end{cases}

由上式可得

{sinθ=eiθeiθ2i=ieiθeiθ2cosθ=eiθ+eiθ2\begin{cases} \sin \theta = \frac{e^{i \theta} - e^{-i \theta}}{2i} = -i \frac{e^{i \theta} - e^{-i \theta}}{2} \\ \cos \theta = \frac{e^{i \theta} + e^{- i \theta}}{2} \end{cases}

x=2πtTx = \frac{2 \pi t}{T} 將這個式子帶入到傅立葉級數可得

f(x)=a02+Σn=1+(aneinx+einx2ibneinxeinx2)=a02+Σn=1+anibn2einx+Σn=1+an+ibn2einxf(x) = \frac{a_0}{2} + \varSigma_{n=1}^{+\infty}(a_{n} \frac{e^{i nx} + e^{- i nx}}{2} -i b_{n} \frac{e^{i nx} - e^{-i nx}}{2}) \\ = \frac{a_0}{2} + \varSigma_{n=1}^{+\infty} \frac{a_{n} - i b_{n}}{2} e^{i nx} + \varSigma_{n=1}^{+\infty} \frac{a_{n}+i b_{n}}{2} e^{-i nx}

接下來的變換會讓人腦瓜子疼,但想明白了又會覺得啊原來是這麼回事。

a02\frac{a_{0}}{2} 視為 Σn=00a02einx\varSigma_{n=0}^{0} \frac{a_{0}}{2} e^{i nx},畢竟當 n = 0 時, einxe^{i nx} 也會等於 1,因此能夠成立。

Σn=1+einx\varSigma_{n=1}^{+\infty} e^{-i nx} 的變形也很有意思,將 n 視為 -1 到 - \infty,式子就會變成 Σn=1einx\varSigma_{n=-1}^{-\infty} e^{i nx}

於是得到

f(x)=Σn=+Cneinxf(x) = \varSigma_{n = -\infty}^{+\infty} C_{n} e^{i nx}

替換 x

f(t)=Σn=+Cnei2nπTtf(t) = \varSigma_{n = -\infty}^{+\infty} C_{n} e^{i \frac{2 n \pi}{T} t}

其中

Cn={a02,n=0anibn2n=1,2,3...an+ibn2n=1,2,3...Cn = \begin{cases} \frac{a_{0}}{2}, & n = 0 \\ \frac{a_{n} - i b_{n}}{2} & n = 1,2,3... \\ \frac{a_{-n}+i b_{-n}}{2} & n = -1, -2, -3... \end{cases}

由於我們在上一節已經求出了關於周期 T 函數的傅立葉級數展開

{a0=2T0Tf(t)dtan=2T0Tf(t)cos2nπTtdtbn=2T0Tf(t)sin2nπTtdt\begin{cases} a_{0} = \frac{2}{T}\int_{0}^{T} f(t) dt \\ a_{n} = \frac{2}{T} \int_{0}^{T} f(t) \cos \frac{2 n \pi}{T} t dt \\ b_{n} = \frac{2}{T} \int_{0}^{T} f(t) \sin \frac{2 n \pi}{T} t dt \end{cases}

帶入之後可得

Cn={1T0Tf(t)dt,n=01T0Tf(t)(cos2nπTtisin2nπTt)dtn>01T0Tf(t)(cos2nπTtisin2nπTt)dtn<0Cn = \begin{cases} \frac{1}{T}\int_{0}^{T} f(t) dt, & n = 0 \\ \frac{1}{T} \int_{0}^{T} f(t) (\cos \frac{2n\pi}{T} t - i \sin \frac{2n\pi}{T} t) dt & n > 0 \\ \frac{1}{T} \int_{0}^{T} f(t) (\cos \frac{2n\pi}{T} t - i \sin \frac{2n\pi}{T} t) dt & n < 0 \end{cases}

不過表達上有些醜,用歐拉公式化簡

cos2nπTisin2nπT=cos2nπT+isin2nπT=ei2nπT\cos \frac{2n\pi}{T} - i \sin \frac{2n\pi}{T} = \cos -\frac{2n\pi}{T} + i \sin -\frac{2n\pi}{T} = e^{-i \frac{2n\pi}{T}}
Cn={1T0Tf(t)dt,n=01T0Tf(t)ei2nπTtdtn>01T0Tf(t)ei2nπTtdtn<0Cn = \begin{cases} \frac{1}{T}\int_{0}^{T} f(t) dt, & n = 0 \\ \frac{1}{T} \int_{0}^{T} f(t) e^{-i \frac{2n\pi}{T} t} dt & n > 0 \\ \frac{1}{T} \int_{0}^{T} f(t) e^{-i \frac{2n\pi}{T} t} dt & n < 0 \end{cases}

注意看,帶入後 n > 0 與 n <0 的結果相同,再看 n = 0,其實可以發現其表達與 n> 0 與 n < 0 也相同(帶入 n=0 後 ei2nπTe^{-i \frac{ 2n \pi }{T}} 結果為 1)

於是 CnC_{n} 的表達式可被統一為

Cn=1T0Tf(t)ei2nπTtdtC_{n} = \frac{1}{T} \int_{0}^{T} f(t) e^{-i \frac{ 2n \pi }{T} t} dt

此時我們設 ω0\omega_{0}2πT\frac{ 2 \pi }{T} (工程上的角速度),得到

Cn=1T0Tf(t)einω0tdtC_{n} = \frac{1}{T} \int_{0}^{T} f(t) e^{-i n \omega_{0} t} dt

於是我們得到了傅立葉級數的複數形式

{f(t)=Σn=+Cneinω0tCn=1T0Tf(t)einω0tdt\begin{cases} f(t) = \varSigma_{n = -\infty}^{+\infty} C_{n} e^{i n \omega_{0} t} \\ C_{n} = \frac{1}{T} \int_{0}^{T} f(t) e^{-i n \omega_{0} t} dt \end{cases}

接下來做個小變換。

替換積分的上下限為 [-T/2, T/2] ,然後代入原式可得(周期函數的定積分上下限只要差值為一個周期那麼得到的結果都一樣)

{f(t)=Σn=+Cneinω0tCn=1TT2T2f(t)einω0tdt\begin{cases} f(t) = \varSigma_{n = -\infty}^{+\infty} C_{n} e^{i n \omega_{0} t} \\ C_{n} = \frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f(t) e^{-i n \omega_{0} t} dt \end{cases}

對非周期函數進行傅立葉級數展開#

對非周期函數進行傅里葉級數展開的處理也很巧妙,大致的思想便是將非周期函數視為一個 周期為無窮 的周期函數,隨後再用周期函數的展開公式進行變換。

1T\frac{1}{T}ff , 由於 T = \infty 所以 ff 趨向於無窮小,於是得到

f(t)=Σn=(f(t)einω0tdt)einω0tff(t) = \varSigma_{n = -\infty}^{\infty} (\int_{-\infty}^{\infty} f(t) e^{-i n \omega_{0} t} dt) e^{i n \omega_{0} t} f

看上去挺眼熟的不是嗎(定積分的定義),由於 ff 無限趨近於 0,且 ω0=2πT=2πf\omega_{0} = \frac{ 2 \pi }{T} = 2 \pi f 根據 求和變積分 可得到。

f(t)=(f(t)ei2πftdt)ei2πftdff(t) = \int_{-\infty}^{\infty} (\int_{-\infty}^{\infty} f(t) e^{-i 2 \pi f t} dt) e^{i 2 \pi f t} df

不過我想可能大家還是更熟悉下面這個形式

f(t)=12π(f(t)eiωtdt)eiωtdωf(t) = \frac{1}{ 2 \pi } \int_{-\infty}^{\infty} (\int_{-\infty}^{\infty} f(t) e^{-i \omega t} dt) e^{i \omega t} d \omega

兩種表達方式其實都一樣,無非一個從頻率出發,一個從角速度出發。

其中

F(ω)=f(t)eiωtdtF(\omega) = \int_{-\infty}^{\infty} f(t) e^{-i \omega t} dt

為傅里葉變換

其中

f(t)=12πF(ω)eiωtdωf(t) = \frac{1}{ 2 \pi } \int_{-\infty}^{\infty} F(\omega) e^{i \omega t} d \omega

為傅里葉逆變換

參考資料#

純乾貨數學推導_傅里葉級數與傅里葉變換_Part5_從傅里葉級數推導傅里葉變換

物聯網前沿實踐 - 傅里葉級數

B 站首發!草履蟲都能看懂的【傅里葉變換】講解,清華大學李永樂老師教你如何理解傅里葉變換,辨清美顏和變聲原理...

形象展示傅里葉變換

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。