文献标识码:A
文章编号: 0258-7998(2015)06-0042-03
0 引言
有限冲激响应(FIR)数字滤波器系数敏感度低,能保证绝对稳定和线性相位,因此在集成电路设计中应用广泛。当把设计好的数字滤波器由专用集成电路(Application Specific Integrated Circuit,ASIC)或可编程集成电路(Field Programmable Gate Array,FPGA)实现时,输入与常系数之间的乘法可以通过加法器和移位操作来实现[1]。外推冲激响应FIR滤波器利用冲激响应的准周期特性来近似滤波器系数,并通过残余补偿完美重建原系数,进一步与子项空间技术结合,有效减少滤波器实现时加法器的个数,从而降低复杂度,节省硬件实现成本。
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]。这主要是由于外推降低了滤波器系数的自由度,外推出的系数仅仅是最优值的近似,因此为了满足给定的性能要求,只能提高阶数。为了解决这个问题,可以将系数外推近似产生的误差补偿回去,从而在不增加滤波器阶数的情况下满足性能要求,这种方法称为残余补偿(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个),但外推使得系数取值范围大大降低,优化设计时加法器的个数和位数都会减少[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所示,子项共享比直接实现节省一个加法器。因此,合理利用子项共享,可以有效降低数字滤波器的硬件消耗[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 综合结果
本节将以文献[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)之间进行优化和子项共享实现,共需要164个加法器[5];
(3)外推补偿+子项共享实现,简称外推共享,共需要150个加法器[4]。
ASIC硬件资源的消耗可以通过设置某个约束条件后综合的面积来衡量[6]。选择55 nm的CMOS工艺进行综合,时序约束条件分别设置为100 MHz、200 MHz。综合结果见表1。
从表1可以看出,外推共享实现FIR滤波器相比较直接实现和子项共享实现,ASIC综合结果具有更小的面积消耗,节省了实现成本。但由于增加了延迟链,在低阶滤波器或是延迟链很长的情况下,外推共享实现相对于子项共享实现的优势并不明显。
下面再通过FPGA对三种不同的实现方法进行综合比较。分别选择Cyclone III系列的EP3C120F780I7和Stratix III系列的 EP3SE50F484C2两种型号的FPGA,综合工具选用Quartus II 13.1。不同系列的FPGA综合指标会有所不同,结果如表2。
从表2可以看出,EP3C120F780I7用较少的存储器来实现延迟链,而EP3SE50F484C2用寄存器来实现延时链,总体的逻辑消耗由于加法器个数的减少都明显降低,从而节省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.