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