基于FPGA高階FIR濾波器的實(shí)現(xiàn)
式中。ceil代表向上取整。存儲(chǔ)器的結(jié)構(gòu)如圖3所示。
由圖3得到fi(i=0,1,2,…,N-1)的值,可直接進(jìn)行后續(xù)的累加,在很大程度上節(jié)省累加器資源。由式(11)可知查找表的深度以2的冪指數(shù)增加,即濾波器的階數(shù)增加n位,則ROM深度增加2n倍,若濾波器的階數(shù)N很大,就會(huì)消耗很多的查找表資源。這種以2的冪指數(shù)遞增的資源消耗是硬件資源不可接受的。為了克服DA算法的缺點(diǎn),提出了改進(jìn)型DA算法結(jié)構(gòu)。
2.2.2 改進(jìn)型DA結(jié)構(gòu)
改進(jìn)型DA結(jié)構(gòu)是將濾波器系數(shù)平均放到多個(gè)存儲(chǔ)器中,每個(gè)存儲(chǔ)器形成一個(gè)LUT,然后將多個(gè)LUT的結(jié)果相加,并通過(guò)流水線寄存器來(lái)實(shí)現(xiàn)。圖4為改進(jìn)型DA結(jié)構(gòu)圖。
設(shè)濾波器的階數(shù)N=PQ,則fi可變形為式(13):
根據(jù)式(13),fi的實(shí)現(xiàn)只需要P個(gè)深度為2Q的查找表,在很大程度上減少了存儲(chǔ)器的地址空間,LUT的規(guī)模也隨地址空間的減小而呈現(xiàn)指數(shù)減小。
由于FPGA的查找表結(jié)構(gòu)一般為4輸入,為了提高濾波器系統(tǒng)設(shè)計(jì)的效率,濾波器的階數(shù)N為4的整數(shù)倍。假設(shè)濾波器系數(shù)N取64,將64個(gè)系數(shù)按不同的組合相加作為查找表的數(shù)據(jù),數(shù)據(jù)用16 b有符號(hào)數(shù)表示。采用DA結(jié)構(gòu),需要的存儲(chǔ)器地址空間為16×264b,顯然這樣規(guī)模的存儲(chǔ)單元消耗是系統(tǒng)無(wú)法承受的。而采用改進(jìn)型DA結(jié)構(gòu),若存儲(chǔ)器的個(gè)數(shù)P=4,所需總的存儲(chǔ)器地址空間為16×4×216=416 Mb。若存儲(chǔ)器的個(gè)數(shù)P=8,所需總的存儲(chǔ)器地址空間為16×8×28=32 Mb。由此可見,采用改進(jìn)型DA結(jié)構(gòu)可使設(shè)計(jì)規(guī)模顯著減小,有效降低資源的消耗。
設(shè)濾波器為帶通濾波器,窗函數(shù)為凱賽窗(Kaiser),通帶截止頻率為0.65,0.75,阻帶起始頻率為0.55,0.85,通帶和阻帶的紋波系數(shù)為0.001,利用窗函數(shù)法設(shè)計(jì),濾波器的階數(shù)為64階,其系數(shù)如圖5所示,幅頻及相頻特性如圖6所示。
評(píng)論