最近突然覺得自己常常耍廢摸魚得過且過感覺未來會暴死,經過深刻的反省之後決定把這學期上課的內容整理成筆記放到 blog 裡,希望這個系列能夠安穩落地。因為目前才剛開始教所以分類會有些隨便,以後滾動調整吧~
關於訊號#
訊號:資訊的流動
訊號處理:生成、轉換和解釋資訊的關鍵技術
數位訊號處理:使用電腦處理訊號
訊號的分類與轉換# 訊號主要分為兩大類 :
連續時間訊號 (Continuous-time, CT) :標記為 x ( t ) x(t) x ( t )
離散時間訊號 (Discrete-time, DT) :標記為 x [ n ] x[n] x [ n ] ,其中 n n n 為整數 ( 0 , 1 , 2 , … ) (0, 1, 2, \ldots) ( 0 , 1 , 2 , … )
連續時間訊號經過取樣(Sampling)後轉換為離散訊號,取樣率是一個至關重要的參數,它決定了你每秒鐘要抓取多少個點。取樣率越高,還原出來的訊號就越接近原始的連續狀態。
類比轉數位 (A/D Conversion)# 訊號從連續時間訊號轉為類比訊號需要經過兩個步驟,分別是取樣(Sampling)以及量化(Quantization):
C T → S a m p l i n g D T → Q u a n t i z a t i o n D i g i t a l CT \xrightarrow{Sampling} DT \xrightarrow{Quantization} Digital CT S am pl in g D T Q u an t i z a t i o n D i g i t a l
取樣(時間離散化) :將 x ( t ) x(t) x ( t ) 轉換為 x [ n ] x[n] x [ n ] ,決定了訊號的頻率範圍
取樣週期(T T T ):兩次取樣之間的時間間隔
取樣率/頻率(f s f_s f s ):f s = 1 T f_s = \frac{1}{T} f s = T 1
關係式:t = n ⋅ T t = n \cdot T t = n ⋅ T
量化(數值離散化) :將連續的振幅值轉為有限精度的數位資料,決定了訊號的動態範圍與細節
基礎離散時間訊號#
單位樣本序列 (Unit Sample Sequence / Impulse)
標記為 δ [ n ] δ[n] δ [ n ] ,其定義如下 :
δ [ n ] = { 1 , n = 0 0 , n ≠ 0 δ[n] =
\left\{
\begin{array}{ll}
1, & n = 0 \\
0, & n \neq 0
\end{array}
\right. δ [ n ] = { 1 , 0 , n = 0 n = 0
單位步階序列 (Unit Step Sequence)
標記為 u [ n ] u[n] u [ n ] ,其定義如下 :
u [ n ] = { 1 , n ≥ 0 0 , n < 0 u[n] =
\left\{
\begin{array}{ll}
1, & n \ge 0 \\
0, & n < 0
\end{array}
\right. u [ n ] = { 1 , 0 , n ≥ 0 n < 0
指數序列 (Exponential Sequence)
形式為 x [ n ] = A ⋅ α n x[n] = A \cdot \alpha^n x [ n ] = A ⋅ α n ,A A A 與 α \alpha α 可為實數或複數
重要數學性質與表示法# 任意序列的表示 (Representation of Arbitrary Sequence)# 任何離散序列 x [ n ] x[n] x [ n ] 都可以表示為一組加權且延遲的單位脈衝之和 :
寫成一般式(a k a_k a k 即為 x [ k ] x[k] x [ k ] 的值):
x [ n ] = ∑ k = − ∞ ∞ a k ⋅ δ [ n − k ] = ∑ k = − ∞ ∞ x [ k ] ⋅ δ [ n − k ] x[n]=\sum_{k=-\infty}^\infty {{\color{#3071c4} a_k} \cdot \delta[n-k]}=\sum_{k=-\infty}^\infty {{\color{#3071c4} x[k]} \cdot \delta[n-k]} x [ n ] = k = − ∞ ∑ ∞ a k ⋅ δ [ n − k ] = k = − ∞ ∑ ∞ x [ k ] ⋅ δ [ n − k ]
u [ n ] u[n] u [ n ] 與 δ [ n ] \delta[n] δ [ n ] 的關係
累加關係: u [ n ] = ∑ k = 0 ∞ δ [ n − k ] u[n]=\sum_{k=0}^\infty \delta[n-k] u [ n ] = ∑ k = 0 ∞ δ [ n − k ] 或 u [ n ] = ∑ k = − ∞ n δ [ k ] u[n]=\sum_{k=-\infty}^n \delta[k] u [ n ] = ∑ k = − ∞ n δ [ k ]
差分關係: δ [ n ] = u [ n ] − u [ n − 1 ] \delta[n]=u[n]-u[n-1] δ [ n ] = u [ n ] − u [ n − 1 ]
在處理複數指數訊號時常用到:
尤拉公式:e j ϕ = cos ϕ + j sin ϕ e^{j \phi}=\cos \phi+j\sin \phi e j ϕ = cos ϕ + j sin ϕ
極座標表示:A = ∣ A ∣ e j ϕ 1 A=|A| e^{j \phi_1} A = ∣ A ∣ e j ϕ 1 ,α = ∣ α ∣ e j ϕ 2 \alpha= |\alpha| e^{j \phi_2} α = ∣ α ∣ e j ϕ 2
因此 x [ n ] = A α n = ∣ A ∣ ∣ α ∣ n e j ( n ϕ 2 + ϕ 1 ) x[n]=A \alpha^n= |A| |\alpha|^n e^{j(n \phi_2 + \phi_1)} x [ n ] = A α n = ∣ A ∣∣ α ∣ n e j ( n ϕ 2 + ϕ 1 )
✍️TODO 以後想到再補圖
訊號取樣的影響# 取樣與混疊# 基本定義# 假設一個連續時間訊號 x ( t ) = cos ( ω t ) x(t) = \cos(\omega t) x ( t ) = cos ( ω t )
ω \omega ω :角頻率 (Radian Frequency),單位:rad/s(徑度/秒)
t t t :連續時間,單位:sec(秒)
NOTE 複習一下高中內容:在圓周運動或簡諧運動的數學推導中,如果使用「圈數」,公式裡會不斷出現 2 π 2 \pi 2 π 這個係數,顯得累贅。為了讓方程式更簡潔,我們直接把 2 π 2 \pi 2 π 乘進去,定義出角頻率(以 ω \omega ω 表示)
取樣過程(Sampling Process)#
每隔 T T T 秒取樣一次,T T T : 取樣週期 (Sampling Period)
時間 t : 0 , T , 2 T , 3 T , … t = n T n = 0 , 1 , 2 , 3 , … \begin{aligned}
{\text{時間 } t\text{:}} & 0, T, 2T, 3T, \ldots \\
t &= nT \\
n &= 0, 1, 2, 3, \ldots
\end{aligned} 時間 t : t n 0 , T , 2 T , 3 T , … = n T = 0 , 1 , 2 , 3 , …
離散化
x ( t ) = cos ( ω t ) ↓ t = n T x ( n T ) = cos ( ω n T ) ⇓ x [ n ] = cos ( ω n T ) \begin{aligned}
x(t) &= \cos(\omega {\color{#3071c4}t}) \\
&\downarrow {\color{#3071c4}t = nT} \\
x({\color{#3071c4}nT}) &= \cos(\omega {\color{#3071c4}nT}) \\
&\Downarrow \\
x[n] &= \cos(\omega nT)
\end{aligned} x ( t ) x ( n T ) x [ n ] = cos ( ω t ) ↓ t = n T = cos ( ω n T ) ⇓ = cos ( ωn T )
取樣頻率轉換
取樣頻率:f s = 1 T f_s = \frac{1}{T} f s = T 1 Hz,取樣角頻率為 ω s = 2 π T \omega_s = \frac{2 \pi}{T} ω s = T 2 π rad/s
TIP ω = 2 π f → f = 1 T ω = 2 π T \omega = 2 \pi f \xrightarrow{f = \frac{1}{T}} \omega = \frac{2 \pi}{T} ω = 2 π f f = T 1 ω = T 2 π
離散時間的週期性 (Periodicity in Discrete Time)# 假設這裡有兩個訊號:x x x 和 x 1 x_1 x 1
{ x = cos ( ω t ) x 1 = cos ( ( ω + ω s ) t ) \left\{
\begin{array}{ll}
x &= \cos(\omega t) \\
x_1 &= \cos((\omega + {\color{#3071c4}\omega_s})t)
\end{array}
\right. { x x 1 = cos ( ω t ) = cos (( ω + ω s ) t ) 很明顯這是兩個不一樣頻率的訊號,但如果我們對它們進行採樣,會發現一個很有趣的現象:
x 1 ( t ) = cos ( ( ω + ω s ) t ) ↓ t = n T x 1 [ n ] = cos ( ( ω + ω s ) n T ) ∵ ω s = 2 π T ∴ x 1 [ n ] = cos ( ( ω + 2 π T ) ⋅ n T ) = c o s ( ω n T + 2 π T ⋅ n T ) = c o s ( ω n T + 2 π n ⏟ 2 π 的整數倍,不影響值 ) = c o s ( ω n T ) \begin{aligned}
x_1(t) &= \cos((\omega+\omega_s)t) \\
&\downarrow t = {\color{#3071c4}nT} \\
x_1[n] &= \cos((\omega+\omega_s){\color{#3071c4}nT}) \\
&\because \omega_s = \frac{2\pi}{T} \\
\therefore x_1[n] &= \cos((\omega+\frac{2\pi}{T})\cdot nT) \\
&= cos(\omega nT+\frac{2\pi}{\cancel{T}}\cdot n\cancel{T}) \\
&= cos(\omega nT+{\underbrace{2\pi n}_{\color{#e53935}{2\pi\text{ 的整數倍,不影響值}}}}) \\
&= cos(\omega nT)
\end{aligned} x 1 ( t ) x 1 [ n ] ∴ x 1 [ n ] = cos (( ω + ω s ) t ) ↓ t = n T = cos (( ω + ω s ) n T ) ∵ ω s = T 2 π = cos (( ω + T 2 π ) ⋅ n T ) = cos ( ωn T + T 2 π ⋅ n T ) = cos ( ωn T + 2 π 的整數倍,不影響值 2 πn ) = cos ( ωn T ) 可以觀察到雖然 x x x 跟 x 1 x_1 x 1 不同,但取樣後都是 c o s ( ω n T ) cos(\omega nT) cos ( ωn T ) ,∴ x [ n ] = x 1 [ n ] \therefore x[n] = x_1[n] ∴ x [ n ] = x 1 [ n ] 。
NOTE 這裡再假設一個 x 2 ( t ) = cos ( ( − ω + ω s ) t ) x_2(t) = \cos((-\omega+{\color{#3071c4}\omega_s})t) x 2 ( t ) = cos (( − ω + ω s ) t ) ,取樣後會得到 x 2 [ n ] = cos ( − ω n T ) x_2[n] = \cos(-\omega nT) x 2 [ n ] = cos ( − ωn T ) ,但因為 cosine 是偶函數,所以 x 2 [ n ] = cos ( − ω n T ) = cos ( ω n T ) = x [ n ] x_2[n] = \cos(-\omega nT) = \cos(\omega nT) = x[n] x 2 [ n ] = cos ( − ωn T ) = cos ( ωn T ) = x [ n ]
我們可以得到一個結論,在離散的世界裡,很多不同頻率的連續波,採樣後居然會看起來一模一樣,這個就是所謂的 「混疊現象」(Aliasing Phenomenon) 。
🔗圖片來源:https://www.ni.com/docs/zh-TW/bundle/labwindows-cvi/page/advancedanalysisconcepts/aliasing.html
奈奎斯特-香農取樣定理# 我們現在知道如果取樣頻率不夠高,就會在這種週期性的訊號上產生混疊現象,那如果不想要產生混疊現象的話,具體來說需要多高的取樣頻率呢?奈奎斯特-香農取樣定理 給出了答案,並定義了所謂的奈奎斯特頻率 (Nyquist Frequency) ,又或者稱作奈奎斯特極限 (Nyquist Limit) 。
奈奎斯特極限: 能被系統唯一表示的最高頻率為 ω s 2 \frac{\omega_s}{2} 2 ω s
發生混疊的條件: 如果輸入訊號的最高頻率 ω N > ω s 2 \omega_N > \frac{\omega_s}{2} ω N > 2 ω s ,就會發生混疊
取樣定理: 假設一個連續時間訊號 x ( t ) x(t) x ( t ) ,它是一個頻帶受限訊號 (band-limited signal) ,最高頻率為 ω N \omega_N ω N ,寫成數學式:X ( j ω ) = 0 for ∣ ω ∣ ≥ ω N X(j\omega) = 0 \text{ for } |\omega| \ge \omega_N X ( jω ) = 0 for ∣ ω ∣ ≥ ω N (所有比 ω N \omega_N ω N 大的頻率都不存在 → X ( j ω ) = 0 \rightarrow X(j\omega) = 0 → X ( jω ) = 0 )。如果我們以 ω s ≥ 2 ω N \omega_s \ge 2\omega_N ω s ≥ 2 ω N 的頻率對其進行取樣,那麼這個連續訊號 x ( t ) x(t) x ( t ) 就可以 唯一地 (uniquely) 被它的離散取樣點 x [ n ] x[n] x [ n ] 所決定。換句話說,只要取樣正確,就能拿這些離散的點拼湊回原本的 x ( t ) x(t) x ( t )
頻帶受限訊號 (Band-Limited Signal)
指其頻譜能量集中在有限的頻率範圍內的訊號,簡單來說,它的頻率是有上限的 (ω m a x < ∞ \omega_{max} < \infty ω ma x < ∞ )。
完美還原訊號的數學條件# if ω s ⏞ 取樣頻率 ≥ 2 ω N ⏞ 最高訊號頻率 i.e. , Nyquist Limit ω s 2 ω N ≤ ω s 2 ⇒ ω s ≥ 2 ω N ω s = 2 π T ⇒ T = 2 π ω s \begin{aligned}
&\text{if } \overbrace{\omega_s}^{\color{#3071c4}\text{取樣頻率}} \ge \overbrace{2\omega_N}^{\color{#e53935}\text{最高訊號頻率}} \\
&\text{i.e. , Nyquist Limit } \frac{\omega_s}{2} \\
&\omega_N \le \frac{\omega_s}{2} \color{#3071c4}{\Rightarrow \omega_s \ge 2\omega_N} \\
&\omega_s = \frac{2\pi}{T} \Rightarrow T = \frac{2\pi}{\omega_s}
\end{aligned} if ω s 取樣頻率 ≥ 2 ω N 最高訊號頻率 i.e. , Nyquist Limit 2 ω s ω N ≤ 2 ω s ⇒ ω s ≥ 2 ω N ω s = T 2 π ⇒ T = ω s 2 π 範例與練習# Ex.1# Determine which input signals to a digital filter or DSP system will be aliased by the given period Т \text{Т} Т ?
x ( t ) = 2 cos ( 10 t ) , T = 0.1s x(t) = 2\cos(10t)\text{ , T = 0.1s} x ( t ) = 2 cos ( 10 t ) , T = 0.1s
x ( t ) = 8 cos ( 15 t ) , T = 0.2s x(t) = 8\cos(15t)\text{ , T = 0.2s} x ( t ) = 8 cos ( 15 t ) , T = 0.2s
ANS
ω s = 2 π T = 2 π 0.1 = 20 π \omega_s = \frac{2\pi}{T} = \frac{2\pi}{0.1} = 20\pi ω s = T 2 π = 0.1 2 π = 20 π
Nyquist Frequency: ω s 2 = 10 π ≈ 31.4 \frac{\omega_s}{2} = 10\pi\approx 31.4 2 ω s = 10 π ≈ 31.4
∴ ω N = 10 < ω s 2 \therefore \omega_N = 10 < \frac{\omega_s}{2} ∴ ω N = 10 < 2 ω s ,沒有混疊
同理,ω s 2 = 2 π 0.2 2 = 5 π ≈ 15.7 \frac{\omega_s}{2} = \frac{\frac{2\pi}{0.2}}{2} = 5\pi\approx 15.7 2 ω s = 2 0.2 2 π = 5 π ≈ 15.7
∴ ω N = 15 < ω s 2 \therefore \omega_N = 15 < \frac{\omega_s}{2} ∴ ω N = 15 < 2 ω s ,沒有混疊
Ex.2# Determine if the following signals will be aliased. If the signal is aliased into having the same sample value as a lower frequency sinusoidal signal, determine the lower sinusoidal signal.
x ( t ) = 7 cos ( 25 t ) , T = 0.1s x(t) = 7\cos(25t)\text{ , T = 0.1s} x ( t ) = 7 cos ( 25 t ) , T = 0.1s
x ( t ) = 3 cos ( 160 t ) , T = 0.02s x(t) = 3\cos(160t)\text{ , T = 0.02s} x ( t ) = 3 cos ( 160 t ) , T = 0.02s
ANS
ω s 2 = 2 π 0.1 2 = 10 π ≈ 31.4 \frac{\omega_s}{2} = \frac{\frac{2\pi}{0.1}}{2} = 10\pi\approx 31.4 2 ω s = 2 0.1 2 π = 10 π ≈ 31.4
∴ ω N = 25 < ω s 2 \therefore \omega_N = 25 < \frac{\omega_s}{2} ∴ ω N = 25 < 2 ω s ,沒有混疊
ω s 2 = 2 π 0.02 2 = 50 π ≈ 157 \frac{\omega_s}{2} = \frac{\frac{2\pi}{0.02}}{2} = 50\pi\approx 157 2 ω s = 2 0.02 2 π = 50 π ≈ 157
∴ ω N = 160 > ω s 2 \therefore \omega_N = 160 > \frac{\omega_s}{2} ∴ ω N = 160 > 2 ω s ,有混疊
由於混疊高頻摺疊至低頻的現象 ,− ω 1 + ω s = 160 -\omega_1 + \omega_s = 160 − ω 1 + ω s = 160
又 ω s = 100 π ⇒ ω 1 = 100 π − 160 \omega_s = 100\pi \Rightarrow \omega_1 = 100\pi - 160 ω s = 100 π ⇒ ω 1 = 100 π − 160
∴ x 1 ( t ) = 3 cos ( ( 100 π − 160 ) t ) ≈ 3 cos ( 154.2 t ) \therefore x_1(t) = 3\cos((100\pi - 160)t) \approx 3\cos(154.2t) ∴ x 1 ( t ) = 3 cos (( 100 π − 160 ) t ) ≈ 3 cos ( 154.2 t )
數位濾波器規格# 基礎概念與公式# 在介紹數位濾波器之前,要先了解一下下面這三個東西,它們是衡量一個濾波器好不好用、有沒有效的核心概念:
增益 (Gain)
G a i n = 輸入訊號的振幅 輸出訊號的增幅 Gain = \frac{\text{輸入訊號的振幅}}{\text{輸出訊號的增幅}} G ain = 輸出訊號的增幅 輸入訊號的振幅
如果 G a i n = 1 Gain = 1 G ain = 1 ,代表訊號無損通過。在濾波器中,這就是我們希望保留訊號的區域,稱為 通帶 (Pass Band)
如果 G a i n Gain G ain 趨近於 0 0 0 ,代表訊號被擋下或大幅削弱。這就是我們希望濾除雜訊的區域,稱為 阻帶 (Stop Band)
損失 (Loss)
增益的倒數,即 L o s s = ( G a i n ) − 1 Loss = {(Gain)}^{-1} L oss = ( G ain ) − 1 ,本質上是一樣的東西,只是換個角度描述
分貝 (dB): 現實世界的訊號強弱差異極大,如果我們在定義濾波器規格的時候只使用倍數來表示,數值會變得極端並且難以繪圖,比如 通帶 : 阻帶 = 1 : 10 − 6 \text{通帶}:\text{阻帶} = 1 : 10^{-6} 通帶 : 阻帶 = 1 : 1 0 − 6 。為了閱讀和計算的方便性,分貝這個單位就出現了,它利用對數的性質將巨大的倍數差異壓縮成好處理的數字
分貝轉換公式:G a i n d B = 20 ⋅ log 10 ( G a i n ) Gain_{\color{#3071c4}{dB}} = 20\cdot\log_{\color{#e53935}{10}}(Gain) G ai n d B = 20 ⋅ log 10 ( G ain )
無變化時(1 1 1 倍):G a i n = 1 Gain = 1 G ain = 1 ,20 ⋅ log 10 ( 1 ) = 0 dB 20\cdot\log_{10}(1) = 0\text{ dB} 20 ⋅ log 10 ( 1 ) = 0 dB ,因此 0 dB 0\text{ dB} 0 dB 在圖表中常常被用來代表訊號的基準線
訊號放大時(假設 2 2 2 倍):20 ⋅ log 10 ( 2 ) ≈ 6 dB 20\cdot\log_{10}(2) \approx 6\text{ dB} 20 ⋅ log 10 ( 2 ) ≈ 6 dB
訊號衰減時(假設 10 − 4 10^{-4} 1 0 − 4 倍):20 ⋅ log 10 ( 10 − 4 ) = − 80 dB 20\cdot\log_{10}(10^{-4}) = -80\text{ dB} 20 ⋅ log 10 ( 1 0 − 4 ) = − 80 dB
REMARK
以分貝作為單位的時候,增益和損失的關係變得更加簡單:
∵ 20 ⋅ log 10 ( L o s s ) = 20 ⋅ log 10 ( ( g a i n ) − 1 ) ∴ L o s s = − G a i n \begin{aligned}
& \because\cancel{20}\cdot\log_{10}(Loss) = \cancel{20}\cdot\log_{10}((gain)^{-1}) \\
& \therefore Loss = -Gain
\end{aligned} ∵ 20 ⋅ log 10 ( L oss ) = 20 ⋅ log 10 (( g ain ) − 1 ) ∴ L oss = − G ain 奈奎斯特頻率 / 摺疊頻率(Nyquist / Folding frequency)# ω s 2 = 2 π ⋅ f s 2 ∵ T = 1 f s , T : Sampling Period ∴ ω s 2 = π ⋅ 1 T = π T \begin{aligned}
\frac{\omega_s}{2} &= \frac{\cancel{2}\pi \cdot f_s}{\cancel{2}} \\
\because T &= \frac{1}{f_s}, \quad T: \text{Sampling Period} \\
\therefore \frac{\omega_s}{2} &= \pi \cdot \frac{1}{T} = \frac{\pi}{T}
\end{aligned} 2 ω s ∵ T ∴ 2 ω s = 2 2 π ⋅ f s = f s 1 , T : Sampling Period = π ⋅ T 1 = T π 濾波器的實際應用#
低通濾波器
降噪,如 ECG 或 EEG 等生醫訊號及音訊處理
抗混疊濾波器
影像處理
高通濾波器
去除直流成分
影像邊緣偵測
帶通濾波器
無線通訊
生醫訊號處理
語音訊號處理
帶阻濾波器
消除電源線干擾
語音通訊
全通濾波器(增益維持1)
相位補償
多通道通訊系統中的訊號對齊
範例與練習# Ex.1# Draw the graphical specification for a digital highpass filter out to the folding frequency in rad/s that will not change the gain above 500 rad/s by more than ±3 dB, while reducing the gain below 200 rad/s by more than 40 dB.
The sampling time T = 0.001 s.
ANS
先確定 x 軸的盡頭,也就是 ω f \omega_f ω f 的部分,由於取樣時間 T = 0.001 s T = 0.001\text{s} T = 0.001 s
∵ Nyquist Frequency = π T \because\text{Nyquist Frequency} = \frac{\pi}{T} ∵ Nyquist Frequency = T π 💡為什麼?
∴ ω f = π 0.001 = 1000 π \therefore \omega_f = \frac{\pi}{0.001} = 1000\pi ∴ ω f = 0.001 π = 1000 π
畫出阻帶,題目說 200 rad/s 以下增益要衰減 40 dB,因此阻帶容許最大增益為 -40 dB,即 g s m a x = − 40 db g_{smax} = -40\text{ db} g s ma x = − 40 db
畫出通帶,題目說 500 rad/s 以上增益改變不能超過 ±3 dB,以無損增益 0 dB 為基準,可得知允許的範圍最高 g p m a x = 3 dB g_{pmax} = 3\text{ dB} g p ma x = 3 dB ,最低 g p m i n = − 3 dB g_{pmin} = -3\text{ dB} g p min = − 3 dB
規格圖如下所示:
Ex.2# Draw the graphical specification for a bandstop digital filter out to its folding frequency that will reduce the gain between 1,000 rad/s and 5,000 rad/s by more than 60 dB, but will not reduce the gain above 10,000 rad/s or below 150 rad/s by more than 3 dB. The sampling rate is 10,000 Hz.
ANS
Nyquist Frequency = ω s 2 = 2 π ⋅ f s 2 = 10000 π \text{Nyquist Frequency} = \frac{\omega_s}{2} = \frac{\cancel{2}\pi\cdot f_s}{\cancel{2}} = 10000\pi Nyquist Frequency = 2 ω s = 2 2 π ⋅ f s = 10000 π
後面跟上一題類似故省略
規格圖如下所示:
Z 轉換# 取樣並獲得了離散的數據後,我們通常想要對它進行一些處理,例如我們上一個主題講到的濾波器,用來去除雜訊或增強特定頻率。但在時域進行分析非常困難,因此我們會希望對訊號進行轉換,並在「頻域」來分析離散系統。
在連續系統中,我們使用拉普拉斯轉換 (Laplace Transform);而在離散系統中,對應的工具就是 Z 轉換 (Z-Transform) 。
為什麼要轉到頻域?# 工程師偏好在頻域處理問題,最主要的原因是運算邏輯的簡化:在時域極為複雜的「卷積」運算,轉到頻域後會變成簡單的「乘法」。
特性 時域 (Time Domain) 頻域 (Frequency Domain) 運算邏輯 卷積 (Convolution) ∗ * ∗ 乘法 (Multiplication) ⋅ \cdot ⋅ 連續訊號 y ( t ) = x ( t ) ∗ h ( t ) y(t) = x(t) * h(t) y ( t ) = x ( t ) ∗ h ( t ) Y ( s ) = X ( s ) ⋅ H ( s ) Y(s) = X(s) \cdot H(s) Y ( s ) = X ( s ) ⋅ H ( s ) 離散訊號 y [ n ] = x [ n ] ∗ h [ n ] y[n] = x[n] * h[n] y [ n ] = x [ n ] ∗ h [ n ] Y ( z ) = X ( z ) ⋅ H ( z ) Y(z) = X(z) \cdot H(z) Y ( z ) = X ( z ) ⋅ H ( z )
正規化角頻率 (Normalized Angular Frequency)# 在處理離散訊號時,為了避免公式裡一直帶著取樣週期 T T T 而顯得臃腫,我們通常會定義一個新的變數:
f ( t ) = cos ( ω ⋅ t ) l e t ↓ t = n ⋅ t <Sampling> f [ n ] = cos ( ω ⋅ n ⋅ t ) = cos ( ω T ⋅ n ) l e t ↓ Ω = ω T = cos ( Ω n ) \begin{aligned}
f(t) &= \cos(\omega{\color{#3071c4}\cdot} t) \\
&\quad {\color{#3071c4}let}\downarrow{\color{#3071c4}t=n\cdot t}{\color{#e53935}\text{ <Sampling>}} \\
f[n] &= \cos(\omega{\color{#3071c4}\cdot n\cdot t}) = \cos(\omega T\cdot n) \\
&\quad {\color{#3071c4}let}\downarrow{\color{#3071c4}\Omega=\omega T} \\
&= \cos({\color{#3071c4}\Omega}n)
\end{aligned} f ( t ) f [ n ] = cos ( ω ⋅ t ) l e t ↓ t = n ⋅ t <Sampling> = cos ( ω ⋅ n ⋅ t ) = cos ( ω T ⋅ n ) l e t ↓ Ω = ω T = cos ( Ω n ) 這裡的 Ω = ω T \Omega = \omega T Ω = ω T 稱為 離散角頻率 或 正規化角頻率 ,單位為 rad。
Z 轉換定義# 將離散訊號 f [ n ] f[n] f [ n ] 進行 Z 轉換得到 F ( z ) F(z) F ( z ) 的一般式如下:
F ( z ) = ∑ n = − ∞ ∞ f [ n ] ⋅ z − n F(z) = \sum\limits_{n=-\infty}^{\infty}f[n]\cdot z^{-n} F ( z ) = n = − ∞ ∑ ∞ f [ n ] ⋅ z − n 若訊號具備因果性(即從 n = 0 n = 0 n = 0 開始),則公式縮減為:
F ( z ) = ∑ n = 0 ∞ f [ n ] ⋅ z − n F(z) = \sum\limits_{n=0}^{\infty}f[n]\cdot z^{-n} F ( z ) = n = 0 ∑ ∞ f [ n ] ⋅ z − n
基礎訊號轉換範例# 1. 單位樣本/脈衝訊號 (Unit Impulse)# 根據定義,δ [ n ] \delta[n] δ [ n ] 只在 n = 0 n=0 n = 0 時有值,其餘皆為 0。
z ( δ [ n ] ) = ∑ n = − ∞ ∞ δ [ n ] ⋅ z − n = δ [ 0 ] ⋅ z − 0 = 1 ⋅ 1 = 1 \begin{aligned}
z(\delta[n]) &= \sum\limits_{n=-\infty}^{\infty}\delta[n]\cdot z^{{\color{#e53935}-n}} \\
&= \delta[0]\cdot z^{{\color{#e53935}-}0} = 1\cdot 1 = 1
\end{aligned} z ( δ [ n ]) = n = − ∞ ∑ ∞ δ [ n ] ⋅ z − n = δ [ 0 ] ⋅ z − 0 = 1 ⋅ 1 = 1 💡 Example: 組合脈衝訊號# Use the unit-sample signal to describe a sampled data where the initial sample x [ 0 ] = 2 x[0]=2 x [ 0 ] = 2 , x [ 3 ] = − 2 x[3]=-2 x [ 3 ] = − 2 and the rest of the samples are zero.
Step 1. 寫出離散表示式:
x [ n ] = 2 ⋅ δ [ n ] − 2 ⋅ δ [ n − 3 ] x[n] = 2\cdot \delta[n] - 2\cdot \delta[n-3] x [ n ] = 2 ⋅ δ [ n ] − 2 ⋅ δ [ n − 3 ]
Step 2. 進行 Z 轉換:
X ( z ) = ∑ n = − ∞ ∞ x [ n ] ⋅ z − n = x [ 0 ] ⋅ z − 0 + x [ 3 ] ⋅ z − 3 = 2 − 2 z − 3 \begin{aligned}
X(z) &= \sum\limits_{n=-\infty}^{\infty}x[n]\cdot z^{-n} \\
&= x[0]\cdot z^{-0} + x[3]\cdot z^{-3} \\
&= 2 - 2z^{-3}
\end{aligned} X ( z ) = n = − ∞ ∑ ∞ x [ n ] ⋅ z − n = x [ 0 ] ⋅ z − 0 + x [ 3 ] ⋅ z − 3 = 2 − 2 z − 3 2. 單位步階訊號 (Unit-step Signal)# 對於 u [ n ] u[n] u [ n ] ,訊號在 n ≥ 0 n \ge 0 n ≥ 0 時恆為 1。
REMARK
當 ∣ r ∣ < 1 |r| < 1 ∣ r ∣ < 1 時,無窮等比級數之和為:
1 + r + r 2 + r 3 + ⋯ = 1 1 − r 1 + r + r^2 + r^3 + \dots = \frac{1}{1-r} 1 + r + r 2 + r 3 + ⋯ = 1 − r 1
將 u [ n ] u[n] u [ n ] 代入 Z 轉換公式,令 r = z − 1 r = z^{-1} r = z − 1 :
Z ( u [ n ] ) = 1 + z − 1 + z − 2 + z − 3 + … = 1 1 − z − 1 = z z − 1 \begin{aligned}
Z(u[n]) &= 1 + z^{-1} + z^{-2} + z^{-3} + \dots \\
&= \frac{1}{1-z^{-1}} = \frac{z}{z-1}
\end{aligned} Z ( u [ n ]) = 1 + z − 1 + z − 2 + z − 3 + … = 1 − z − 1 1 = z − 1 z Z 轉換常用對照表#
Analog Signal Sampled Signal Z-transformed Signal A δ [ n ] A\delta[n] A δ [ n ] A A A A u ( t ) Au(t) A u ( t ) A u [ n ] Au[n] A u [ n ] A z z − 1 \frac{Az}{z - 1} z − 1 A z A e − a t u ( t ) Ae^{-at}u(t) A e − a t u ( t ) A e − a T n u [ n ] Ae^{-aTn}u[n] A e − a T n u [ n ] A z z − e − a T \frac{Az}{z - e^{-aT}} z − e − a T A z A c n u [ n ] Ac^n u[n] A c n u [ n ] A z z − c , c = e − a T \frac{Az}{z - c}, c = e^{-aT} z − c A z , c = e − a T A t u ( t ) Atu(t) A t u ( t ) A n T u [ n ] AnTu[n] A n T u [ n ] A T z ( z − 1 ) 2 \frac{ATz}{(z - 1)^2} ( z − 1 ) 2 A T z A cos ( ω t ) u ( t ) A\cos(\omega t)u(t) A cos ( ω t ) u ( t ) A cos ( ω T n ) u [ n ] A\cos(\omega Tn)u[n] A cos ( ω T n ) u [ n ] A z [ z − cos ( ω T ) ] z 2 − 2 z cos ( ω T ) + 1 \frac{Az[z - \cos(\omega T)]}{z^2 - 2z\cos(\omega T) + 1} z 2 − 2 z c o s ( ω T ) + 1 A z [ z − c o s ( ω T )] A sin ( ω t ) u ( t ) A\sin(\omega t)u(t) A sin ( ω t ) u ( t ) A sin ( ω T n ) u [ n ] A\sin(\omega Tn)u[n] A sin ( ω T n ) u [ n ] A z sin ( ω T ) z 2 − 2 z sin ( ω T ) + 1 \frac{Az\sin(\omega T)}{z^2 - 2z\sin(\omega T) + 1} z 2 − 2 z s i n ( ω T ) + 1 A z s i n ( ω T ) A e − a t cos ( ω t + α ) u ( t ) Ae^{-at}\cos(\omega t + \alpha)u(t) A e − a t cos ( ω t + α ) u ( t ) A c n cos ( ω T n + α ) Ac^n \cos(\omega Tn + \alpha) A c n cos ( ω T n + α ) A z [ z cos ( α ) − c cos ( α − ω T ) ] z 2 − 2 c z cos ( ω T ) + c 2 \frac{Az[z\cos(\alpha) - c \cos(\alpha - \omega T)]}{z^2 - 2cz\cos(\omega T) + c^2} z 2 − 2 cz c o s ( ω T ) + c 2 A z [ z c o s ( α ) − c c o s ( α − ω T )]
差分方程式與轉移函數# 在連續時間系統中,我們使用微分方程式 (Differential Equation) 來描述系統,並利用拉普拉斯轉換求解;而在離散時間系統中,我們則使用 差分方程式 (Difference Equation) 來描述,並透過 Z 轉換來處理。
Z 轉換的平移特性# 這裡先提一下 Z 轉換的平移特性,在時域延遲 k k k 個單位的 x [ n − k ] x[n-k] x [ n − k ] ,經過 Z 轉換後會乘上 z − k z^{-k} z − k ,即為 z − k ⋅ X ( z ) z^{-k}\cdot X(z) z − k ⋅ X ( z )
證明:# Z { x [ n − k ] } = ∑ n = − ∞ ∞ x [ n − k ] ⋅ z − n let u = n − k ⇒ n = u + k ∴ Z { x [ n − k ] } = ∑ n = − ∞ ∞ x [ u ] ⋅ z − ( u + k ) = ∑ u = − ∞ ∞ x [ u ] ⋅ z − u ⋅ z − k = z − k ⋅ ∑ u = − ∞ ∞ x [ u ] ⋅ z − u ⏟ = X ( z ) = z − k ⋅ X ( z ) \begin{aligned}
\mathcal{Z}\{x[n-k]\} &= \sum_{n=-\infty}^{\infty} x[n-k] \cdot z^{-n} \\
&\text{let } u = n-k \Rightarrow {\color{#3071c4}n = u+k} \\
\therefore \mathcal{Z}\{x[n-k]\} &= \sum_{{\color{#3071c4}n}=-\infty}^{\infty} x[u] \cdot z^{-{\color{#3071c4}(u+k)}} \\
&= \sum_{{\color{#3071c4}u}=-\infty}^{\infty} x[u] \cdot z^{-u} \cdot {\color{#e53935}z^{-k}} \\
&= z^{-k} \cdot \underbrace{\sum_{u=-\infty}^{\infty} x[u] \cdot z^{-u}}_{{\color{#3071c4}=X(z)}} \\
&= z^{-k} \cdot X(z)
\end{aligned} Z { x [ n − k ]} ∴ Z { x [ n − k ]} = n = − ∞ ∑ ∞ x [ n − k ] ⋅ z − n let u = n − k ⇒ n = u + k = n = − ∞ ∑ ∞ x [ u ] ⋅ z − ( u + k ) = u = − ∞ ∑ ∞ x [ u ] ⋅ z − u ⋅ z − k = z − k ⋅ = X ( z ) u = − ∞ ∑ ∞ x [ u ] ⋅ z − u = z − k ⋅ X ( z ) 簡單總結:#
原始時域訊號 Z 轉換後頻域訊號 x [ n ] x[n] x [ n ] X ( z ) X(z) X ( z ) x [ n − k ] x[n-k] x [ n − k ] z − k ⋅ X ( z ) z^{-k}\cdot X(z) z − k ⋅ X ( z ) f [ n ] f[n] f [ n ] F ( z ) F(z) F ( z ) f [ n − k ] f[n-k] f [ n − k ] z − k ⋅ F ( z ) z^{-k}\cdot F(z) z − k ⋅ F ( z ) f [ n + k ] f[n+k] f [ n + k ] z k ⋅ F ( z ) z^{k}\cdot F(z) z k ⋅ F ( z )
舉個栗子|⩊・)ノ🌰# 有個 DSP 系統,它的差分方程式為:y [ n ] − 2 ⋅ y [ n − 1 ] = 0.5 ⋅ x [ n − 1 ] y[n] -2\cdot y[n-1] = 0.5\cdot x[n-1] y [ n ] − 2 ⋅ y [ n − 1 ] = 0.5 ⋅ x [ n − 1 ] ,求它的 Block Diagram 。
畫出來要像下面這樣:
我們對差分方程式進行整理:
y [ n ] − 2 ⋅ y [ n − 1 ] = 0.5 ⋅ x [ n − 1 ] ∴ y [ n ] = 0.5 ⋅ x [ n − 1 ] + 2 ⋅ y [ n − 1 ] \begin{aligned}
y[n] -2\cdot y[n-1] = 0.5\cdot x[n-1] \\
\therefore y[n] = 0.5\cdot x[n-1] + 2\cdot y[n-1]
\end{aligned} y [ n ] − 2 ⋅ y [ n − 1 ] = 0.5 ⋅ x [ n − 1 ] ∴ y [ n ] = 0.5 ⋅ x [ n − 1 ] + 2 ⋅ y [ n − 1 ] 於是我們就能畫出:
轉移函數# 系統的轉移函數定義為輸出 Y ( z ) Y(z) Y ( z ) 與輸入 X ( z ) X(z) X ( z ) 的比值。承接上面的例子,首先對差分方程式進行 Z 轉換,根據上面證明的平移特性,我們可以很快的寫出:
y [ n ] − 2 ⋅ y [ n − 1 ] = 0.5 ⋅ x [ n − 1 ] ↓ Z-Transform Y ( z ) − 2 ⋅ z − 1 ⋅ Y ( z ) = 0.5 ⋅ z − 1 ⋅ X ( z ) ∴ Y ( z ) ( 1 − 2 z − 1 ) = 0.5 ⋅ z − 1 ⋅ X ( z ) \begin{aligned}
y[n] -2\cdot y[n-1] &= 0.5\cdot x[n-1] \\
& \downarrow \text{ Z-Transform} \\
Y(z) -2\cdot z^{-1}\cdot Y(z) &= 0.5\cdot z^{-1}\cdot X(z) \\
\therefore Y(z) (1-2z^{-1}) &= 0.5\cdot z^{-1}\cdot X(z)
\end{aligned} y [ n ] − 2 ⋅ y [ n − 1 ] Y ( z ) − 2 ⋅ z − 1 ⋅ Y ( z ) ∴ Y ( z ) ( 1 − 2 z − 1 ) = 0.5 ⋅ x [ n − 1 ] ↓ Z-Transform = 0.5 ⋅ z − 1 ⋅ X ( z ) = 0.5 ⋅ z − 1 ⋅ X ( z ) 這個轉移函數 T ( z ) T(z) T ( z ) 是描述系統特性的核心,它決定了系統面對任何輸入時的反應:
T ( z ) ≡ Y ( z ) X ( z ) = 0.5 ⋅ z − 1 1 − 2 ⋅ z − 1 {\color{#e53935}T(z)}\equiv\frac{Y(z)}{X(z)} = \frac{0.5\cdot z^{-1}}{1-2\cdot z^{-1}} T ( z ) ≡ X ( z ) Y ( z ) = 1 − 2 ⋅ z − 1 0.5 ⋅ z − 1 只要有了 T ( z ) T(z) T ( z ) ,我們就能輕鬆算出任何輸入對應的結果:Y ( z ) = T ( z ) ⋅ X ( z ) Y(z) = T(z)\cdot X(z) Y ( z ) = T ( z ) ⋅ X ( z )
數位濾波器與 DSP 系統的頻率響應# Z 轉換出來的結果轉移函數 T ( z ) T(z) T ( z ) ,是一個包含所有可能 z z z 值的複數平面。這個平面通常可用來分析系統的「穩定性」,但它還不是我們直觀能看懂的物理頻率,因此這個章節重點在於如何從 Z 域轉換到頻域,並計算系統的增益與相位。
再複習一下這張圖,講 Z 轉換 的時候出現過:
當初在 Z 域以及頻域之間的箭頭打了一顆星星,現在就要來提到這個部分,一樣拿連續時間系統跟離散時間系統做一個對照:
連續時間系統: 拉普拉斯轉換(s s s 域)→ \rightarrow → 鎖定虛數軸(s = j w s = jw s = j w )→ \rightarrow → 變成傅立葉轉換(頻域)
離散時間系統: Z 轉換(z z z 域)→ \rightarrow → 鎖定單位圓(z = e j Ω z = e^{j\Omega} z = e j Ω )→ \rightarrow → 變成離散時間傅立葉轉換(頻域)
為什麼 z = e j Ω z = e^{j\Omega} z = e j Ω ?# x ( t − T ) → L -trf L { x ( t − T ) } = e − s T ⋅ X ( s ) x [ n T − T ] → z-trf Z { x [ n − 1 ] } = z − 1 ⋅ X ( z ) z − 1 = e − s T = ( e s T ) − 1 ∴ z = e s T ∵ s = j ω ⇒ Frequency response ∴ z = e j ω T = e j Ω \begin{aligned}
x(t-T) \xrightarrow{\mathcal{L}\text{-trf}} \mathcal{L}\{x(t-T)\} &= {\color{#e53935}e^{-sT}}\cdot X(s) \\
x[nT-T] \xrightarrow{\text{z-trf}} Z\{x[n-1]\} &= {\color{#e53935}z^{-1}}\cdot X(z) \\
z^{-1} = e^{-sT} = (e^{sT})^{-1} \text{ } & \therefore z = e^{sT} \\
\because s = j\omega \Rightarrow \text{Frequency} & \text{ response} \\
\therefore z = e^{{\color{#3071c4}j\omega} T} = e^{j{\color{#3071c4}\Omega}}
\end{aligned} x ( t − T ) L -trf L { x ( t − T )} x [ n T − T ] z-trf Z { x [ n − 1 ]} z − 1 = e − s T = ( e s T ) − 1 ∵ s = jω ⇒ Frequency ∴ z = e jω T = e j Ω = e − s T ⋅ X ( s ) = z − 1 ⋅ X ( z ) ∴ z = e s T response 系統的頻率響應分析# 振幅響應與增益 (Magnitude Response / Gain)#
系統的增益即為轉移函數在 z = e j Ω z = e^{j\Omega} z = e j Ω 時的絕對值大小:Gain = ∣ T ( z ) ∣ z = e j Ω \text{Gain} = |T(z)|_{z=e^{j\Omega}} Gain = ∣ T ( z ) ∣ z = e j Ω
若要以分貝表示,公式為:Gain dB = 20 ⋅ log ( ∣ T ( z ) ∣ z = e j Ω ) \text{Gain}_{\text{dB}} = 20\cdot\log(|T(z)|_{z=e^{j\Omega}}) Gain dB = 20 ⋅ log ( ∣ T ( z ) ∣ z = e j Ω )
可利用尤拉公式 (Euler formula) e j Ω = cos ( Ω ) + j sin ( Ω ) e^{j\Omega} = \cos(\Omega) + j\sin(\Omega) e j Ω = cos ( Ω ) + j sin ( Ω ) 將數值代入轉移函數,計算特定頻率下的增益
Remark: Euler Formula
e j θ = cos ( θ ) + j sin ( θ ) , j = − 1 ∴ z = e j Ω = cos ( Ω ) + j sin ( Ω ) \begin{aligned}
e^{j\theta} &= \cos(\theta) + j\sin(\theta), \quad j = \sqrt{-1} \\
\therefore z = e^{j\Omega} &= \cos(\Omega) + j\sin(\Omega)
\end{aligned} e j θ ∴ z = e j Ω = cos ( θ ) + j sin ( θ ) , j = − 1 = cos ( Ω ) + j sin ( Ω ) 代入轉移函數後會得到一個複數 T ( e j Ω ) = a + j b T(e^{j\Omega}) = a + jb T ( e j Ω ) = a + jb ,其絕對值(也就是增益)算法為:
∣ T ( e j Ω ) ∣ = a 2 + b 2 |T(e^{j\Omega})| = \sqrt{a^2 + b^2} ∣ T ( e j Ω ) ∣ = a 2 + b 2
相位響應 (Phase Response)# 除了振幅(增益)會改變之外,訊號經過系統後,波形的「相位」也會產生偏移。
將 z = e j Ω z = e^{j\Omega} z = e j Ω 代入轉移函數後得到的複數 a + j b a + jb a + jb ,我們也可以求出它的角度,這個角度就是相位的變化量 ϕ \phi ϕ :
ϕ = tan − 1 ( b a ) = tan − 1 ( 虛部 Im 實部 Re ) \phi = \tan^{-1}\left(\frac{b}{a}\right) = \tan^{-1}\left(\frac{\text{虛部 Im}}{\text{實部 Re}}\right) ϕ = tan − 1 ( a b ) = tan − 1 ( 實部 Re 虛部 Im ) 極點與零點 (Poles & Zeros)# 轉移函數 T ( z ) T(z) T ( z ) 通常可以表示成一個帶有分子跟分母的有理函數 (Rational function):
T ( z ) = Y ( z ) X ( z ) = N ( z ) D ( z ) T(z) = \frac{Y(z)}{X(z)} = \frac{N(z)}{D(z)} T ( z ) = X ( z ) Y ( z ) = D ( z ) N ( z )
零點 (Zeros): 讓分子 N ( z ) = 0 N(z) = 0 N ( z ) = 0 的 z z z 值。在這些特定的 z z z 值下,系統的輸出為 0(增益為 0),代表這些頻率的訊號會被完全阻擋。
極點 (Poles): 讓分母 D ( z ) = 0 D(z) = 0 D ( z ) = 0 的 z z z 值。在這些特定的 z z z 值下,系統增益會趨近於無限大,極點的位置對於判斷一個系統是否「穩定」非常關鍵。
範例與練習# Determine the gain in dB at 2 rad/s and 37 rad/s for the digital fitter with the following transfer function with the sampling period T = 0.02 s T = 0.02\text{s} T = 0.02 s . Also state if it is a highpass or lowpass filter. T ( z ) = 0.8333 ( z − 1 ) z − 0.667 T(z) = \frac{0.8333(z-1)}{z-0.667} T ( z ) = z − 0.667 0.8333 ( z − 1 ) .
ANS
Step 1. 先把公式準備好
將尤拉公式 z = e j Ω = cos ( Ω ) + j sin ( Ω ) z = e^{j\Omega} = \cos(\Omega) + j\sin(\Omega) z = e j Ω = cos ( Ω ) + j sin ( Ω ) 代入轉移函數:
T ( e j Ω ) = 0.8333 ( cos Ω − 1 + j sin Ω ) ( cos Ω − 0.667 ) + j sin Ω T(e^{j\Omega}) = \frac{0.8333(\cos\Omega - 1 + j\sin\Omega)}{(\cos\Omega - 0.667) + j\sin\Omega} T ( e j Ω ) = ( cos Ω − 0.667 ) + j sin Ω 0.8333 ( cos Ω − 1 + j sin Ω ) 接著我們要算增益的絕對值(分子分母分別取絕對值 實部 2 + 虛部 2 \sqrt{\text{實部}^2 + \text{虛部}^2} 實部 2 + 虛部 2 ):
∣ T ( e j Ω ) ∣ = 0.8333 ⋅ ( cos Ω − 1 ) 2 + ( sin Ω ) 2 ( cos Ω − 0.667 ) 2 + ( sin Ω ) 2 |T(e^{j\Omega})| = \frac{0.8333 \cdot \sqrt{(\cos\Omega - 1)^2 + (\sin\Omega)^2}}{\sqrt{(\cos\Omega - 0.667)^2 + (\sin\Omega)^2}} ∣ T ( e j Ω ) ∣ = ( cos Ω − 0.667 ) 2 + ( sin Ω ) 2 0.8333 ⋅ ( cos Ω − 1 ) 2 + ( sin Ω ) 2 分子根號內展開:cos 2 Ω − 2 cos Ω + 1 + sin 2 Ω = 2 − 2 cos Ω \cos^2\Omega - 2\cos\Omega + 1 + \sin^2\Omega = 2 - 2\cos\Omega cos 2 Ω − 2 cos Ω + 1 + sin 2 Ω = 2 − 2 cos Ω
分母根號內展開:cos 2 Ω − 1.334 cos Ω + 0.444889 + sin 2 Ω = 1.444889 − 1.334 cos Ω \cos^2\Omega - 1.334\cos\Omega + 0.444889 + \sin^2\Omega = 1.444889 - 1.334\cos\Omega cos 2 Ω − 1.334 cos Ω + 0.444889 + sin 2 Ω = 1.444889 − 1.334 cos Ω
Step 2. 代入 ω = 2 rad/s \omega = 2\text{ rad/s} ω = 2 rad/s
Ω = ω T = 2 × 0.02 = 0.04 rad \Omega = \omega T = 2 \times 0.02 = 0.04\text{ rad} Ω = ω T = 2 × 0.02 = 0.04 rad
cos ( 0.04 ) ≈ 0.9992 \cos(0.04) \approx 0.9992 cos ( 0.04 ) ≈ 0.9992
代入剛剛整理好的絕對值公式:
分子:0.8333 × 2 − 2 ( 0.9992 ) = 0.8333 × 0.0016 = 0.8333 × 0.04 ≈ 0.0333 0.8333 \times \sqrt{2 - 2(0.9992)} = 0.8333 \times \sqrt{0.0016} = 0.8333 \times 0.04 \approx 0.0333 0.8333 × 2 − 2 ( 0.9992 ) = 0.8333 × 0.0016 = 0.8333 × 0.04 ≈ 0.0333
分母:1.444889 − 1.334 ( 0.9992 ) = 1.444889 − 1.3329 ≈ 0.1119 ≈ 0.3345 \sqrt{1.444889 - 1.334(0.9992)} = \sqrt{1.444889 - 1.3329} \approx \sqrt{0.1119} \approx 0.3345 1.444889 − 1.334 ( 0.9992 ) = 1.444889 − 1.3329 ≈ 0.1119 ≈ 0.3345
Gain = 0.0333 0.3345 ≈ 0.0995 \text{Gain} = \frac{0.0333}{0.3345} \approx 0.0995 Gain = 0.3345 0.0333 ≈ 0.0995
換算 dB:20 log 10 ( 0.0995 ) ≈ − 20.04 dB 20\log_{10}(0.0995) \approx \mathbf{-20.04\text{ dB}} 20 log 10 ( 0.0995 ) ≈ − 20.04 dB (增益大幅衰減!)
Step 3. 代入 ω = 37 rad/s \omega = 37\text{ rad/s} ω = 37 rad/s
Ω = ω T = 37 × 0.02 = 0.74 rad \Omega = \omega T = 37 \times 0.02 = 0.74\text{ rad} Ω = ω T = 37 × 0.02 = 0.74 rad
cos ( 0.74 ) ≈ 0.7385 \cos(0.74) \approx 0.7385 cos ( 0.74 ) ≈ 0.7385
代入絕對值公式:
分子:0.8333 × 2 − 2 ( 0.7385 ) = 0.8333 × 0.523 ≈ 0.8333 × 0.7232 ≈ 0.6026 0.8333 \times \sqrt{2 - 2(0.7385)} = 0.8333 \times \sqrt{0.523} \approx 0.8333 \times 0.7232 \approx 0.6026 0.8333 × 2 − 2 ( 0.7385 ) = 0.8333 × 0.523 ≈ 0.8333 × 0.7232 ≈ 0.6026
分母:1.444889 − 1.334 ( 0.7385 ) = 1.444889 − 0.9851 ≈ 0.4597 ≈ 0.6780 \sqrt{1.444889 - 1.334(0.7385)} = \sqrt{1.444889 - 0.9851} \approx \sqrt{0.4597} \approx 0.6780 1.444889 − 1.334 ( 0.7385 ) = 1.444889 − 0.9851 ≈ 0.4597 ≈ 0.6780
Gain = 0.6026 0.6780 ≈ 0.8888 \text{Gain} = \frac{0.6026}{0.6780} \approx 0.8888 Gain = 0.6780 0.6026 ≈ 0.8888
換算 dB:20 log 10 ( 0.8888 ) ≈ − 1.02 dB 20\log_{10}(0.8888) \approx \mathbf{-1.02\text{ dB}} 20 log 10 ( 0.8888 ) ≈ − 1.02 dB (接近 0 dB,訊號無損通過!)
Step 4. 判斷濾波器類型
根據上面的計算:
低頻率 (ω = 2 \omega = 2 ω = 2 ) 時,訊號衰減很嚴重 (-20 dB)
高頻率 (ω = 37 \omega = 37 ω = 37 ) 時,訊號順利通過 (-1 dB)
結論:這是一個高通濾波器
IIR 濾波器設計# 前面介紹了數位濾波器的規格以及 Z 轉換如何幫助我們在頻域進行分析,接下來就要進入重頭戲了:如何實際設計出一個濾波器!我們首先從 IIR 濾波器開始談起。
系統與差分方程式# 複習一下,在 DSP 系統中,輸入訊號 x [ n ] x[n] x [ n ] 經過系統 T T T 轉換後會得到輸出 y [ n ] y[n] y [ n ] ,我們可以將其表示為 y [ n ] = T ( x [ n ] ) y[n]=T(x[n]) y [ n ] = T ( x [ n ]) 。
常見的系統運算包含了:
延遲系統 (Delay System): 輸出直接是過去輸入的延遲,表示為 y [ n ] = x [ n − d ] y[n]=x[n-d] y [ n ] = x [ n − d ]
移動平均系統 (Moving-Average System): 輸出是過去幾個輸入訊號的平均,例如三階的移動平均可以寫成 y [ n ] = 1 3 ( x [ n ] + x [ n − 1 ] + x [ n − 2 ] ) y[n]=\frac{1}{3}(x[n]+x[n-1]+x[n-2]) y [ n ] = 3 1 ( x [ n ] + x [ n − 1 ] + x [ n − 2 ])
如果我們把這些概念推廣,系統的輸出其實可以由「過去的輸出」與「現在及過去的輸入」組合而成,形成了一般差分方程式 (General Difference Equation),公式如下:
y [ n ] = a 1 y [ n − 1 ] + a 2 y [ n − 2 ] + ⋯ + a p y [ n − p ] + b 0 x [ n ] + b 1 x [ n − 1 ] + ⋯ + b q x [ n − q ] y[n]=a_{1}y[n-1]+a_{2}y[n-2]+\dots+a_{p}y[n-p] + b_{0}x[n]+b_{1}x[n-1]+\dots+b_{q}x[n-q] y [ n ] = a 1 y [ n − 1 ] + a 2 y [ n − 2 ] + ⋯ + a p y [ n − p ] + b 0 x [ n ] + b 1 x [ n − 1 ] + ⋯ + b q x [ n − q ] p p p 和 q q q 分別代表回饋 (Feedback, 過去的輸出) 與前饋 (Feedfoward, 現在與過去的輸入) 的階數。
轉移函數 (Transfer Function)# 在時域看這長長一串方程式有點痛苦,所以我們把它丟進 Z 轉換的魔法陣裡。利用上一章提到的平移特性(x [ n − k ] → Z z − k X ( z ) x[n-k] \xrightarrow{\mathcal{Z}} z^{-k}X(z) x [ n − k ] Z z − k X ( z ) ),我們可以把差分方程式整理成系統的轉移函數 H ( z ) H(z) H ( z ) :
Y ( z ) = a 1 z − 1 Y ( z ) + a 2 z − 2 Y ( z ) + ⋯ + a p z − p Y ( z ) + b 0 X ( z ) + b 1 z − 1 X ( z ) + ⋯ + b q z − q X ( z ) \begin{aligned}
Y(z) &= a_{1}z^{-1}Y(z) + a_{2}z^{-2}Y(z) + \dots + a_{p}z^{-p}Y(z) \\
&\quad + b_{0}X(z) + b_{1}z^{-1}X(z) + \dots + b_{q}z^{-q}X(z)
\end{aligned} Y ( z ) = a 1 z − 1 Y ( z ) + a 2 z − 2 Y ( z ) + ⋯ + a p z − p Y ( z ) + b 0 X ( z ) + b 1 z − 1 X ( z ) + ⋯ + b q z − q X ( z ) 經過移項與提出公因數後,我們就能得到系統的轉移函數 H ( z ) H(z) H ( z ) :
H ( z ) = Y ( z ) X ( z ) = b 0 + b 1 z − 1 + b 2 z − 2 + ⋯ + b q z − q 1 − a 1 z − 1 − a 2 z − 2 − ⋯ − a p z − p H(z) = \frac{Y(z)}{X(z)} = \frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+\dots+b_{q}z^{-q}}{1-a_{1}z^{-1}-a_{2}z^{-2}-\dots-a_{p}z^{-p}} H ( z ) = X ( z ) Y ( z ) = 1 − a 1 z − 1 − a 2 z − 2 − ⋯ − a p z − p b 0 + b 1 z − 1 + b 2 z − 2 + ⋯ + b q z − q NOTE 這裡的 H ( z ) H(z) H ( z ) 跟前面提到的 T ( z ) T(z) T ( z ) 基本上是同一個東西,其實在 DSP 中用 H ( z ) H(z) H ( z ) 應該是比較普遍的,之後不管看到 T ( z ) T(z) T ( z ) 還是 H ( z ) H(z) H ( z ) 都要知道是在說轉移函數(系統函數)。
FIR 與 IIR 濾波器# 根據差分方程式中是否含有「過去的輸出(即 Feedback)」,我們可以將數位濾波器分為兩大家族:
FIR(Finite Impulse Response, 有限脈衝響應):
系統中沒有回饋 (No feedback)
也就是差分方程式中的係數 a 1 = a 2 = ⋯ = a p = 0 a_{1}=a_{2}=\dots=a_{p}=0 a 1 = a 2 = ⋯ = a p = 0
IIR(Infinite Impulse Response, 無限脈衝響應):
系統中具有回饋 (has feedback)
代表 a 1 ≠ 0 a_{1} \neq 0 a 1 = 0 或是 a 2 ≠ 0 a_{2} \neq 0 a 2 = 0 … \dots … a k ≠ 0 a_{k} \neq 0 a k = 0 等,這會導致脈衝響應在理論上會無限延伸下去
四大基本類比濾波器# 要無中生有設計出一個數位 IIR 濾波器有點難,所以工程界習慣先參考已經發展非常成熟的「類比濾波器」,再將其轉換成數位濾波器。最經典的有以下四種:
Butterworth Filter
Chebyshev Type I Filter
Chebyshev Type II Filter (Inverse Chebyshev Filter)
Elliptic Filter (Cauer Filter)
🔗圖片來源:https://pages.hmc.edu/mspencer/e157/fa24/slides/09.pdf
各種數位濾波器的特色如下表所示:
濾波器 通帶 阻帶 過渡帶斜率 Ripple 位置 階數需求 設計難度 適用情境 Butterworth 完全平坦 單調下降 最慢 無 高 最簡單 音訊、量測 Chebyshev I 有 ripple 單調下降 較快 通帶 較低 中等 通訊 Chebyshev II 平坦 有 ripple 較快 阻帶 較低 中等 精準通帶 Elliptic 有 ripple 有 ripple 最快 通帶/阻帶 最低 最複雜 高效率頻譜
IIR 濾波器設計:脈衝不變法# 了解了類比濾波器後,我們如何把它「轉」成數位濾波器呢?這裡介紹一種最直觀的方法:脈衝不變法 (Impulse Invariant Method)。
它的核心概念非常簡單粗暴:我們希望設計出來的數位濾波器,它的脈衝響應剛好等於類比濾波器脈衝響應在離散時間下的取樣點!
在類比系統中:若輸入為脈衝訊號 δ ( t ) \delta(t) δ ( t ) (對應拉普拉斯轉換 X ( s ) = 1 X(s)=1 X ( s ) = 1 ),則系統輸出 Y ( s ) = T ( s ) Y(s) = T(s) Y ( s ) = T ( s ) 。
在數位系統中:若輸入為脈衝序列 δ [ n ] \delta[n] δ [ n ] (對應 Z 轉換 X ( z ) = 1 X(z)=1 X ( z ) = 1 ),則系統輸出 Y ( z ) = T ( z ) Y(z) = T(z) Y ( z ) = T ( z ) 。
數學關係:T ( z ) = Z { L − 1 [ T ( s ) ] ∣ t = n T } T(z) = \mathcal{Z}\left\{ \left. \mathcal{L}^{-1}[T(s)] \right|_{t=nT} \right\} T ( z ) = Z { L − 1 [ T ( s )] t = n T }
舉個栗子|⩊・)ノ🌰# 假設我們已知一個一階類比低通濾波器(直流增益為 1,截止頻率 ω c = 10 rad/s \omega_c = 10\text{ rad/s} ω c = 10 rad/s ),其轉移函數為 T ( s ) = 10 s + 10 T(s) = \frac{10}{s+10} T ( s ) = s + 10 10 。
現在我們想要使用脈衝不變法來找它的數位濾波器差分方程式,假設取樣週期 T = 0.1 s T = 0.1\text{s} T = 0.1 s 。
Step 1. 求出連續時間脈衝響應
對 T ( s ) T(s) T ( s ) 取反拉普拉斯轉換:
y ( t ) = L − 1 [ 10 s + 10 ] = 10 ⋅ e − 10 t y(t) = \mathcal{L}^{-1}\left[\frac{10}{s+10}\right] = 10 \cdot e^{-10t} y ( t ) = L − 1 [ s + 10 10 ] = 10 ⋅ e − 10 t Step 2. 代入離散時間進行取樣
將 t = n T = 0.1 n t = nT = 0.1n t = n T = 0.1 n 代入上述方程式:
y [ n ] = 10 ⋅ e − 10 t ∣ t = 0.1 n = 10 ⋅ e − 10 ( 0.1 n ) = 10 ⋅ e − n y[n] = \left. 10 \cdot e^{-10t} \right|_{t=0.1n} = 10 \cdot e^{-10(0.1n)} = 10 \cdot e^{-n} y [ n ] = 10 ⋅ e − 10 t t = 0.1 n = 10 ⋅ e − 10 ( 0.1 n ) = 10 ⋅ e − n Step 3. 進行 Z 轉換
將取樣後的 y [ n ] y[n] y [ n ] 進行 Z 轉換求出 Y ( z ) Y(z) Y ( z ) :
Y ( z ) = Z { 10 ⋅ e − n } = 10 z z − e − 1 Y(z) = \mathcal{Z}\{10 \cdot e^{-n}\} = \frac{10z}{z-e^{-1}} Y ( z ) = Z { 10 ⋅ e − n } = z − e − 1 10 z Step 4. 進行增益補償並求出 H ( z ) H(z) H ( z )
為了補償取樣過程中產生的 1 / T 1/T 1/ T 倍頻譜放大效應,須將 Z 轉換結果乘上取樣週期 T T T 以校正增益,使其與原類比濾波器量級一致:
H ( z ) = T ⋅ Y ( z ) = 0.1 ⋅ 10 z z − e − 1 = 1 1 − e − 1 z − 1 H(z) = T \cdot Y(z) = 0.1 \cdot \frac{10z}{z-e^{-1}} = \frac{1}{1-e^{-1}z^{-1}} H ( z ) = T ⋅ Y ( z ) = 0.1 ⋅ z − e − 1 10 z = 1 − e − 1 z − 1 1 如果不做增益補償,系統會怎麼樣?我們實際拿上面這個例子算一下「直流增益」(也就是頻率為 0 時的倍率,代入 s = 0 s=0 s = 0 或 z = 1 z=1 z = 1 ):
原本的類比濾波器: T ( s ) = 10 0 + 10 = 1 T(s) = \frac{10}{0+10} = 1 T ( s ) = 0 + 10 10 = 1 (訊號 1 倍無損通過)
未乘 T 補償的數位濾波器: Y ( z ) = 10 1 − e − 1 ≈ 15.8 Y(z) = \frac{10}{1-e^{-1}} \approx 15.8 Y ( z ) = 1 − e − 1 10 ≈ 15.8 (訊號直接被暴增近 16 倍,系統大爆走)
乘上 T ( 0.1 ) T\ (0.1) T ( 0.1 ) 補償後: H ( z ) = 10 1 − e − 1 ⋅ 0.1 ≈ 1.58 H(z) = \frac{10}{1-e^{-1}} \cdot 0.1 \approx 1.58 H ( z ) = 1 − e − 1 10 ⋅ 0.1 ≈ 1.58
雖然脈衝不變法因為天生的「高頻混疊」缺陷,導致補償後無法完美回到 1,但至少乘上 T T T 後,已經把增益量級拉回正確的基準線了!
Step 5. 轉回差分方程式
有了轉移函數,我們將其還原為輸入與輸出的關係:
Y ( z ) X ( z ) = 1 1 − e − 1 z − 1 Y ( z ) ⋅ ( 1 − e − 1 z − 1 ) = X ( z ) Y ( z ) − e − 1 z − 1 Y ( z ) = X ( z ) \begin{gathered}
\frac{Y(z)}{X(z)} = \frac{1}{1-e^{-1}z^{-1}} \\
Y(z) \cdot (1-e^{-1}z^{-1}) = X(z) \\
Y(z) - e^{-1}z^{-1}Y(z) = X(z)
\end{gathered} X ( z ) Y ( z ) = 1 − e − 1 z − 1 1 Y ( z ) ⋅ ( 1 − e − 1 z − 1 ) = X ( z ) Y ( z ) − e − 1 z − 1 Y ( z ) = X ( z ) 最後反 Z 轉換回時域,大功告成!這就是我們要的 IIR 濾波器:
y [ n ] − e − 1 y [ n − 1 ] = x [ n ] ⇒ y [ n ] = e − 1 y [ n − 1 ] + x [ n ] y[n] - e^{-1}y[n-1] = x[n] \quad \Rightarrow \quad {\color{#3071c4}y[n] = e^{-1}y[n-1] + x[n]} y [ n ] − e − 1 y [ n − 1 ] = x [ n ] ⇒ y [ n ] = e − 1 y [ n − 1 ] + x [ n ] ✍️TODO:圖之後補
進階範例|⩊・)ノ🥥:二階系統的脈衝不變法# Find the digital IIR filter for the second-order lowpass analog filter given by the following equation for T ( s ) = 15 s ( s + 15 ) T(s) = \frac{15}{s(s+15)} T ( s ) = s ( s + 15 ) 15 for a sampling period T = 0.05 s T = 0.05 \text{ s} T = 0.05 s .
Step 1. 部分分式展開 (Partial Fraction Expansion, PFE)
為了方便進行反拉普拉斯轉換,我們先把 T ( s ) T(s) T ( s ) 拆開:
T ( s ) = 15 s ( s + 15 ) = A s + B s + 15 T(s)=\frac{15}{s(s+15)}=\frac{A}{s}+\frac{B}{s+15} T ( s ) = s ( s + 15 ) 15 = s A + s + 15 B 經過計算可得 A = 1 , B = − 1 A=1, B=-1 A = 1 , B = − 1 。
所以 T ( s ) = 1 s − 1 s + 15 T(s)={\color{#0D9488}\frac{1}{s}}-{\color{#D97706}\frac{1}{s+15}} T ( s ) = s 1 − s + 15 1 。
Step 2. 轉換至時域
查閱拉普拉斯轉換表,我們可以得到連續時間的脈衝響應:y ( t ) = 1 − e − 15 t y(t) = {\color{#0D9488}1} - {\color{#D97706}e^{-15t}} y ( t ) = 1 − e − 15 t
Step 3. 進行取樣與 Z 轉換
代入 t = n T t=nT t = n T ,並進行 Z 轉換求出 T ( z ) T(z) T ( z ) (原理與一階系統相同,這裡快速帶過)。最終整理後可得到系統的轉移函數:
T ( z ) = 0.0264 z − 1 1 − 1.472 z − 1 + 0.472 z − 2 T(z) = \frac{0.0264z^{-1}}{1 - 1.472z^{-1} + 0.472z^{-2}} T ( z ) = 1 − 1.472 z − 1 + 0.472 z − 2 0.0264 z − 1 Step 4. 轉回差分方程式
將轉移函數 T ( z ) = Y ( z ) X ( z ) T(z) = \frac{Y(z)}{X(z)} T ( z ) = X ( z ) Y ( z ) 展開並交叉相乘:
Y ( z ) ( 1 − 1.472 z − 1 + 0.472 z − 2 ) = X ( z ) ( 0.0264 z − 1 ) Y ( z ) − 1.472 z − 1 Y ( z ) + 0.472 z − 2 Y ( z ) = 0.0264 z − 1 X ( z ) \begin{gathered}
Y(z)(1 - 1.472z^{-1} + 0.472z^{-2}) = X(z)(0.0264z^{-1}) \\
Y(z) - 1.472z^{-1}Y(z) + 0.472z^{-2}Y(z) = 0.0264z^{-1}X(z)
\end{gathered} Y ( z ) ( 1 − 1.472 z − 1 + 0.472 z − 2 ) = X ( z ) ( 0.0264 z − 1 ) Y ( z ) − 1.472 z − 1 Y ( z ) + 0.472 z − 2 Y ( z ) = 0.0264 z − 1 X ( z ) 接著利用 Z 轉換的平移特性,將等式反轉換回時域,就能得到最終的差分方程式:
y [ n ] = 1.472 ⋅ y [ n − 1 ] − 0.472 ⋅ y [ n − 2 ] + 0.0264 ⋅ x [ n − 1 ] y[n] = 1.472 \cdot y[n-1] - 0.472 \cdot y[n-2] + 0.0264 \cdot x[n-1] y [ n ] = 1.472 ⋅ y [ n − 1 ] − 0.472 ⋅ y [ n − 2 ] + 0.0264 ⋅ x [ n − 1 ] 方法 2: 步階不變法# 脈衝不變法雖然直觀,但因為脈衝訊號在頻域包含無限高的頻率成分,取樣時非常容易發生「混疊現象 」。為了解決這個問題,我們可以改用「單位步階訊號 (Unit Step)」x ( t ) = u ( t ) x(t)=u(t) x ( t ) = u ( t ) 作為輸入來設計濾波器,這就稱為步階不變法 (The Step Invariant IIR Filter)。
它的核心概念是:讓數位濾波器的步階響應 ,等於類比濾波器步階響應的取樣值。
設計公式推導:
在連續系統中,單位步階的拉普拉斯轉換 X ( s ) = 1 s X(s) = \frac{1}{s} X ( s ) = s 1 。
系統輸出 Y ( s ) = X ( s ) ⋅ T ( s ) = T ( s ) s Y(s) = X(s) \cdot T(s) = \frac{T(s)}{s} Y ( s ) = X ( s ) ⋅ T ( s ) = s T ( s ) 。
取樣後轉換到離散系統,輸出 Y ( z ) = Z { L − 1 [ T ( s ) s ] ∣ t = n T } Y(z) = \mathcal{Z}\left\{ \left. \mathcal{L}^{-1}\left[\frac{T(s)}{s}\right] \right|_{t=nT} \right\} Y ( z ) = Z { L − 1 [ s T ( s ) ] t = n T } 。
由於在數位系統中,單位步階序列的 Z 轉換為 X ( z ) = z z − 1 X(z) = \frac{z}{z-1} X ( z ) = z − 1 z ,而且 Y ( z ) = X ( z ) ⋅ T ( z ) Y(z) = X(z) \cdot T(z) Y ( z ) = X ( z ) ⋅ T ( z ) 。
移項後可以得到步階不變法的設計公式:
T ( z ) = z − 1 z ⋅ Z { L − 1 [ T ( s ) s ] ∣ t = n T } T(z) = \frac{z-1}{z} \cdot \mathcal{Z}\left\{ \left. \mathcal{L}^{-1}\left[\frac{T(s)}{s}\right] \right|_{t=nT} \right\} T ( z ) = z z − 1 ⋅ Z { L − 1 [ s T ( s ) ] t = n T } 舉個栗子|⩊・)ノ🌰# Finding the Step Invariant IIR filter to approximate a first-order lowpass Butterworth (analog) filter T ( s ) = 10 s + 10 T(s) = \frac{10}{s+10} T ( s ) = s + 10 10 , assuming sampling time T = 0.1 s T = 0.1 \text{ s} T = 0.1 s .
Step 1:求類比系統的步階響應 Y ( s ) Y(s) Y ( s )
為了求步階響應,我們假設輸入 X ( s ) X(s) X ( s ) 為單位步階函數 1 s \frac{1}{s} s 1
Y ( s ) = T ( s ) ⋅ X ( s ) = 10 s + 10 ⋅ 1 s = 10 s ( s + 10 ) Y(s) = T(s) \cdot X(s) = \frac{10}{s+10} \cdot \frac{1}{s} = \frac{10}{s(s+10)} Y ( s ) = T ( s ) ⋅ X ( s ) = s + 10 10 ⋅ s 1 = s ( s + 10 ) 10 Step 2:進行部分分式展開 (PFE)
將 Y ( s ) Y(s) Y ( s ) 拆解以利於進行反拉普拉斯轉換:
10 s ( s + 10 ) = A s + B s + 10 \frac{10}{s(s+10)} = \frac{A}{s} + \frac{B}{s+10} s ( s + 10 ) 10 = s A + s + 10 B
求 A A A :令 s = 0 s=0 s = 0 ,則 A = 10 0 + 10 = 1 A = \frac{10}{0+10} = 1 A = 0 + 10 10 = 1
求 B B B :令 s = − 10 s=-10 s = − 10 ,則 B = 10 − 10 = − 1 B = \frac{10}{-10} = -1 B = − 10 10 = − 1
因此得到:
Y ( s ) = 1 s − 1 s + 10 Y(s) = \frac{1}{s} - \frac{1}{s+10} Y ( s ) = s 1 − s + 10 1 Step 3:轉換回連續時域 y ( t ) y(t) y ( t )
對 Y ( s ) Y(s) Y ( s ) 取反拉普拉斯轉換:
y ( t ) = L − 1 { 1 s − 1 s + 10 } = ( 1 − e − 10 t ) u ( t ) y(t) = \mathcal{L}^{-1} \left\{ \frac{1}{s} - \frac{1}{s+10} \right\} = (1 - e^{-10t})u(t) y ( t ) = L − 1 { s 1 − s + 10 1 } = ( 1 − e − 10 t ) u ( t ) Step 4:對時域訊號進行取樣得到 y [ n ] y[n] y [ n ]
將 t = n T t = nT t = n T 代入,其中 T = 0.1 T = 0.1 T = 0.1
y [ n ] = 1 − e − 10 ( 0.1 n ) = 1 − e − n y[n] = 1 - e^{-10(0.1n)} = 1 - e^{-n} y [ n ] = 1 − e − 10 ( 0.1 n ) = 1 − e − n Step 5:求 y [ n ] y[n] y [ n ] 的 Z 轉換 Y ( z ) Y(z) Y ( z )
根據 Z 轉換表
Z { 1 } = z z − 1 \mathcal{Z}\{1\} = \frac{z}{z-1} Z { 1 } = z − 1 z
Z { e − n } = z z − e − 1 \mathcal{Z}\{e^{-n}\} = \frac{z}{z-e^{-1}} Z { e − n } = z − e − 1 z
Y ( z ) = z z − 1 − z z − e − 1 = z ( z − e − 1 ) − z ( z − 1 ) ( z − 1 ) ( z − e − 1 ) = z ( 1 − e − 1 ) ( z − 1 ) ( z − e − 1 ) Y(z) = \frac{z}{z-1} - \frac{z}{z-e^{-1}} = \frac{z(z-e^{-1}) - z(z-1)}{(z-1)(z-e^{-1})} = \frac{z(1-e^{-1})}{(z-1)(z-e^{-1})} Y ( z ) = z − 1 z − z − e − 1 z = ( z − 1 ) ( z − e − 1 ) z ( z − e − 1 ) − z ( z − 1 ) = ( z − 1 ) ( z − e − 1 ) z ( 1 − e − 1 ) Step 6:套用修正公式求得 T ( z ) T(z) T ( z )
根據步階不變法定義,T ( z ) = Y ( z ) X ( z ) T(z) = \frac{Y(z)}{X(z)} T ( z ) = X ( z ) Y ( z ) ,而數位單位步階 X ( z ) = z z − 1 X(z) = \frac{z}{z-1} X ( z ) = z − 1 z 。因此,我們必須將 Y ( z ) Y(z) Y ( z ) 乘上修正項 z − 1 z \frac{z-1}{z} z z − 1
T ( z ) = z − 1 z ⋅ Y ( z ) = z − 1 z ⋅ z ( 1 − e − 1 ) ( z − 1 ) ( z − e − 1 ) T ( z ) = 1 − e − 1 z − e − 1 \begin{gathered}
T(z) = \frac{z-1}{z} \cdot Y(z) = \frac{z-1}{z} \cdot \frac{z(1-e^{-1})}{(z-1)(z-e^{-1})} \\
T(z) = \frac{1-e^{-1}}{z-e^{-1}}
\end{gathered} T ( z ) = z z − 1 ⋅ Y ( z ) = z z − 1 ⋅ ( z − 1 ) ( z − e − 1 ) z ( 1 − e − 1 ) T ( z ) = z − e − 1 1 − e − 1 這就是最終的數位轉移函數。可以發現,分子變成了一個常數,這能確保數位系統的直流增益(當 z = 1 z=1 z = 1 時)與類比系統(當 s = 0 s=0 s = 0 時)保持一致。
方法 3: 雙線性轉換# 雙線性轉換 (The Bilinear Transform, BLT) 是一種基於「積分器 (Integrator)」概念的轉換方法。相較於前面兩種方法是在時域上對齊響應,雙線性轉換純粹是一種代數轉換,它透過一個數學映射關係,將整個類比系統的 s s s 平面映射到數位系統的 z z z 平面。
轉換公式:
非常簡單粗暴,直接將轉移函數 T ( s ) T(s) T ( s ) 中的 s s s 替換為以下公式,即可求得數位濾波器 T ( z ) T(z) T ( z ) :
s = 2 T ⋅ z − 1 z + 1 s = \frac{2}{T} \cdot \frac{z-1}{z+1} s = T 2 ⋅ z + 1 z − 1 舉個栗子|⩊・)ノ🌰# Given the following first-order highpass analog filter T ( s ) = s s + 10 T(s) = \frac{s}{s+10} T ( s ) = s + 10 s , use the BLT method to find an IIR digital filter T ( z ) T(z) T ( z ) to approximate it for T = 0.05 s T = 0.05 \text{ s} T = 0.05 s .
直接代入轉換公式 s = 2 0.05 ⋅ z − 1 z + 1 = 40 ⋅ z − 1 z + 1 s = \frac{2}{0.05} \cdot \frac{z-1}{z+1} = 40 \cdot \frac{z-1}{z+1} s = 0.05 2 ⋅ z + 1 z − 1 = 40 ⋅ z + 1 z − 1 :
T ( z ) = 40 z − 1 z + 1 40 z − 1 z + 1 + 10 = 40 ( z − 1 ) 40 ( z − 1 ) + 10 ( z + 1 ) = 40 z − 40 50 z − 30 T(z) = \frac{40 \frac{z-1}{z+1}}{40 \frac{z-1}{z+1} + 10} = \frac{40(z-1)}{40(z-1)+10(z+1)} = \frac{40z-40}{50z-30} T ( z ) = 40 z + 1 z − 1 + 10 40 z + 1 z − 1 = 40 ( z − 1 ) + 10 ( z + 1 ) 40 ( z − 1 ) = 50 z − 30 40 z − 40 直接得到解答!考試考這個拜託(X
T ( z ) = 4 ⋅ ( z − 1 ) 5 z − 3 T(z) = \frac{4 \cdot (z-1)}{5z-3} T ( z ) = 5 z − 3 4 ⋅ ( z − 1 ) 轉換方法特性比較# 最後,總結一下目前這三種時域對齊轉換法的特性與差異:
特性 脈衝不變法 步階不變法 雙線性轉換 保留的響應 脈衝響應 步階響應 頻率響應特性(將 s s s 平面映射至 z z z 平面) 輸入/數學假設 假設輸入為脈衝 假設輸入為分段常數 基於積分器與梯形積分概念 主要缺點 有明顯的混疊現象 混疊現象較少 頻率軸會產生扭曲 (Frequency Warping),設計時需先進行頻率預先扭曲 (Pre-warping) 處理 混疊現象 發生高頻混疊 減輕高頻混疊 沒有混疊現象 應用範圍 主要用於低通、頻帶受限的濾波器 應用範圍更廣泛 各種類型皆適用,特別適合高通與帶阻濾波器
未完待續…
NOTE 部份圖片來源自:陳榮銘 教授 數位訊號處理課程投影片