屈召貴
(四川旅游學院 信息與工程學院,四川 成都 610100)
隨著半導體集成電路的發展,以及機器學習、人工智能技術的不斷進步,數字信號處理在通信、生物、醫療、工業控制、雷達聲納、能源開采等領域廣泛應用。該門課程涉及的理論和技術已成為電子信息、地質勘探、生物醫療等諸多學科領域工程技術人員必掌握的知識。數字信號處理課程作為電類專業的一門必修課,其重要性不言而喻。其中數字濾波器的設計在信息處理領域應用普遍,由于其涉及的知識面較多,理論知識復雜,內容抽象,難于理解[1-6],因此相當一部分學生對這些知識的學習感到困難。本文基于此提出FIR數字濾波器設計基本原理、設計方法和應用MATLAB進行實現的實驗項目,通過可視化、可聽化的效果,讓學生掌握FIR數字濾波器的設計。


一般來說,理想頻響都為分段恒定的,在邊界頻率處有突變點,所以,這樣得到的理想單位脈沖響應hd(n)往往都是無限長序列,而且是非因果的。但FIR的h(n)是有限長的,問題是怎樣用一個有限長的序列去近似無限長的hd(n)。最直接簡單的辦法是直接截取其一段來代替。這種截取可以形象地想像為h(n)就好像是通過一個“窗口”所看到的一段hd(n),因此,h(n)也可表示為hd(n)和一個“窗函數”w(n)的乘積,即:h(n)=w(n)hd(n)。
在這里窗口函數就是矩形脈沖函數RN(n),當然為了改善設計濾波器的特性,它還可以有其他的形式,相當于在矩形窗內對hd(n)作一定的加權處理。如圖1所示,對于理想數字濾波器的單位取樣響應而言,幅度較大的樣點都集中在對稱中心附近,這些樣點將對濾波器的頻率響應起到主要作用。如果只允許選擇有限個樣點作為一個系統的單位取樣響應,當然在對稱中心周圍對稱選擇得到的對應的頻率響應與理想濾波器的頻率響應最為近似,而且允許取的點數越多越相近,這是窗函數法設計FIR濾波器的重要思想[10-14]。

圖1 理想數字濾波器和窗函數的頻響
窗函數的傅式變換W(ejω)的主瓣決定了H(ejω)的過渡帶寬。W(ejω)的旁瓣大小和多少決定了H(ejω)在通帶和阻帶范圍內的波動幅度。常用的幾種窗函數有:
矩形窗:
w(n)=RN(n)
Hanning窗:
Hamming窗:
Blackmen窗:

Kaiser窗:
式中Io(x)為零階貝塞爾函數。
常用的幾種窗函數幅頻特性參數如表1所示。

表1 常用窗函數幅頻特性參數
一般擬設計的數字濾波器性能指標通常有通帶截頻ωp,阻帶截頻ωs,通帶衰耗Ap,阻帶衰耗As等參數。大多數情況下頻率參數是用模擬值給出,如采樣頻率Fs,通帶截頻fp,阻帶截頻fs。可通過這些技術指標設計出符合線性相位要求的單位脈沖響應hn或H(k),從而實現數字濾波器的功能。
(1)選定窗函數的類型
根據擬設計的濾波器的阻帶截頻ωs處的衰減小于阻帶衰耗As,選定合適的窗函數,再選擇過渡帶較窄(越接近理想頻響)的窗函數。通過查表1,最終確定要選用的窗函數。
(2)計算窗函數的寬度N
根據給定的參數ωp、ωs計算過渡帶ΔB,如式(1)所示:
ΔB=ωs-ωp
(1)
由表1可知,各窗函數的過渡帶為mπ/N,因此有關系式(2)、(3):
(2)
(3)
上述計算如果給出的是模擬參數,應轉換為數字參數代入計算。如果擬設計的濾波器為高通、低通濾波器,則可直接用式(1)和(3)計算窗函數的寬度N。如果是帶通濾波器和帶阻濾波器,由于其過渡帶有兩個,因此選擇較窄的過渡帶ΔB代入式(3)計算,若計算的N為非整數時,需要進行向上取整運算,以使設計出的濾波器在兩個過渡帶都能滿足要求。
(3)計算w(n)的N個樣點值
將N值代入選定的窗函數表達式,計算出w(n)的N個樣點值。通常用MATLAB提供的窗函數來確定。各種窗的計算如表2所示。

