第二節 - 傅立葉級數 (CTFS)

本節的目的是說明週期性訊號如何表示成傅立葉級數,我們先定義一個函數的傅立葉級數並解釋它的係數由來,再解釋怎麼把級數推廣到任意區間與週期性展延。

# 傅立葉級數定義

        傅立葉級數 (Continuous-Time Fourier Series,簡稱 CTFS)

假設f(t)f(t)為一個分段連續函數,在[π,π][−\pi, \pi]之間有定義,其傅立葉級數定義如下:

           a02+n=1(ancos(nt)+bnsin(nt))\displaystyle \dfrac{a_0}2 + \sum_{n=1}^\infty \Big(a_n\cos(nt) + b_n\sin(nt)\Big)            其中對於所有的非負整數 nn 而言 an=1πππf(t)cosnt dt\displaystyle a_n = \dfrac1\pi\int_{-\pi}^\pi f(t)\cos nt\ dt,對於所有的正整數 nn 而言 bn=1πππf(t)sinnt dt\displaystyle b_n = \dfrac1\pi\int_{-\pi}^\pi f(t)\sin nt\ dt,而我們稱這些 an,bna_n,b_n為傅立葉係數。 註 1:CT、FS 是兩個很重要的英文縮寫,後面會常常出現。 註 2:這一章強調 CT 是為了和第四章的離散時間作區隔,所以不能省略。

目前只有定義級數而已,還沒說明什麼條件下會收斂到原本的函數。像 [5][6] 已有提到從各種不同角度切入的收斂定義,至於現代較廣為人知的充分條件,筆者這邊整理出以下幾種:其中一種是由 Dirichlet 所提出的狄利克雷條件 (Dirichlet conditions,不是邊界條件) [16][17],另一種是從能否平方可積 [6][19] 去判斷,又或者亦可看一次微分是否分段連續去判斷 [18][19]。由於自然界大多數的訊號都滿足充分條件[17],而且往後在使用傅立葉分析的時候只著重不同頻率的成分、不會在意訊號不連續點上的收斂情況,這邊便不去詳談這些充分條件的細節與證明,只要積分積得出有限係數,那通常就是可以放心使用傅立葉級數的

介紹完傅立葉級數的定義之後,現在要來解釋在已經確定級數收斂到原函數的條件下,為什麼傅立葉係數的算法必須如上面的定義所述呢?

# 傅立葉係數算法

             傅立葉係數 (Fourier Coefficients)

假設f(t)f(t)為一個分段連續函數,在[π,π][−\pi, \pi]之間有定義,而且在連續之處與其傅立葉級數定義有相同的值,那麼其係數必須滿足上一段所定義的算法。           

要證明此定理,最簡單的方式當然就是直接把級數帶進去上面的積分式子裡驗證,當 n=0n=0

\displaystyle \begin{alignat*}{2}\dfrac1\pi\int_{-\pi}^\pi f(t)\cos 0t\ dt &= \dfrac1\pi\int_{-\pi}^\pi f(t)\ dt \\&= \dfrac1\pi\int_{-\pi}^\pi \Bigg(\dfrac{a_0}2 + \sum_{n=1}^\infty \Big(a_n\cos(nt) + b_n\sin(nt)\Big)\Bigg)\ dt \\&= \dfrac1\pi\int_{-\pi}^\pi \dfrac{a_0}2\ dt + \dfrac1\pi\sum_{n=1}^\infty \Big(a_n\int_{-\pi}^\pi\cos(nt)\ dt + b_n\int_{-\pi}^\pi \sin(nt)\ dt \Big) \\&= a_0 + \dfrac1\pi\sum_{n=1}^\infty \Big(a_n\cdot0 + b_n\cdot0 \Big)\quad\quad//\ 三角函數週期震盪性\\&=a_0\end{alignat*}

