最近突然覺得自己常常耍廢摸魚得過且過感覺未來會暴死,經過深刻的反省之後決定把這學期上課的內容整理成筆記放到 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 以後想到再補圖
訊號取樣的影響# 取樣與混疊 (Sampling and Aliasing)# 基本定義# 假設一個連續時間訊號 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-Shannon Sampling Theorem)# 我們現在知道如果取樣頻率不夠高,就會在這種週期性的訊號上產生混疊現象,那如果不想要產生混疊現象的話,具體來說需要多高的取樣頻率呢?奈奎斯特-香農取樣定理 給出了答案,並定義了所謂的奈奎斯特頻率 (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 π 反混疊濾波器(Anti-aliasing Filter)# ✍️TODO 以後補
範例與練習# 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 )
未完待續…
NOTE 部份圖片來源自:陳榮銘 教授 數位訊號處理課程投影片