傅立葉級數





連續週期訊號


假設有一週期訊號 \(x(t)\),週期為\(T\)
\(x(t)=x(t+T)\)

假設此訊號能由\(e^{jk \omega_0 t}\)合成,\(\omega_0=2\pi/T\)

\(\displaystyle x(t)=\sum_{k=-\infty}^{+\infty} a_k e^{jk \omega_0 t}=\sum_{k=-\infty}^{+\infty} a_k e^{jk (2\pi/T) t}\)

上式就是\(x(t)\)的傅立葉級數表示法,只要求出\(a_k\),就能由不同頻率振幅的弦波來合成,以下為求\(a_k\)的方法

先同乘 \(e^{-jn\omega_0 t}\)
\(\displaystyle x(t)e^{-jn\omega_0 t}=\sum_{k=-\infty}^{+\infty} a_k e^{jk \omega_0 t}e^{-jn\omega_0 t}\)

在 0~T 的區間積分
\(\displaystyle \int_0^T x(t)e^{-jn\omega_0 t} \mathrm{d}t = \int_0^T \sum_{k=-\infty}^{+\infty} a_k e^{jk \omega_0 t}e^{-jn\omega_0 t} \mathrm{d}t\)

交換積分與sum的順序
\(\displaystyle \int_0^T x(t)e^{-jn\omega_0 t} \mathrm{d}t = \sum_{k=-\infty}^{+\infty} a_k \begin{bmatrix} \int_0^T e^{j(k-n) \omega_0 t} \mathrm{d}t\end{bmatrix}\)


計算右式積分部分 (Euler's formula \(e^{jx} = \cos x + j\sin x\))
\(\displaystyle \int_0^T e^{j(k-n) \omega_0 t} \mathrm{d}t = \int_0^T \cos((k-n) \omega_0 t) \mathrm{d}t + j\int_0^T \sin((k-n) \omega_0 t) \mathrm{d}t \)

\(k \neq n\) 時,積分範圍為整數倍週期的弦波,結果為0,只有\(k = n\) 時有值
\(\displaystyle \int_0^T e^{ j(k-n) \omega_0 t} \mathrm{d}t = \left\{ \begin{matrix} T,k=n \\ 0, k \neq n \end{matrix}\right. \)

將積分結果帶回原式
\(\displaystyle \int_0^T x(t)e^{-jn\omega_0 t} \mathrm{d}t = \sum_{k=-\infty}^{+\infty} a_k \begin{bmatrix} \int_0^T e^{j(k-n) \omega_0 t} \mathrm{d}t\end{bmatrix}=T a_n\)

即可求得\(a_n\)
\(\displaystyle a_n= \frac {1}{T} \int_0^T x(t)e^{-jn\omega_0 t} \mathrm{d}t \)

將積分範圍改成任意一個長度為 T 的區間能得到相同的結果
\(\displaystyle \int_T e^{ j(k-n) \omega_0 t} \mathrm{d}t = \left\{ \begin{matrix} T,k=n \\ 0, k \neq n \end{matrix}\right. \)

\(\displaystyle a_n= \frac {1}{T} \int_T x(t)e^{-jn\omega_0 t} \mathrm{d}t \)

連續週期訊號的傅立葉級數

\(\displaystyle \left\{ \begin{array} {1,1}
x(t)=\sum_{k=-\infty}^{+\infty} a_k e^{jk \omega_0 t}=\sum_{k=-\infty}^{+\infty} a_k e^{jk (2\pi/T) t} \\
a_k= \frac {1}{T} \int_T x(t)e^{-jk\omega_0 t} \mathrm{d}t = \frac {1}{T} \int_T x(t)e^{-jk(2\pi /T)t} \mathrm{d}t
\end{array} \right.
\)



範例: 週期為2,duty cycle = 50% 的方波

\(x(t) = \left\{ \begin{array} {1,1} 1, &\; |t|<0.5 \\ 0, &\; 0.5<|t|<1 \end{array}\right. \)

\(k=0\),
\(\displaystyle a_0=\frac{1}{2} \int_{-0.5}^{0.5} \mathrm{d}t = 0.5\)

\(k \neq 0\),
\(\displaystyle a_k=\frac{1}{2} \int_{-0.5}^{0.5} e^{-jk\omega_0 t} \mathrm{d}t =\left. -\frac {1} {jk\omega_0 2} e^{-jk\omega_0 t} \right|_{-0.5}^{0.5}
= \frac {1}{k\omega_0} \frac { e^{j0.5k\omega_0} - e^{-j0.5k\omega_0} }{2j}
=\frac {\sin(0.5k\omega_0)} {k\omega_0}
=\frac {\sin(0.5k\pi)} {k\pi} \;
( \omega_0 = 2 \pi / T = 2\pi / 2 = \pi )
\)

下圖為k=-7 ~ 7 的圖

求出傅立葉係數 ak 後,驗證是否能合成出方波
無法計算至無窮項,求近似值\(x_N(t)\)
\(\displaystyle x_N(t)=\sum_{k=-N}^{k=N} a_k e^{jk\pi t}\)
下圖為不同N值得合成結果



離散週期訊號

...
\(x[n]=x[n+N]\)

\( \displaystyle x[n] = \sum_{k= < N >} a_k e^{j k \omega_0 n} = \sum_{k= < N >} a_k e^{j k (2 \pi /N) n} \)

\( \displaystyle \sum_{k= < N >} a_k e^{j k (2 \pi /N) n} = \left \{ \begin {array} {1,1} N, \quad k=0,\pm N,\pm 2N,\dots\\0, \quad \text{otherwise}\end{array}\right.\)

\( \displaystyle \sum_{n= < N >} x[n] e^{-j r (2 \pi /N) n}= \sum_{n= < N >} \sum_{k= < N >} a_k e^{j (k-r) (2 \pi /N) n} \)

\( \displaystyle \sum_{n= < N >} x[n] e^{-j r (2 \pi /N) n}= \sum_{k= < N >} a_k\sum_{n= < N >} e^{j (k-r) (2 \pi /N) n} \)

\( \displaystyle a_r=\frac{1}{N}\sum_{n= < N >} x[n] e^{-j r (2 \pi /N) n} \)

\(\displaystyle \left\{ \begin{array} {1,1}
x[n] = \sum_{k= < N >} a_k e^{j k \omega_0 n} = \sum_{k= < N >} a_k e^{j k (2 \pi /N) n} \\
a_k=\frac{1}{N}\sum_{n= < N >} x[n] e^{-j k \omega_0 n} = \frac{1}{N}\sum_{n= < N >} x[n] e^{-j k (2 \pi /N) n}
\end{array} \right.
\)






M=1
M=2
M=3
M=4















3 則留言:

  1. 請問是用什麼軟體合成傅立葉係數的呢?

    回覆刪除
    回覆
    1. 畫圖用google chart https://developers.google.com/chart/
      數學式用 mathjax https://www.mathjax.org/

      刪除