而當 n0n\ne0 的時候:\displaystyle \begin{alignat*}{2}\dfrac1\pi\int_{-\pi}^\pi f(t)\cos nt\ dt &= \dfrac1\pi\int_{-\pi}^\pi \Bigg(\dfrac{a_0}2 + \sum_{k=1}^\infty \Big(a_k\cos(kt) + b_k\sin(kt)\Big)\Bigg)\cos(nt)\ dt \\&= \dfrac1\pi\int_{-\pi}^\pi \dfrac{a_0}2\cos(nt)\ dt + \dfrac1\pi\sum_{k>0,\\k\ne n} a_k\int_{-\pi}^\pi\cos(kt)\cos(nt)\ dt \\&{\color{white}+}+ \dfrac1\pi \sum_{k=1}^\infty b_k\int_{-\pi}^\pi \sin(kt)\cos(nt)\ dt + a_n\cdot \dfrac1\pi\int_{-\pi}^\pi\cos(nt)\cos(nt)\ dt \\&=\dfrac1\pi\cdot0 + \dfrac1\pi\cdot0 + \dfrac1\pi\cdot0 + a_n\cdot1\quad\quad//\ 三角函數之週期震盪與正交性\\&=a_n\end{alignat*}\displaystyle \begin{alignat*}{2}\dfrac1\pi\int_{-\pi}^\pi f(t)\sin nt\ dt &= \dfrac1\pi\int_{-\pi}^\pi \Bigg(\dfrac{a_0}2 + \sum_{k=1}^\infty \Big(a_k\cos(kt) + b_k\sin(kt)\Big)\Bigg)\sin(nt)\ dt \\&= \dfrac1\pi\int_{-\pi}^\pi \dfrac{a_0}2\sin(nt)\ dt + \dfrac1\pi\sum_{k=1}^\infty a_k\int_{-\pi}^\pi\cos(kt)\sin(nt)\ dt \\&{\color{white}+}+ \dfrac1\pi \sum_{k>0,\\k\ne n} b_k\int_{-\pi}^\pi \sin(kt)\sin(nt)\ dt + b_n\cdot \dfrac1\pi\int_{-\pi}^\pi\sin(nt)\sin(nt)\ dt \\&=\dfrac1\pi\cdot0 + \dfrac1\pi\cdot\Big(\sum_{k=1}^\infty a_k\cdot0\Big) + \dfrac1\pi\cdot\Big(\sum_{k>0,\\k\ne n} b_k\cdot0\Big) + b_n\cdot1\quad\quad//\ 三角函數之週期震盪與正交性\\&=b_n\end{alignat*} 如果讀者可以相信上面計算過程中的註解,那麼證明就結束了!不過筆者相信有個地方一定大部分剛入門的新手皆較不熟悉的--正交性。它包含了以下三個式子:

  • 1πππcos(mx)cos(nx) dx=δmn,其中 m,n1\displaystyle \dfrac1\pi\int_{-\pi}^{\pi} \cos(mx) \cos(nx)\ dx = \delta_{mn},其中\ m, n\ge 1

  • 1πππsin(mx)sin(nx) dx=δmn,其中 m,n1\displaystyle \dfrac1\pi\int_{-\pi}^{\pi} \sin(mx) \sin(nx)\ dx = \delta_{mn},其中\ m, n\ge 1

  • ππcos(mx)sin(nx) dx=0\displaystyle \int_{-\pi}^{\pi} \cos(mx) \sin(nx)\ dx = 0

上面的 δmn\delta_{mn}是 Kronecker delta [20]mmnn相等的時候才會是11、否則是00,以資工系的術語來說就是三元運算子,回傳 (m==n ? 1:0)(m==n\ ?\ 1 : 0) 的意思,這邊 mmnn 僅考慮正整數。其實關於這三式的證明,[21] 提供了兩個還不錯的方法,方法一是把三角函數化成兩個指數函數的和或差,方法二則是用積化和差公式把兩個三角函數相乘轉為相加、減,上述兩種方式都有一個共同的特性就是盡量讓相乘的部分消失,以避免掉分部積分的麻煩。筆者建議使用第二種證明法,因為第一種牽涉到虛數運算,會隔了一層面紗,對於講究基本原理的讀者有時候未必能接受,此外它的證明其實也已經偏離主軸,不如留待習題讓有興趣的讀者自行探討。

