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