基于FPGA的高效FIR濾波器設(shè)計(jì)與實(shí)現(xiàn)
表2所列是不同結(jié)構(gòu)濾波器的綜合結(jié)果。其中并行結(jié)構(gòu)是最差的一種結(jié)構(gòu), 它占用資源多、速度慢; 串行LUT-DA結(jié)構(gòu), 雖然占用資源少,最大工作頻率高, 但畢竟是串行結(jié)構(gòu), 不能在一個時鐘節(jié)拍完成對一個采樣點(diǎn)的濾波運(yùn)算; 而流水線CSD-DA結(jié)構(gòu)則無論在速度, 還是面積上,都具有比較明顯的優(yōu)勢。如果工作時鐘為75MHz, 那么, 一個時鐘節(jié)拍便可以完成一次輸出, 處理330個采樣點(diǎn)的單通道信號僅需4.4μs,可以滿足測井實(shí)時性要求。
表2 濾波器的綜合結(jié)果
4 結(jié)果分析
為了驗(yàn)證濾波器的功能是否正確, 可對本設(shè)計(jì)在Modelsim中進(jìn)行仿真。若原始波形為帶噪聲的聲波信號, 那么, 其濾波的結(jié)果如圖4所示。
圖4 濾波器在Modelsim中的仿真結(jié)果
圖5所示是濾波器在Matlab中的仿真結(jié)果, 可以看出, Modelsim和Matlab的仿真結(jié)果一致。在頻域上, 對比圖5 (a) 和圖5 (b) 可以看到, 其濾波后的波形只保留了5kHz~18kHz的頻譜部分, 這說明流水線CSD-DA結(jié)構(gòu)的數(shù)字濾波器設(shè)計(jì)正確。
圖5 濾波器在Matlab中的仿真結(jié)果
5 結(jié)束語
本文詳細(xì)講述了通過Matlab工具設(shè)計(jì)FIR線性相位濾波器的方法, 并針對聲波信號設(shè)計(jì)了優(yōu)于傳統(tǒng)結(jié)構(gòu)的流水線CSD-DA結(jié)構(gòu), 該結(jié)構(gòu)具有較明顯的速度和面積優(yōu)勢。文中也通過仿真實(shí)驗(yàn)證實(shí)了設(shè)計(jì)的合理性和正確性。但值得指出的是, 該結(jié)構(gòu)只適合固定濾波器系數(shù)的場合, 而如果要進(jìn)行修改, 則需要重新對系數(shù)進(jìn)行CSD編碼和流水線分割。
評論