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