文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)06-0042-03
0 引言
有限沖激響應(yīng)(FIR)數(shù)字濾波器系數(shù)敏感度低,能保證絕對(duì)穩(wěn)定和線(xiàn)性相位,因此在集成電路設(shè)計(jì)中應(yīng)用廣泛。當(dāng)把設(shè)計(jì)好的數(shù)字濾波器由專(zhuān)用集成電路(Application Specific Integrated Circuit,ASIC)或可編程集成電路(Field Programmable Gate Array,FPGA)實(shí)現(xiàn)時(shí),輸入與常系數(shù)之間的乘法可以通過(guò)加法器和移位操作來(lái)實(shí)現(xiàn)[1]。外推沖激響應(yīng)FIR濾波器利用沖激響應(yīng)的準(zhǔn)周期特性來(lái)近似濾波器系數(shù),并通過(guò)殘余補(bǔ)償完美重建原系數(shù),進(jìn)一步與子項(xiàng)空間技術(shù)結(jié)合,有效減少濾波器實(shí)現(xiàn)時(shí)加法器的個(gè)數(shù),從而降低復(fù)雜度,節(jié)省硬件實(shí)現(xiàn)成本。
1 帶殘余補(bǔ)償?shù)耐馔茮_激響應(yīng)FIR濾波器
一個(gè)典型線(xiàn)性相位FIR濾波器的沖激響應(yīng)具有準(zhǔn)周期(quasi-periodic)特性,如圖1所示。其主要特點(diǎn)表現(xiàn)為:能量主要集中在主瓣(center lobe),而旁瓣(side lobes)的能量逐漸降低(lobe0~lobe2)。假定每個(gè)旁瓣具有相同數(shù)量的采樣點(diǎn),且選擇幅度最小的旁瓣lobe2作為原型瓣(prototype lobe),則外推沖激響應(yīng)濾波器的基本思想就是利用原型瓣近似得到其他旁瓣[2-4]。
一個(gè)2N階零相位FIR濾波器的傳輸函數(shù)可寫(xiě)為:
假設(shè)外推沖激響應(yīng)濾波器有L個(gè)旁瓣,且每個(gè)旁瓣長(zhǎng)度為d,則式(1)可重新表示為:
外推沖激響應(yīng)濾波器在設(shè)計(jì)時(shí)只需考慮未參與外推的系數(shù)h(0)~h(M)和h(M+Ld+1)~h(N)、原型瓣的系數(shù)h(M+(L-1)d+1)~h(M+Ld)以及尺度因子α0~αL-1,因此乘法計(jì)算復(fù)雜度與直接實(shí)現(xiàn)相比大大降低,但對(duì)于相同的性能要求,外推沖激響應(yīng)濾波器需要更高的階數(shù)[2-4]。這主要是由于外推降低了濾波器系數(shù)的自由度,外推出的系數(shù)僅僅是最優(yōu)值的近似,因此為了滿(mǎn)足給定的性能要求,只能提高階數(shù)。為了解決這個(gè)問(wèn)題,可以將系數(shù)外推近似產(chǎn)生的誤差補(bǔ)償回去,從而在不增加濾波器階數(shù)的情況下滿(mǎn)足性能要求,這種方法稱(chēng)為殘余補(bǔ)償(residual compensation)。
假設(shè)一個(gè)2N=18階的線(xiàn)性相位FIR濾波器,選取系數(shù)h(5)~h(7)為原型瓣,旁瓣系數(shù)h(2)~h(4)通過(guò)原型瓣外推得到,尺度因子為α0,hr(2)~hr(4)為外推近似過(guò)程中產(chǎn)生的誤差,作為殘余補(bǔ)償回去,實(shí)現(xiàn)結(jié)構(gòu)如圖2所示。
因此,帶殘余補(bǔ)償?shù)耐馔茮_激響應(yīng)濾波器傳輸函數(shù)可寫(xiě)為:
對(duì)圖2結(jié)構(gòu)需要做幾點(diǎn)說(shuō)明:
(1)圖2為尾系數(shù)(h(8)~h(9))不參與外推的結(jié)構(gòu),如果尾系數(shù)也參與外推,具體結(jié)構(gòu)會(huì)有所差異[4];
(2)式(4)對(duì)應(yīng)的參數(shù):N=9,M=1,L=2,d=3;
(3)較直接實(shí)現(xiàn)多出了兩個(gè)延時(shí)鏈(Extra Delay Chains),延時(shí)鏈的長(zhǎng)度等于瓣的長(zhǎng)度d,這里為3。延時(shí)鏈?zhǔn)沟每傃訒r(shí)單元數(shù)量比直接實(shí)現(xiàn)多出2(d-1)個(gè),會(huì)增加一定的硬件消耗;
(4)雖然參數(shù)數(shù)量沒(méi)有減少(h(0),h(1),hr(2),hr(3),hr(4),h(5),h(6),h(7),h(8),h(9),仍然為10個(gè)),但外推使得系數(shù)取值范圍大大降低,優(yōu)化設(shè)計(jì)時(shí)加法器的個(gè)數(shù)和位數(shù)都會(huì)減少[4],從而降低硬件成本。
2 子項(xiàng)共享技術(shù)
圖2中輸入信號(hào)與濾波器的各個(gè)常系數(shù)h(0),h(1),hr(2),hr(3),hr(4),h(5),h(6),h(7),h(8),h(9)相乘屬于多常數(shù)乘法(Multiple Constants Multiplication,MCM)問(wèn)題,可以通過(guò)加法器和移位操作來(lái)實(shí)現(xiàn)。子項(xiàng)空間技術(shù)可以有效降低MCM問(wèn)題中加法器的個(gè)數(shù),從而降低FIR濾波器的實(shí)現(xiàn)復(fù)雜度[5]。
一個(gè)離散子項(xiàng)空間中的元素可以通過(guò)下式構(gòu)建[5]:
其中S是一組子項(xiàng)基,簡(jiǎn)稱(chēng)基組。式(5)中y(i)2q(i)是某個(gè)子項(xiàng)基的移位,稱(chēng)為一個(gè)子項(xiàng),K定義為子項(xiàng)的個(gè)數(shù)。例如S可以寫(xiě)為:{0,±1,±3,±5},有時(shí)也簡(jiǎn)寫(xiě)為:{3,5}。在構(gòu)建一個(gè)子項(xiàng)基時(shí)需要的加法器個(gè)數(shù)稱(chēng)為這個(gè)子項(xiàng)基的階數(shù),顯然S的階數(shù)為2。
如果某個(gè)變量與多個(gè)常數(shù)相乘,則用來(lái)實(shí)現(xiàn)公共子項(xiàng)的加法器都可以共享,從而達(dá)到減少加法器個(gè)數(shù)的目的。以?xún)蓚€(gè)系數(shù)為例,如圖3所示,子項(xiàng)共享比直接實(shí)現(xiàn)節(jié)省一個(gè)加法器。因此,合理利用子項(xiàng)共享,可以有效降低數(shù)字濾波器的硬件消耗[5]。
3 硬件實(shí)現(xiàn)結(jié)構(gòu)
下面舉例說(shuō)明外推補(bǔ)償FIR濾波器的一般結(jié)構(gòu)框圖。以16階的濾波器為例,假設(shè)h(1)~h(6)包含三個(gè)具有準(zhǔn)周期性的旁瓣。選擇系數(shù)幅度最小的瓣h(5)~h(6)作為原型瓣,并假設(shè)h(1)~h(2)旁瓣的尺度因子為α0,h(3)~h(4)旁瓣的尺度因子為α1,則外推補(bǔ)償FIR濾波器的實(shí)現(xiàn)結(jié)構(gòu)如圖4所示。
具體實(shí)現(xiàn)方法說(shuō)明如下:
(1)式(4)對(duì)應(yīng)的參數(shù):N=8,M=0,L=3,d=2。
(2)系數(shù)與輸入x(n)乘法的實(shí)現(xiàn):如前所述,屬于多常數(shù)乘法問(wèn)題,多常數(shù)為:h(0),hr(1),hr(2),hr(3),hr(4),h(5),h(6),h(7),h(8),可以采用子項(xiàng)共享技術(shù)來(lái)減少加法器的個(gè)數(shù)。
(3)各尺度因子乘法的實(shí)現(xiàn):也屬于常數(shù)乘法問(wèn)題,但不能與上述系數(shù)進(jìn)行子項(xiàng)共享,只能在尺度因子之間進(jìn)行共享。
(4)系數(shù)的正負(fù)問(wèn)題:在實(shí)現(xiàn)過(guò)程中全部采用補(bǔ)碼加法運(yùn)算。
4 綜合結(jié)果
本節(jié)將以文獻(xiàn)[4]中120階的高通濾波器L1為例,基于帶殘余補(bǔ)償?shù)耐馔茮_激響應(yīng)技術(shù),采用Verilog HDL進(jìn)行濾波器的RTL級(jí)描,并用不同的工具分別在ASIC和FPGA上進(jìn)行綜合比較。L1濾波器的通帶邊界頻率為0.8π,阻帶邊界頻率為0.74π,通帶波動(dòng)小于0.005 7,阻帶波動(dòng)小于0.000 1。具體系數(shù)參閱文獻(xiàn)[4]中的表5。
選擇h(37)~h(45)作為原型瓣,h(1)~h(9),h(10)~h(18),h(18)~h(27),h(28)~h(36)通過(guò)原型瓣外推得到,尺度因子分別為16,-8,4,-2。與輸入的多常數(shù)乘法系數(shù)為:h(0),hr(1)~hr(36),h(37)~h(60),比原系數(shù)h(0)~h(60)的取值范圍要小很多,因此可以有效減少加法器的個(gè)數(shù)[4]。對(duì)應(yīng)子項(xiàng)共享的基組為:{3,5,7,9,13,15,19,23,25,29,33,41,63,73,89,111,135,145,157,171,177,197},具體實(shí)現(xiàn)結(jié)構(gòu)可以通過(guò)圖4進(jìn)行擴(kuò)展,式(4)對(duì)應(yīng)的參數(shù):N=60,M=0,L=5,d=9。
這里采用三種不同的實(shí)現(xiàn)方法進(jìn)行比較:
(1)直接實(shí)現(xiàn),即輸入與濾波器系數(shù)h(0)~h(60)直接相乘實(shí)現(xiàn);
(2)子項(xiàng)共享實(shí)現(xiàn),即在系數(shù)h(0)~h(60)之間進(jìn)行優(yōu)化和子項(xiàng)共享實(shí)現(xiàn),共需要164個(gè)加法器[5];
(3)外推補(bǔ)償+子項(xiàng)共享實(shí)現(xiàn),簡(jiǎn)稱(chēng)外推共享,共需要150個(gè)加法器[4]。
ASIC硬件資源的消耗可以通過(guò)設(shè)置某個(gè)約束條件后綜合的面積來(lái)衡量[6]。選擇55 nm的CMOS工藝進(jìn)行綜合,時(shí)序約束條件分別設(shè)置為100 MHz、200 MHz。綜合結(jié)果見(jiàn)表1。
從表1可以看出,外推共享實(shí)現(xiàn)FIR濾波器相比較直接實(shí)現(xiàn)和子項(xiàng)共享實(shí)現(xiàn),ASIC綜合結(jié)果具有更小的面積消耗,節(jié)省了實(shí)現(xiàn)成本。但由于增加了延遲鏈,在低階濾波器或是延遲鏈很長(zhǎng)的情況下,外推共享實(shí)現(xiàn)相對(duì)于子項(xiàng)共享實(shí)現(xiàn)的優(yōu)勢(shì)并不明顯。
下面再通過(guò)FPGA對(duì)三種不同的實(shí)現(xiàn)方法進(jìn)行綜合比較。分別選擇Cyclone III系列的EP3C120F780I7和Stratix III系列的 EP3SE50F484C2兩種型號(hào)的FPGA,綜合工具選用Quartus II 13.1。不同系列的FPGA綜合指標(biāo)會(huì)有所不同,結(jié)果如表2。
從表2可以看出,EP3C120F780I7用較少的存儲(chǔ)器來(lái)實(shí)現(xiàn)延遲鏈,而EP3SE50F484C2用寄存器來(lái)實(shí)現(xiàn)延時(shí)鏈,總體的邏輯消耗由于加法器個(gè)數(shù)的減少都明顯降低,從而節(jié)省FIR濾波器FPGA實(shí)現(xiàn)時(shí)的成本。
5 結(jié)論
本文通過(guò)Verilog HDL編程實(shí)現(xiàn)了帶殘余補(bǔ)償?shù)耐馔茮_激響應(yīng)FIR數(shù)字濾波器,并結(jié)合子項(xiàng)共享技術(shù)進(jìn)一步減少實(shí)現(xiàn)時(shí)加法器的個(gè)數(shù),從而有效降低FIR濾波器的硬件消耗,尤其對(duì)于高階FIR濾波器的低成本設(shè)計(jì)具有實(shí)際的應(yīng)用意義。
參考文獻(xiàn)
[1] 徐紅,葉豐,黃朝耿.基于子項(xiàng)空間技術(shù)的低復(fù)雜度FIR濾波器實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2014,40(6):33-35.
[2] LIM Y C,LIU B.Extrapolated impulse response FIR filters[J].IEEE Trans.Circuits Syst.,1990,37(12):1548-1551.
[3] YU Y J,SHI D,LIM Y C.Subexpression encoded extrapolated impulse response FIR filter with perfect residual compensation[C].Proc.IEEE ISCAS,2008:2446-2449.
[4] YU Y J,SHI D,LIM Y C.Design of extrapolated impulse response FIR filters with residual compensation in subexpression space[J].IEEE Trans.Circuits Syst.I,Reg.Papers,2009,56(12):2621-2633.
[5] Yu Y J,LIM Y C.Design of linear phase FIR filters in subexpression space using mixed integer linear programming[J].IEEE Trans.Circuits Syst.I,Reg.Papers,2007,54(10):2330-2338.
[6] 虞希清.專(zhuān)用集成電路設(shè)計(jì)實(shí)用教程[M]第二版.杭州:浙江大學(xué)出版社,2013.