FPGA實(shí)現(xiàn)FIR抽取濾波器的設(shè)計(jì)
3 濾波器系數(shù)的求取
使用Matlab集成的濾波器設(shè)計(jì)工具FDAtool,可以完成多種濾波器的數(shù)值設(shè)計(jì)、分析與評(píng)估,設(shè)計(jì)16階低通濾波器參數(shù)如下:
采樣頻率:Fs為50MHz,濾波器歸一化截止頻率:Fc為0.4MHz,輸入數(shù)據(jù)位寬:8位,輸出數(shù)據(jù)寬度:16位FDAtool采用漢寧窗函數(shù)(Hanning)設(shè)計(jì)16階線性相位FIR數(shù)字濾波器,并提取其特性參數(shù)h(n)浮點(diǎn)數(shù)值。本文引用地址:http://www.ex-cimer.com/article/188940.htm
MATLAB中算出的系數(shù)h(n)的值是一組浮點(diǎn)數(shù),進(jìn)行浮點(diǎn)值到定點(diǎn)值的轉(zhuǎn)換,用16位二進(jìn)制補(bǔ)碼表示為
濾波器抽頭數(shù)是16個(gè),考慮到線性FIR濾波器的偶對(duì)稱特性,只考慮8個(gè)獨(dú)立濾波器抽頭數(shù),則需要一個(gè)28×8的表(其中指數(shù)8指的是8個(gè)濾波器抽頭數(shù),后面的8指的是輸入數(shù)據(jù)的位寬)。但是Virrex―e FPGA只能提供4輸入的杏找表,所以要對(duì)查找表的地址進(jìn)行電路分割。將8位地址線分為高4位和低4位,分別作為兩個(gè)24×8的查找表的地址輸入,從而指數(shù)倍地節(jié)省了硬件資源。
4 主程序及仿真
在時(shí)鐘和計(jì)數(shù)器的控制下,根據(jù)查找表輸出結(jié)果位權(quán)的不同,將輸入數(shù)據(jù)向左移動(dòng)相應(yīng)的位數(shù),低位按照位權(quán)的不同補(bǔ)上個(gè)數(shù)相當(dāng)?shù)摹?”,然后將移位數(shù)據(jù)進(jìn)行累加操作,輸出最終濾波結(jié)果,這里的結(jié)果依舊是用二進(jìn)制數(shù)據(jù)表示的,只是位數(shù)因?yàn)橐莆缓屠奂硬僮髟黾恿?位。
評(píng)論