臧旭躍 趙河明 郭晨
【摘要】數(shù)字濾波器是數(shù)字信號處理的一個重要分支,它的精確度高、使用靈活、可靠性高,具有模擬設備所沒有的許多優(yōu)點,采用數(shù)字濾波器對信號進行處理是目前的發(fā)展方向。數(shù)字濾波器可分為IIR和FIR兩大類,本文根據(jù)模擬濾波器的設計原理,提出了基于MATLAB的數(shù)字濾波器的設計與仿真,并在MATLB環(huán)境下實現(xiàn) 了FIR數(shù)字濾波器的仿真,通過分析可知所設計的濾波器符合我所提出的技術指標。
【關鍵詞】模擬濾波器; MATLAB;FIR數(shù)字濾波器
1.引言
數(shù)字FIR(Finite Impulse Response)濾波器[1]指有限脈沖響應數(shù)字濾波器,這是一種數(shù)字型信號處理領域中應用非常廣泛的基礎性濾波器元件,數(shù)字FIR濾波器的特點是能夠在輸入具有任意幅頻特性的數(shù)字信號后,保證輸出數(shù)字信號的相頻特性任然保持嚴格線性。另外FIR數(shù)字濾波器具有有限長的脈沖采樣響應特性,比較穩(wěn)定。因此,F(xiàn)IR濾波器的應用要遠遠廣于IIR濾波器,在信息傳輸領域、模式識別領域以及數(shù)字圖像處理領域具有舉足輕重的作用。
數(shù)字FIR濾波器的工作原理[2]:模擬信號首先經由A/D轉換器件(逐次逼近型A/D轉換器速度較快)被轉換成數(shù)字信號,進入濾波器進行處理后,形成一長串數(shù)據(jù)序列,如果需要的話將該數(shù)據(jù)序列輸入到外接D/A轉換器,轉換成模擬信號使用。
圖1 FIR濾波器的工作原理
2.數(shù)字FIR濾波器的設計指標
在設計一個濾波器之前,必須首先確定一些技術指標。這些技術指標需要根據(jù)工程實際的需要來制定。在很多實際應用中,數(shù)字濾波器常常被用來實現(xiàn)選頻操作。因此,指標的形式一般確定為頻域中幅度和相位響應。幅度指標主要以兩種方式給出[3],第一種是絕對指標,它提供對幅度響應函數(shù)的要求,這些指標一般應用于FIR濾波器的設計;第二種指標是相對指標,它以分貝值的形式給出要求,在工程實際中,這種指標最受歡迎。對于相位響應指標形式,通常希望系統(tǒng)在通頻帶中具有線性相位。運用相位響應指標進行濾波器設計具有如下優(yōu)點:只包含實數(shù)算法,不涉及復數(shù)運算;只存在延遲失真,只有固定數(shù)量的延遲;長度為M的濾波器(階數(shù)為M-1),它的計算量為M/2數(shù)量級。
3.數(shù)字FIR濾波器的設計思想與設計步驟
有限長單位沖激響應(FIR)數(shù)字濾波器可以實現(xiàn)線性相位[25],又可具有任意幅度特性。有限長FIR數(shù)字濾波器的設計方法主要是窗函數(shù)設計法。窗函數(shù)設計法是一種通過截短和計權的方法使無限長非因果序列成為有限長脈沖響應序列的設計方法。通常在設計濾波器之前,應該先根據(jù)具體的工程應用確定濾波器的技術指標。在大多數(shù)實際應用中,數(shù)字濾波器常常被用來實現(xiàn)選頻操作,所以指標的形式一般為在頻域中以分貝值給出的相對幅度響應和相位響應。用窗函數(shù)法設計FIR濾波器的基本理念是在時域上將設計出的濾波器單位脈沖響應函數(shù)盡可能接近理想濾波器單位脈沖響應函數(shù)。
設理想條件下,F(xiàn)IR濾波器的單位脈沖響應函數(shù)為[4];
(1)
(2)
但是一個無限長的非因果系統(tǒng),而我們想要的是一個有限長的因果濾波器,于是我們使用一個窗函數(shù)來截斷,即用一個合適的窗函數(shù)對做加窗處理:
(3)
只要窗函數(shù)的長度和形狀選取合適,我們就可以生成合適的濾波器。
用窗函數(shù)法設計FIR濾波器的步驟[5]如下:
(1)根據(jù)過渡帶寬及阻帶衰減要求,選擇窗函數(shù)的類型并估計窗口長度N(或階數(shù)M=N-1)。窗函數(shù)類型可根據(jù)最小阻帶衰減獨立選擇,因為窗口長度N對最小阻帶衰減沒有影響。在確定窗函數(shù)類型以后,可根據(jù)過渡帶寬小于給定指標確定所擬用的窗函數(shù)的窗口長度N。設待求濾波器的過渡帶寬為,它與窗口長度N近似成反比。窗函數(shù)類型確定后,其計算公式也確定了,不過這些公式是近似的,得出的窗口長度還要在計算中逐步修正。原則是在保證阻帶衰減滿足要求的情況下,盡量選擇較小的N。在和窗函數(shù)類型確定后,即可調用MATLAB中的窗函數(shù)求出窗函數(shù)。
(2)根據(jù)待求濾波器的理想頻率響應求出理想單位脈沖響應。如果給出待求濾波器的頻率響應為, 在一般情況下,是不能用封閉公式表示的,需要采用數(shù)值方法表示。從采樣N點,采用離散傅里葉反變換(IDFT)即可求出。
(3)計算濾波器的單位脈沖響應。它是理想單位脈沖響應和窗函數(shù)的乘積,即:
(4)
在MATLAB中用點乘命令表示為:
(5)
(4)驗算技術指標是否滿足要求。為了計算數(shù)字濾波器在頻域中的特性,可調用freqz子程序,如果不滿足要求,可根據(jù)具體情況,調整窗函數(shù)類型或長度,直到滿足要求為止。
4.FIR濾波器程序設計
設帶通FIR濾波器的頻率響應為:
(6)
(1)用凱澤窗函數(shù)設計一個長度的帶通濾波器,其通帶最大衰減為;其阻帶最小衰減為,源程序如下:
圖2 設計(1)源程序
圖3 設計(1)源程序
圖4 設計(1)源程序
程序在MATLAB環(huán)境下的運行及結果如圖5所示。
圖5 設計(1)的結果圖
運行上面程序的M文件,得到的結果為:線性相位斜率為5.6533;同時得到如圖5.1所示的圖形結果。從計算結果可知,參數(shù)刀=5.6533。從圖5.1還可以看出最小阻帶衰減小于60dB,因此需要增加刀使得衰減增至60dB。
(2)設計一個具有如下指標的低通FIR濾波器;;;因為要求衰減阻帶,所以可以選擇海明窗和布萊克曼窗,現(xiàn)在一海明窗為例實現(xiàn)。原程序如圖6所示。
圖6 設計(2)源程序
程序在MATLAB環(huán)境下的運行及結果如圖7所示:
圖7 設計(2)的結果圖
圖8 設計(2)的結果圖
如圖8所示,該函數(shù)很好地實現(xiàn)了所提出的技術要求。
5.結論
從本文的分析和設計可以看出,使用窗函數(shù)法進行設計的最大優(yōu)勢為簡單實用性很強,因為其設計出的FIR濾波器的頻域特性很容易滿足設計要求,F(xiàn)IR濾波器的沖激響應是有限長序列,其系統(tǒng)函數(shù)為一個多項式,它所含的極點多為原點,所以FIR濾波器永遠是穩(wěn)定的。但該方法的缺點往往在大多數(shù)設計結果里,我們所設計的濾波器的頻率響應的邊界頻率條件往往不能嚴格控制。
參考文獻
[1]陳后金,數(shù)字信號處理[M].北京:高等教育出版社,2004:124-177.
[2]蔣志凱.數(shù)字濾波與卡爾曼濾波[M]北京:中國科學技術出版社,1993:1-2.
[3]韓得竹,王華.MATLAB電子仿真與應用[M].國防工業(yè)出版社,2001.
[4]M.S.Lobo,L.Vandenberghe,S.Boyd,H.Lebret.Second-Order Cone Programming[J].Linear Algebraand its Applications,1998,284(1-3):193-228.
[5]L.Vandenberghe,S.Boyd.Semidefiniteprogramming[J].SIAM review,1996,38(1):49-95.