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