基于FPGA的IIR數(shù)字濾波器的快捷設計
3.4 硬件平臺的驗證
將該設計方案在硬件平臺上進行驗證時,先給硬件平臺加電,再將程序通過JTAG線下載到PROM中,然后給AD9218數(shù)據輸入端加正弦波信號,示波器CH1和CH2探針分別搭在AD9218數(shù)據輸入端和AD9765數(shù)據輸出端。這樣。當信號在0.7 MHz頻率以下變化時,兩個通道的正弦波形相同,只有相位上有一點差別;當信號從0.7~1MHz頻率范圍變化時。通道CH2波形幅度有微弱減小;當信號從1~5 MHz頻率范圍變化時,通道CH2波形迅速衰減為一條水平線。當CH1端分別加0.5 MHz、3 MHz和6 MHz的正弦波時,兩通道顯示的波形相同。
4 一般IIR數(shù)字濾波器的快捷實現(xiàn)
現(xiàn)在總結一下一般IIR數(shù)字濾波器的設計及實現(xiàn)方案。
(1) 仿真系數(shù)
根據所定技術指標通過MATLAB計算出原始系數(shù)矢量b和a,然后選擇適當?shù)臄U大倍數(shù),并將系數(shù)擴大后取整得到B和A,再根據B和A仿真差分方程遞推算法(注意函數(shù)floor()用來仿真VHDL代碼中std_logic_vector型數(shù)據截去末尾幾位,以仿真除法運算)以及頻域和時域波形最終確定系數(shù)B和A (當前時刻輸出所對應的系數(shù)A(1)=1)。
(2) 寫VHDL代碼
除了當前時刻所輸出的所對應系數(shù)A(1)外,還應當將所有系數(shù)都轉換為std_logic_vector型常量,同時,還要使初始化程序中所有時刻的輸入輸出變量都為0,然后再在進程process中寫遞推算法代碼。
(3) Modelsim仿真
用行為級仿真可檢查所寫代碼在功能上是否正確,時序仿真則用于觀察布局布線后濾波器的輸出波形。
(4) 驗證
將程序下載到硬件平臺上作最終驗證時,濾波器的輸出不一定都有毛刺,但若輸出有毛刺,則應將代碼中最后的數(shù)據輸出信號賦值給一中間信號再輸出。
5 結束語
本文以低通濾波器為例,描述了IIR數(shù)字濾波器從MATLAB設計到FPGA實現(xiàn)的整個過程,討論了設計中遇到的一些關鍵性問題,并在MAT-LAB及modelsim上作了不同層次的仿真,同時在硬件平臺上最終驗證了濾波器設計的技術指標。
基于行為描述方式的遞推算法雖然不是最節(jié)省FPGA內部資源的算法,但其優(yōu)點是算法簡單清晰,代碼簡短,可大大節(jié)省濾波器設計時間,如果熟練的話,通常十幾分鐘就可以完成一個滿足性能指標的濾波器的設計;此外本設計還有一個特點,就是該算法僅在一個時鐘周期內就可以做完一次對輸人數(shù)據的濾波處理,并得到一個輸出。所以,這種濾波算法對那些高頻高采樣率的輸入信號非常有效。
目前,用這一方法設計的帶通濾波器已經在LuolanC遠程無線導航接收機的前端數(shù)字信號處理單元中用于濾除帶外噪聲,其設計的低通濾波器也在其它一些導航系統(tǒng)中用于信號解調。
低通濾波器相關文章:低通濾波器原理
電源濾波器相關文章:電源濾波器原理
評論