剛才我們只討論到函數在[π,π][-\pi,\pi]有定義的情況,這樣的區間範圍在未來要討論更多元的訊號一定是遠遠不足,因此勢必要來思考一下怎麼把區間推廣到一般化的[T0/2,T0/2][-T_0/2,T_0/2],也就是使得區間長度為T0T_0。考慮時域上伸縮的技巧,如果函數 gg 的區間恰為[T0/2,T0/2][-T_0/2,T_0/2],那是否可試著讓 g(T02πt)=f(t)g\Big(\dfrac{T_0}{2\pi}t\Big)=f(t),如此一來 ff 的參數範圍依然會落在[π,π][-\pi,\pi]之間,再套上面的定理敘述到達新的結論呢?

# 級數區間推廣到任意長度

          推廣 1 - 將傅立葉級數區間推廣到任意長度

g(t)g(t)為一個分段連續函數,在[T0/2,T0/2][-T_0/2,T_0/2]區間有定義,若其傅立葉級數為:

        g(t)=a02+n=1(ancos(n2πT0t)+bnsin(n2πT0t))\displaystyle g(t) = \dfrac{a_0}2 + \sum_{n=1}^\infty \Big(a_n\cos(n\dfrac{2\pi}{T_0}t) + b_n\sin(n\dfrac{2\pi}{T_0}t)\Big)

而且在連續之處與其傅立葉級數定義有相同的值,那麼其係數必須滿足

an=2T0T0/2T0/2g(t)cos(n2πT0t) dt\displaystyle a_n = \dfrac2{T_0}\int_{-T_0/2}^{T_0/2} g(t)\cos(n\dfrac{2\pi}{T_0}t)\ dtbn=2T0T0/2T0/2g(t)sin(n2πT0t) dt\displaystyle b_n = \dfrac2{T_0}\int_{-T_0/2}^{T_0/2} g(t)\sin(n\dfrac{2\pi}{T_0}t)\ dt

要證明推廣版本前可以先讓 gg 的參數區間等比例縮放到ff[π,π][-\pi,\pi]g(T02πt)=f(t)g\Big(\dfrac{T_0}{2\pi}t\Big) = f(t),再套用之前所推得的傅立葉級數與係數:

           f(t)=a02+n=1(ancos(nt)+bnsin(nt))f(t) = \displaystyle \dfrac{a_0}2 + \sum_{n=1}^\infty \Big(a_n\cos(nt) + b_n\sin(nt)\Big) \displaystyle \begin{alignat*}{2}a_n = \dfrac1\pi\int_{-\pi}^\pi f(t)\cos nt\ dt &= \dfrac1\pi\cdot\dfrac{2\pi}{T_0}\int_{-T_0/2}^{T_0/2} f(\dfrac{2\pi}{T_0}t)\cos(n\dfrac{2\pi}{T_0}t)\ dt\quad\quad\ //\ 變數變換\\&= \dfrac2{T_0}\int_{-T_0/2}^{T_0/2} g(t)\cos(n\dfrac{2\pi}{T_0}t)\ dt\quad\quad\ //\ 改成用\ g\ 的函數與區間表示\end{alignat*}\displaystyle \begin{alignat*}{2}b_n = \dfrac1\pi\int_{-\pi}^\pi f(t)\sin nt\ dt &= \dfrac1\pi\cdot\dfrac{2\pi}{T_0}\int_{-T_0/2}^{T_0/2} f(\dfrac{2\pi}{T_0}t)\sin(n\dfrac{2\pi}{T_0}t)\ dt\quad\quad\ //\ 變數變換\\&= \dfrac2{T_0}\int_{-T_0/2}^{T_0/2} g(t)\sin(n\dfrac{2\pi}{T_0}t)\ dt\quad\quad\ //\ 改成用\ g\ 的函數與區間表示\end{alignat*} 最後把 tt2πT0t\dfrac{2\pi}{T_0}t 代回去原本的級數便得到:         g(t)=f(2πT0t)=a02+n=1(ancos(n2πT0t)+bnsin(n2πT0t))\displaystyle g(t) = f(\dfrac{2\pi}{T_0}t) = \dfrac{a_0}2 + \sum_{n=1}^\infty \Big(a_n\cos(n\dfrac{2\pi}{T_0}t) + b_n\sin(n\dfrac{2\pi}{T_0}t)\Big)        

