基于FPGA+MATLAB的串行多階FIR濾波器設(shè)計(jì)
時(shí)序控制單元是設(shè)計(jì)的核心部分。AFCLK作為整個(gè)FIR濾波器系統(tǒng)的啟動(dòng)信號(hào),此模塊檢測(cè)到AFCLK上升沿到來(lái)時(shí)會(huì)進(jìn)行以下幾個(gè)步驟的處理:(1)首先啟動(dòng)WEN寫(xiě)使能信號(hào)把當(dāng)前DIN寫(xiě)入緩存中,寫(xiě)地址WRADDER累加一次。(2)然后啟動(dòng)讀地址計(jì)數(shù)器RDADDER開(kāi)始進(jìn)行1 024次計(jì)數(shù),同時(shí)把信號(hào)緩存和系數(shù)ROM中的數(shù)據(jù)送到乘加器中做1 024乘加運(yùn)算,RST的作用是在第一個(gè)有效數(shù)據(jù)到來(lái)時(shí)進(jìn)行累加器清零,RST_EN的作用是在完成1 024次運(yùn)算時(shí),準(zhǔn)確地把結(jié)果鎖存到輸出端口,如圖6所示。
本文引用地址:http://cafeforensic.com/article/236081.htm?
?
因?yàn)檎Z(yǔ)音信號(hào)數(shù)據(jù)位寬是16位,經(jīng)過(guò)1 024次乘加,和濾波器系數(shù)是32位整型量化處理的所有最終結(jié)果要做必要的量化處理,以得到正確的結(jié)果。
?
?
經(jīng)過(guò)編譯綜合后,發(fā)現(xiàn)占用邏輯單元158,僅占EP3C5邏輯單元的3%,RAM單元約占12%,9位乘法器4個(gè),如圖7所示,效果理想。
4 FPGA數(shù)字濾波器功能仿真驗(yàn)證
QuartusII不支持Testbench,采用*.vwf文件進(jìn)行仿真需要手工輸入激勵(lì),人工檢查輸出結(jié)果,此程序反饋,且效率較低。由于Quartus II的工程文件都是文本文件,所有的數(shù)據(jù)都以文件形式存儲(chǔ),所以可以編寫(xiě)文本過(guò)濾程序,將文本文件中的有用數(shù)據(jù)提取出來(lái),然后進(jìn)行后期處理,既提高了靈活性,又提高了效率。
QuartusII支持*.vwf、*.vec等激勵(lì)輸入,由于*.vec的文本操作性?xún)?yōu)于*.vwf文件,所以文中選擇*.vec文件作為激勵(lì)輸入。使用Matlab產(chǎn)生8 000 Hz速率800 Hz,1000 Hz,1 300 Hz共3種頻率的混合信號(hào)的仿真樣本序列,帶入到QuartusII中進(jìn)行仿真,產(chǎn)生的仿真文件再導(dǎo)出到Matlab中進(jìn)行顯示,結(jié)果如圖8所示。
?
?
由圖中可以看出,經(jīng)過(guò)FPGA濾波過(guò)后,800 Hz和1 300 Hz的信號(hào)都被濾波器濾除,僅有1 000 Hz信號(hào)保留。
5 結(jié)束語(yǔ)
通過(guò)設(shè)計(jì)實(shí)例,介紹了高速串行多階FIR濾波器的設(shè)計(jì)思路和流程。仿真結(jié)果說(shuō)明,FPGA在FIR數(shù)字濾波器實(shí)現(xiàn)方面相比通用和專(zhuān)用DSP芯片具有更靈活的使用方法,可以做到速度和邏輯資源占用方面的均衡。
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評(píng)論