表2 MATLAB窗函數計算w(n)
hd(n)為理想濾波器的頻響,根據擬設計的濾波器類型計算Hd(ejωτ)。滿足線性相位條件的系統輸入序列x(n)和輸出序列y(n)之間的關系如式(4)所示:
y(n)=Ax(n-τ)
(4)
其z變換如式(5)所示:
Y(z)=Az-τX(z)
(5)
令z=ejω,則有式(6):
H(ejω)=H(ω)e-jωτ
(6)
寫成幅度和相位函數,如式(7)所示:
Hd(ejω)=H(ω)θ(ω)
(7)
式中θ(ω)=-ωτ,τ=(N-1)/2。
理想濾波器的3 dB截頻ωc可近似位于過渡帶中心,即有式(8):
(8)
低通濾波器的hd(n)的計算如式(9)所示,其中,-ωc<ω<ωc,幅度為“1”,其他為“0”。
(9)
由同樣的方法可設計高通、帶通、帶阻濾波器的理想頻率響應hd(n)。
由式(9)可知hd(n)為無限長,實際應用中需加窗截斷,變為有限長單位脈沖響應。其變換關系如式(10)所示:
h(n)=hd(n)·w(n)
(10)
如低通濾波器3 dB截頻為0.3π,N取33,用海明窗截斷的表達式如式(11)所示:
(11)
根據求解的h(n)計算H(ejω),通過MATLAB程序分析其幅頻特性,主要驗證阻帶衰耗是否滿足要求,若不滿足要求,可適當改變窗函數形式或長度N,重復上述設計過程,以得到滿意的結果。
設有一段受干擾的音頻信號,其有用信號頻率在1.5 kHz以內,干擾信號的頻率為8 kHz。要求設計FIR數字濾波器提取有用信號,將干擾信號衰減抑制在50 dB以內,通帶衰耗控制在1 dB以內。
由任務要求可知,濾波器應設計為低通濾波器,其指標要求:通帶截頻fp為1.5 kHz,通帶衰耗Ap為1 dB,阻帶截頻fs為3 kHz,阻帶衰耗As為50 dB。采樣頻率Fs至少應為16 kHz。
(1)求數字角頻率。可計算數字濾波器的通帶數字截頻ωp為0.187 5π,阻帶數字截頻ωs為0.375π。
(2)窗函數類型。由于阻帶衰耗為50 dB,通過查表1可知,選用海明窗最為合適。
(3)計算窗函數的寬度N。由式(3)可計算,窗函數的寬度N為43,滿足第一類線性相位條件。
(4)計算hd(n)。由式(8)可知,ωc=0.281 25π,τ=21。再根據式(9),可求出hd(n),如式(12)所式:
(12)
(5)確定FIR濾波器的h(n)。由式(10)可求出h(n),如式(13)所示:
(13)
用MATLAB分別畫出用于實驗的原始信號的頻譜圖(如圖2所示,在8 kHz存在干擾信號)、設計的線性相位FIR低通濾波器幅頻特性圖(如圖3所示)、濾波后的信號頻譜圖(如圖4所示)。

圖2 原如信號頻譜圖

圖3 線性相位FIR低通濾波器幅頻特性

圖4 濾波后的頻譜圖
由圖3可知,設計的濾波器阻帶衰減在50 dB以下。由圖4可知,8 kHz的干擾信號成功被濾出。因此設計濾波器符合設計要求。通過MATLAB的音頻播放功能檢驗濾出后的信息,明顯無干擾聲音。
窗函數法是FIR數字濾波器常用的設計方法,易于實現線性相位。其設計思路是根據目標濾波器的理想模型,通過加窗或截取的方法得到滿足設計指標的濾波器,是一種直接逼近方式,逼近程度取決于窗的長度和窗的類型。實驗以離散傅里葉變換理論為基礎,以MATLAB為工具,從視覺和聽覺等方面直觀感受數字濾波器設計的實驗,實踐表明大大提高了學生的實驗效果。