到目前為止我們仍只討論到函數僅在一段閉區間有定義的情況,這樣子的範圍還是不太夠,因此勢必要來思考一下怎麼把訊號從閉區間出發週期性的展延到整個實數域

# 級數週期展延到任意實數

         推廣 2 - 將傅立葉級數週期性的展延到任意實數

g(t)g(t)在整個實數域有定義且以 T0T_0為一週期,若其在[T0/2,T0/2][-T_0/2,T_0/2]之間的傅立葉級數:

        g(t)=a02+n=1(ancos(n2πT0t)+bnsin(n2πT0t))\displaystyle g(t) = \dfrac{a_0}2 + \sum_{n=1}^\infty \Big(a_n\cos(n\dfrac{2\pi}{T_0}t) + b_n\sin(n\dfrac{2\pi}{T_0}t)\Big)

而且在連續之處與其傅立葉級數定義有相同的值,那麼此級數可以自動以 T0T_0 為一個週期展延到其他時點、適用於整個實數域,且其係數必須滿足

an=2T0T0g(t)cos(n2πT0t) dt\displaystyle a_n = \dfrac2{T_0}\int_{T_0} g(t)\cos(n\dfrac{2\pi}{T_0}t)\ dtbn=2T0T0g(t)sin(n2πT0t) dt\displaystyle b_n = \dfrac2{T_0}\int_{T_0} g(t)\sin(n\dfrac{2\pi}{T_0}t)\ dt,其中積分下標 T0T_0

的意思是任意一個長度為 T0T_0 的連續區間均可的意思。

週期性展延其實靠的也是三角函數本身就帶有的週期性,以級數來說,每個時點 tt 都能表為原本定義區間[T0/2,T0/2][-T_0/2,T_0/2]之內的一個數字 t0t_0加上週期的整數倍 kT0kT_0,也就是 t=t0+kT0t=t_0+kT_0,因此:

cos(n2πT0t)=cos(n2πT0(t0+kT0))=cos(n2πT0t0+2πnk)=cos(n2πT0t0)\cos(n\dfrac{2\pi}{T_0}t) = \cos\Big(n\dfrac{2\pi}{T_0}(t_0+kT_0)\Big) = \cos\Big(n\dfrac{2\pi}{T_0}t_0+2\pi nk\Big) = \cos(n\dfrac{2\pi}{T_0}t_0)

sin(n2πT0t)=sin(n2πT0(t0+kT0))=sin(n2πT0t0+2πnk)=sin(n2πT0t0)\sin(n\dfrac{2\pi}{T_0}t) = \sin\Big(n\dfrac{2\pi}{T_0}(t_0+kT_0)\Big) = \sin\Big(n\dfrac{2\pi}{T_0}t_0+2\pi nk\Big) = \sin(n\dfrac{2\pi}{T_0}t_0)

從綠框框內的級數定義便能推得 g(t)=g(t0+kT0)=g(t0)g(t) = g(t_0+kT_0) = g(t_0),傅立葉級數可適用於任何時間點。至於傅立葉係數的積分區間,因為根據上面兩式推導可以知道 T0T_0都是 g(t)cos(n2πT0t)g(t)\cos(n\dfrac{2\pi}{T_0}t)g(t)sin(n2πT0t)g(t)\sin(n\dfrac{2\pi}{T_0}t)之最小週期的正整數倍,從黎曼積分 (Riemann integral) [22] 角度來看,只要區間長度是週期的正整數倍,無論是從哪裡開始都會剛好包含一個週期的各種函數值,算起來的係數值便會一樣。

Last updated