祝美英 彭江英 辜潤秋 劉海琴 伍芷嫻
摘 要:數字信號系統在數字電子電路等許多領域中的應用十分廣泛,設計FIR濾波器時雖然需要的階數較高,成本高,但它具有很好的線性相位特性,穩定性好,而且信號延遲可以容易調節。文章以FIR數字濾波器的原理結構為基礎,先對FIR數字濾波器進行系數設置,進一步借助Quartus II,將整個FIR數字濾波器分為:寄存器、加法器、減法器、乘法器四個模塊。在對各個模塊進行仿真得出的結果符合設計要求的前提下,再對FIR數字濾波器的整體電路進行仿真。
關鍵詞:FIR數字濾波器;現場可編程門陣列(FPGA);Quartus II;硬件描述語言(VHDL)
1 概述
數字濾波器具有很好的幅度和線性相位特性,在幅度和線性上對信號處理有嚴格的要求,因此數字濾波器可以做到模擬濾波器所無法克服的溫度漂移、電壓漂移和噪聲等問題[1],利用數字濾波器處理信號時就能做得更完美。比如可以降低信號的噪聲、提高信噪比以及可以對信號得頻譜進行分析等。
硬件實現的設計方法有以下三種:(1)使用單片通用數字濾波器集成電路實現(2)采用 DSP 器件實現(3)采用可編程邏輯器件(如DSP、ASIC、FPGA 等)實現。DSP 因為要按順序依次執行所涉及的各個部分,而降低它的設計速度;用ASIC 方法設計時需要的成本又較高;基于FPGA的設計能較好地避免DSP和ASIC設計的缺點;并且利用 FPGA設計DSP 系統時,同時具備 DSP 芯片的靈活性和實時性,此外,FPGA 在許多數字信號處理領域中獲得了成功的應用[2]。所以用FPGA 實現數字濾波是一個較好的選擇。利用硬件描述語言(VHDL)采用自頂向下的數字系統設計方法,分別給出濾波器的各模塊結構,并對各模塊扮演的功能以及數字濾波器的關鍵部分進行了描述。最后在Altera公司推出的QuartusII8.0軟件平臺上,利用Cyclone系列器件對設計進行綜合和仿真,并得出相應的結果。
2 FIR數字濾波器的原理結構
數字濾波器主要是完成數字信號濾波處理的功能,用有限精度算法實現的離散時間線性非時變系統[3]。數字濾波器的濾波功能是通過選定特定頻率范圍來實現的,其他范圍外的頻率信號(如噪聲)將被濾除,所以可以通過數字濾波器減少對有用信號的干擾。
FIR數字濾波器由于具有線性相位響應的特性,所以在處理信號時可以避免相位失真的負面的影響,保持信號的完整性,從而得到較好的波形輸出。而線性相位體現在時域中僅僅是h(n)在時間上的延遲,這個特點在圖像信號處理、數據傳輸等波形傳遞系統中是非常重要的[4]。所以,FIR濾波器的線性相位特性在數字信號處理過程中帶來了很大的好處。
FIR數字濾波器是一個線性時不變系統(LTI),N階FIR數字濾波器可以用傳輸函數H(z)來描述[5]:
(1)
時域中,輸入輸出關系表示為:
(2)
其中,x(n)和y(n)分別是輸入和輸出序列。
在設計FIR數字濾波器時,乘法運算次數較多。在電路實現中,要用到較多的乘法器。當一個FIR 濾波器具有線性相位響應時,它的脈沖響應具有某種對稱條件,在這種情況下,這種對稱關系可以把FIR數字濾波器設計時相乘運算的次數減少二分之一,從而減少乘法器的個數[6]。為了突出線性相位濾波器的優點,先來看一下直接型的FIR數字濾波器的結構。(圖1)
當沖擊響應滿足下列條件時: (3)
對n階濾波器,當n為偶數時,乘法器的個數為n/2個;當n為奇數時,乘法器的個數為(n+1)/2個。N階線性相位的因果FIR數字濾波器的單位沖激響應可用對稱沖激響應
(4)
或者反對稱沖激響應
(5)
進行描述。
3 FIR濾波器的設計分析
文章在QuartusⅡ下用VHDL編寫濾波器的設計程序,這種方法的優點在于比較靈活、易于修改。設計好之后還可以再利用,只需對它的系數、階數等參數進行修改即可成為任意階的濾波器[7]。濾波器的系數通過MATLAB得到。因此,可以采用以下方法,先在MATLAB中用Filter Design計算出系數,再進行VHDL語言編程設計FIR數字濾波器。所以在用硬件描述語言對其進行描述時,先根據所要設計的濾波器階數的要求,選擇 MATLAB 中的窗函數——比較常用的是矩形窗,Bartlet窗,Hanning窗,Hamming窗,Kaiser窗——來求得濾波器的系數,并編寫相應的程序來檢驗所求得的系數是否符合最終的要求,以此來縮短設計周期,減少工作量,提高設計成功率。
3.1 FIR濾波器參數設置
FIR濾波器參數設置采用窗函數法(window)并在filter order中填入16,窗口類型為Kaiser,beta為0.5,Fs為48kHz,Fc為10.8kHz。
FIR濾波器幅頻與相頻特性的比較如圖2所示。
圖2 FIR濾波器幅頻與相頻響應
3.2 分析得出濾波器系數
采用MATLAB中的FDATool分析得出為17階FIR濾波器的系數,以FDATool分析計算出來的數據是有符號的小數。所以,要進行量化處理,以使FIR數字濾波器的系數為整數。對FIR濾波器的系數進行量化調整,整數化后的系數如下:為[-12 -18 13 29 -13 -52 14 162 242 162 14 -52 -13 29 13 -18 -12]。
4 數字濾波器的設計及仿真
4.1 FIR數字濾波器的各模塊設計與仿真分析
設計的FIR濾波器模塊電路設計包括寄存器、加法器、減法器、乘法器四個模塊[8]。
四個模塊在Quartus II平臺上進行仿真無誤后,再將各個模塊按照FIR濾波器的原理將各模塊連接起來。得到FIR濾波器的整體電路如圖3所示,其整體電路基本與其原理圖類似。
4.2 FIR濾波器整體電路(圖3)
4.3 FIR濾波器整體電路仿真結果
4.3.1 輸出信號仿真值
任意設定輸入信號為:X=[54,0,0,0,22,0,0,0,54,0,0,0,22,0,
0,0,54,0,0,0,22,0,0,0,54,0,0,0,22,0,0,0]。仿真結果如圖4所示。
4.3.2 輸出信號理論值
,由此式可得輸出信號的理論值。
圖4 FIR濾波器整體電路仿真結果
當仿真通過并符合性能要求后,將程序下載到外圍硬件中,完成FIR數字濾波器的設計。
4.4 仿真值與理論值的結果比較
圖4 FIR濾波器整體電路仿真結果可以讀出結果,其結果見表1。通過比較可知,仿真結果與輸出信號理論值基本相吻合,符合設計要求。
5 結束語
文章主要通過系統地介紹數字濾波器,而核心部件FPGA選用高密度、靈活性好的AIXERA公司生產的Cyclone系列EP1C20F400
C8芯片,編程設計仿真無誤后將程序下載到芯片中,完成對數字濾波器的設計。文章采用MATLAB中的FDATool以窗函數(window)的Kaiser窗來設置FIR濾波器的系數。最后使用QuartusII的VHDL語言分別對寄存器、加法器、減法器、乘法器四個模塊進行編程設計、仿真。再對FIR濾波器仿真分析,得到表1仿真值與理論值的比較得結果,說明文章設計的FIR濾波器功能正確,性能良好。
參考文獻
[1]劉暢,孫晶華.基于DSP的FIR數字濾波器研究微型機與應用[J].科技致富向導,2011(15):107+90.
[2]Lee Hanbo,Sobelman Gerad. Performance Evaluation and Optimal Design for FPGA-Based Digit-Serial DSP Functions. Computers and Electrical Engineering,2003,29(2):357-377.
[3]丁玉美,高西全.數字信號處理[M].西安:西安電子科技大學出版社,2004:70-76.
[4]舒麒暢,曹成伯,婁曉光.基于DSP平臺的激光二極管控制系統[J].計算機測量與控制,2008(1):80-82.
[5]姚利鋒.一種基于FPGA并行流水線的FIR濾波器設計方案[J].電子技術雜志,2009(1).
[6]陳靜媛.激光陀螺捷聯慣導系統數據采集電路的分析與實現[D].蘭州:蘭州職業技術學院,2008.
[7]張猛.基于MATLAB的FIR數字濾波器設計[J].長春大學學報,2009(2):47-49.
[8]王學梅.基于FPGA的有限沖擊響應數字濾波器的研究及實現[D].中南大學,2005.