通過實例介紹了基于Matlab的FIR濾波器的優(yōu)化設(shè)計方法。3種結(jié)果比較發(fā)現(xiàn),在同樣階數(shù)下,優(yōu)化設(shè)計可以獲得最佳的頻率特性和衰耗特性。
數(shù)字濾波在數(shù)字信號處理中,占有重要的地位。數(shù)字濾波包括FIR和IIR兩種濾波方式,其中FIR濾波具有很多優(yōu)點,可以在幅度特性隨意設(shè)計的同時,保證精確、嚴格的線性相位,濾波穩(wěn)定,不會出現(xiàn)遞歸型結(jié)構(gòu)中的極限振蕩等不穩(wěn)定現(xiàn)象,且誤差較小,可采用FFT算法實現(xiàn),因此運算效率高。設(shè)計FIR濾波器常用的方法有窗函數(shù)法與頻率抽樣法,但是這兩種方法均不易精確控制通帶與阻帶的邊界頻率,所以在實際應(yīng)用中有一定的局限性。文中用Matlab語言實現(xiàn)了最佳等波紋FIR濾波器的設(shè)計,通過比較顯示了它在等波紋方脈沖響應(yīng)方面的優(yōu)化特性。
1 FIR濾波器優(yōu)化設(shè)計法
Matlab信號工具箱中提供的Remez函數(shù)可對數(shù)字濾波器進行優(yōu)化設(shè)計,得到的數(shù)字濾波器具有等波紋特性,Remez函數(shù)實現(xiàn)Parks McClel-lan算法,即采用數(shù)字分析中的Remez算法和切比雪夫最佳一致逼近理論來設(shè)計,使實際頻響擬合期望頻率響應(yīng)最優(yōu)。使用Remez算法設(shè)計濾波器,首先需根據(jù)要求確定濾波器階數(shù)。利用Remezord函數(shù)可以確定濾波器階數(shù)n,歸一化的各頻帶邊界頻率fo,歸一化的各頻帶幅度值ao,加權(quán)系數(shù)w,其格式如下:[n,fo,ao,w]=remezord(f,a,dev)。Remezord輸入?yún)?shù)的含義為向量f指定各頻帶邊界頻率,在 0~Fs/2之間取值。向量a指定各頻帶的幅度響應(yīng)。f的長度是length(f)=2×length(a)-2,必須為偶數(shù)。第一頻帶總是從0開始,最后一個頻帶到Fs/2結(jié)束。向量dev指定設(shè)計出的濾波器和理想濾波器的幅度響應(yīng)在每個頻帶的最大允許誤差,因此與向量a的長度相等。
2 FIR濾波器設(shè)計實例
分別使用窗函數(shù)法,頻率取樣,優(yōu)化設(shè)計法,設(shè)計一個線性相位的帶通濾波器。帶通濾波器的通帶為1 300~2 210 Hz,阻帶O~1 000 Hz,2 410~4 000 Hz,通帶最大波動為1 dB,阻帶最小衰減為35 dB。設(shè)計流程是:(1)輸入濾波器技術(shù)要求N,Hd(w),W(ω)。(2)按要求的濾波器類型求出W(ω),Hd(w),P(ω)。(3)給出M+2 個交錯點組頻率初始值ω(i),i=O,1;2,…,M+1。(4)調(diào)用Remez算法程序求解最佳極值頻率和P(ω)的系數(shù)。(5)計算單位脈沖響應(yīng) h(n)。(6)輸出最佳誤差和h(n)。
如圖1~圖3為3種帶通數(shù)字濾波器的仿真結(jié)果,可以看出在同樣階數(shù)下,使用優(yōu)化設(shè)計方法設(shè)計的濾波器,無論是通帶還是阻帶都較平坦、過渡帶比較窄且阻帶衰減好。
3 結(jié)束語
比較3種數(shù)字濾波器的設(shè)計方法可得以下結(jié)論:
(1)采用窗函數(shù)法設(shè)計簡單、方便、實用。但用計算機不易控制邊界頻率。
(2)由于窗函數(shù)法是從時域角度給出的設(shè)計方法,但一般情況都是頻域角度給出,頻率采樣法恰好是從頻域角度進行設(shè)計,比較直觀,但邊界頻率不易控制。增加采樣點數(shù)N對確定有好處,但采樣點數(shù)N增大會增加濾波器的成本。
(3)同樣階數(shù)下使用優(yōu)化設(shè)計方法所設(shè)計的濾波器,無論是通帶還是阻帶都較平坦、過渡帶較窄且阻帶衰減好。