對FIR數(shù)字濾波器的FPGA實現(xiàn)的研究
3 實例設(shè)計與仿真
3.1 FIR濾波器的設(shè)計
利用Matlab中的FDATool工具設(shè)計一個33階,F(xiàn)s=48kHz,F(xiàn)c=10.8 kHz的FIR濾波器,其幅值、相位響應(yīng)見圖3。為了便于FIR濾波器的FPGA實現(xiàn),減小誤差,將濾波器的系數(shù)量化取整后,在FPGA中實現(xiàn)采用的濾波系數(shù)為{-11,14,18,-11,-25,4,32,6,-38,-21,43,45,-47,-96,50,319,457,319,50,-96,-47,45,43,-21,-38,6,32,4,-25,-11,18,14,-11}。
3.2 FIR濾波器的FPGA實現(xiàn)與仿真
在Xilinx 10.1 ISE平臺中,選用Virtex-5系列的XC5VSXT50T器件,用Verilog HDL語言設(shè)計串行結(jié)構(gòu)、并行結(jié)構(gòu)的、以及DA結(jié)構(gòu),并在ModelSim中對3種結(jié)構(gòu)實現(xiàn)進行仿真。設(shè)計中輸入數(shù)據(jù)的位寬設(shè)為16位,而輸入數(shù)據(jù)在運算處理前位寬擴展到17位。所用仿真激勵為單位階躍響應(yīng),時鐘周期為Tck=10 ns。ModelSim中的仿真結(jié)果如圖4所示。
圖4中依次為改進的串行實現(xiàn),并行實現(xiàn)和DA實現(xiàn)的仿真結(jié)果,其濾波周期分別為180 ns,10 ns和180 ns。上述設(shè)計的改進串行結(jié)構(gòu)、并行結(jié)構(gòu)和DA結(jié)構(gòu)分別在XC5VSX50T中實現(xiàn)后,所消耗的FPGA內(nèi)部各種資源如表1所示。
從表l可以看出,并行實現(xiàn)消耗的資源最多,其次是DA實現(xiàn),最小是串行實現(xiàn)。而從濾波速度上來看,并行濾波速度最快,1個時鐘周期便可濾波1次;而串行實現(xiàn)速度慢,其濾波周期取決于濾波器的階數(shù),對17階的對稱濾波器而言,濾波一次占9個時鐘周期,濾波輸出占1個時鐘周期;相對串行實現(xiàn)和并行實現(xiàn),DA實現(xiàn)的濾波周期取決于處理的數(shù)據(jù)寬度,上述設(shè)計中DA實現(xiàn)的濾波處理數(shù)據(jù)位寬是17位,所以濾波一次占17個時鐘周期,濾波輸出占用1個時鐘周期。
4 結(jié)束語
在實際應(yīng)用中,當(dāng)濾波器設(shè)計對濾波速度要求不高時,可采用串行結(jié)構(gòu)或改進串行結(jié)構(gòu)來實現(xiàn),這樣可以選取資源較少的器件,降低設(shè)計成本;當(dāng)對濾波速度有較高要求時,可以考慮采用并行或DA來實現(xiàn)。并行實現(xiàn)濾波周期為時鐘周期,速度快,但消耗的資源多,成本高;DA實現(xiàn)速度較快,消耗的資源較少,成本耗費較低。在數(shù)字多普勒接收機的實現(xiàn)過程中,根據(jù)接收機的性能要求以及所選用的FPGA器件資源,選取最優(yōu)的FlR濾波器實現(xiàn)結(jié)構(gòu)。隨著FPGA查找技術(shù)的發(fā)展,具有較快的濾波速度和消耗較少資源的DA算法在FIR數(shù)字濾波領(lǐng)域得到了廣泛應(yīng)用。
評論