基于Matlab和FPGA的FIR數字濾波器設計及實(shí)現
截位是濾波器設計的關(guān)鍵,此處的處理方法是:14位的輸入數據(14 b的ADC),18位二進(jìn)制補碼表示的濾波器系數,除去符號位,相乘后小數位是13+17=30,加法運算不改變小數位數。另外系統測試電路板用的是USB總線(xiàn),USB控制器的數據位寬是16,因而把輸出數據截到16位,然后送給FIFO,從而傳到計算機。截位用VerilogHDL實(shí)現的語(yǔ)句是:
assign FIR_out={D_temp[36],D_temp[29:15]};
此模塊的原理圖如圖10所示,其中FIR_out[15..O]是濾波器的最終輸出。本文引用地址:http://dyxdggzs.com/article/192109.htm
在QuarltusⅡ7.0里調用仿真無(wú)誤的模塊,組成整個(gè)系統,最后仿真無(wú)誤后進(jìn)行系統的實(shí)際數據測試。
5 實(shí)際測試
測試電路是一基于FPGA和USB的數據采集及處理系統。其原理框圖如圖1l所示。
測試時(shí)把一被干擾的模擬信號輸入ADC,采樣得到的數據經(jīng)過(guò)FPGA和USB傳輸到計算機上,然后用Mat―lab顯示出其時(shí)域和頻域圖形。
5.1 未濾波時(shí)信號波形
輸入信號頻率是3 kHz,含頻率為34 kHz的干擾信號(用兩個(gè)信號源合成),下載的FPGA控制程序不含數字濾波器模塊,采樣得到的數據經(jīng)USB傳到計算機,然后用Matlab顯示出的波形如圖12所示,可以看出干擾信號的相對功率約為一20 dB。
5. 2 濾波后信號波形
把濾波器程序下載到FPGA,輸入信號不變。濾波后波形如圖13所示。
前后對比可以發(fā)現,濾波后信號明顯變好,34 kHz的干擾被抑制到約一55 dB,驗證了設計的正確性。
6 結 語(yǔ)
本文給出了用CycloneⅡ系列FPGA實(shí)現FIR低通濾波器的設計實(shí)例。然后將濾波前后的AD實(shí)際采樣數據用Madab顯示出來(lái)并做比較,測試結果證明所設計的FIR數字濾波器功能正確,性能良好。并且該數字濾波器有很高的靈活性,濾波器系數在一個(gè)表格內,修改其參數即可分別實(shí)現低通、高通、帶通等類(lèi)型。文中所討論的設計方法和實(shí)現技術(shù)對數字信號處理系統的設計與實(shí)現具有重要的實(shí)用價(jià)值。
評論