魏莉,林平分
(北京工业大学北京市嵌入式重点实验室,北京 100122)
0 引言
降采样数字滤波器可广泛应用于通信、声音和图像处理系统中。而当输入信号的带宽高于需处理的带宽时,对信号进行降采样处理可以大大减少数据量,提高数据率使实时处理容易实现。同时,为了克服在频域上的混叠,还需要先用低通滤波器过滤非处理带宽的信号能量,然后再降采样,以避免混叠。
本文以LTE无线通信系统为例,提出了一种完整的降采样FIR滤波器的设计和硬件实现方案。该方案在利用FDAtool得到滤波器系数之后再进行定点化,并将各系数拆分成2的幂次方相加减的形式,以便进行移位相加。对于降采样,该设计没有使用传统的先滤波后采样的方案,而是在滤波过程中渗入了采样操作。这样就大大减少了硬件资源的消耗,并可将乘法器的使用数目降低到零。
1 降采样滤波器的结构原理
降采样滤波器的典型结构如图1所示,包括抗混叠滤波器和降采样器。其中D为降采样率,k表示滤波器阶数。从图1可以看出,抗混叠滤波器的输出y(n)是对输入序列x(n)加权求和的结果,即:
降采样后的输出为:
直接降低采样率往往会使信号在频域上出现混叠,所以,一般需要预先通过一个低通滤波器抗混叠处理后再进行降采样,这个滤波器一般也称为抗混叠滤波器。图2所示是预滤波器的原理示意图。抗混叠滤波就是在满足一定分辨率和通信带宽的前提下,尽可能降低数据量,从而节约计算资源、节省存储空间,使实时处理容易实现。
2 降采样滤波器的设计与硬件实现
2.1 降采样滤波器的设计
利用matlab工具箱中自带的FDAtool可以确定滤波器的系数。首先根据系统要求确定滤波器的性能参数,比如在LTE系统中,数据传输带宽为10 MHz,其中用到一个降采样滤波器,将采样频率为61.44 MHz的信号降采样两倍后为30.72 MHz。本设计方法选择低通FIR等纹波滤波器。滤波器的阶数可以自己指定,也可以通过设置通带纹波摆幅和阻带衰减自行得到,一般通带纹波摆幅设为0.1dB,而阻带衰减设为60 dB。在满足这些性能指标的前提下,为了便于实现,滤波器的阶数设计为30阶,故有31个抽头。其设计出的低通滤波器如图3所示。
单击工具栏中的[b,a]图标,就可以得到滤波器的系数。
2.2 降采样滤波器的硬件实现
根据上述方案得到滤波器系数之后,再利用FDAtool所提供的量化功能,并根据该降采样滤波器前后模块的精度需求,可以选择量化精度为12,于是得到的滤波器定点化之后的系数如下:
[b0, b1, …, b30] =[-21, -8l, -58,77,173,9,-29l,-250,284,641,33,-109l,-990,1454,4938,6599,4938,1454,-990, -1091, 33, 64l, 284, -250, -291,9,173,77,-58,-81,-21],可见,该滤波器的系数是关于b15对称的,这一点也验证了FIR滤波器系数对称的特点。图4所示是本文初步设计的滤波器硬件架构。
为了进一步降低硬件复杂度,可将定点化的系数拆分成2的幂次方相加减的形式。以图3中设计出的系数为例:
[b0,b1,…,b15] = [-21,-8l,-58,77,173,9,-29l,-250, 284, 641, 33, -109l, -990,1454,4938,6599]
=[ -(16+4+1),
-(64+16+1),
-(64-8+2),
(64+16-4+1),
(256-64-16-4+1),
(8+1),
-(256+32+4-1),
-(256-8+2),
(256+32-4),
(512+128+1),
(32+1),
-(1024+64+4-1),
-(1024-32-2),
(2048-512-64-16-2),
(4096+1024-256+64+8+2),
(8192-2048+512-64+8-1)]. (3)
结合滤波器的阶数可知式(1)中的h(n)可以表示为:
h(n)=-21×[δ(n)+δ(n-30)]-8l×[δ(n-1)+δ(n-29)]-58×[δ(n-2)+δ(n-29)]+…+6599×δ(n-15). (4)
于是,有:y(n)=-21×[x(n)+x(n-30)]-8l×[x(n-1)+x(n-29)]-58×[x(n-2)+x(n-29)]+…+6599×x(n-15). (5)
将以上各系数用(3)中的拆分结果替换,可将式(5)进一步写为:
y(n)=-(16+4+1) [x(n)+x(n-30)]-(64+16+1) [x(n-1)+x(n-29)]-(64-8+2) [x(n-2)+x(n-29)]+…+(8192-2048+512-64+8-1)·x(n-15).(6)
这样,输出y(n)可表示成输入移位相加减的形式。至此,抗混叠FIR滤波器便告设计完成。
由图2可知,抗混叠滤波器输出信号必须经过降采样才能输出。而对于本设计的滤波器,其降采样率为2:l,理论上把式(6)取出一半即可满足降采样要求,但是,这样就意味着之前浪费了一部分硬件资源去计算这一半不用的数据。基于此考虑,在设计滤波器时可加上一个降采样控制器,x(n)还是正常输入,每一拍进一个新的采样点,而滤波过程则用降采样控制器控制,这样可使计算每隔一拍进行一次。
3 仿真结果分析
3.1 滤波器的幅频响应
图5所示是在matlab中利用定点化之后的滤波器系数画出滤波器的幅频响应特性曲线。
该曲线与2.1中设计的滤波器幅频曲线基本一致,从而验证了本设计的正确性。
3.2 硬件代码的仿真波形
对于本文中设计的硬件架构,用Verilog语言写出相应的硬件实现代码,再用modelsim软件进行波形仿真,其仿真结果如图6所示。
由图6所示的仿真结果可见,在降采样控制器的控制下,输入滤波器的数据经过滤波器之后,其输出频率降低一半。
3.3 综合、布局和布线结果
上述设计可用QuartusⅡ9.O进行综合、布局和布线,选用stratixⅢ的器件EP3SL340F151713,所得到的硬件资源占用情况如图7所示。此时,该滤波器最高可以run到170.07 MHz,可以符合系统要求。
实际上,用OuartusⅡ9.0也可以对传统方法设计出的滤波器进行综合、布局布线,并选择同样的器件。因为,传统的设计只是利用了系数的对称特点,而没有对系数进行分解。由于是直接和输入相乘叠加,因此滤波器的硬件代码最高只能跑到59.51MHz。其硬件资源占用情况如图8所示。
比较图7和图8的报告结果可见,本文提出的设计方法在LUT资源的占有和滤波器最高工作频率方面都有明显的改进。从而解决了传统设计需要专门对滤波器输出信号进行2倍降采样而耗费硬件资源的问题。
4 结束语
本文通过基于matlab自带的工具来对降采样FIR数字滤波器进行原型设计,给出了硬件资源占用少且工作频率高的降采样滤波器的实现方案。该设计经过modelsim软件的功能仿真和QuartusⅡ软件进行综合、布局布线验证,其均可达到系统要求。