2 FIR滤波器结构及原理
FIR滤波器有直接型、级联型和频率抽样型3种基本结构,其中直接型是最常见的结构,其差分方程为:
式中bi系数与滤波器的脉冲响应是直接相关的,即bi=h(l)。由于脉冲响应是有限长的,故FIR滤波器是指有限冲激响应滤波器,式(1)可改写为:
由式(2)可知,式中M是滤波器的阶数,FIR滤波器的输出就是x(n)与单位脉冲响应h(l)的直接卷积。这种结构也称为抽头延迟线结构,在实现的过程中,每一抽头的信号被适当的系数(脉冲响应)加权,然后所得的乘积相加就得到输出y(n)。再将其进行Z变换,得出下面的输入、输出关系:
在硬件实现时,可以用几个不同的器件来实现,即:延时器、乘法器和加法器。
3 FIR滤波器的设计方法及优化
(1)设计方法
FIR滤波器设计方法是以直接逼近所需离散时间系统的频率响应为基础,常用的设计方法包括窗函数法、等同纹波法和借助Matlab设计FIR滤波器。
1)窗函数法
窗函数法的设计重点是如何选择合适的窗函数和理想滤波器。其设计FIR滤波器常用的窗函数有:矩形窗函数、三角窗(Bartlett)函数、汉宁(Hanning)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)函数和凯塞(Kaiser)窗函数。窗函数的选择原则是:
a.具有较低的旁瓣幅度,尤其是第一旁瓣幅度。
b.旁瓣幅度下降速度要快,以利于增加阻带衰减。
c.主瓣宽度要窄,以获得较陡的过渡带。
2)等同纹波法
对于线性相位FIR滤波器来说,若有可能导得的一组条件证明,在最大近似误差最小化的意义下,其近似误差在通带和阻带上都是均匀分布的,该设计为最优的,则具有这种性质的滤波器便称为等同纹波滤波器。等同纹波法的优点在于通频带和抑制带偏差可以分别指定,且实现相同指标的滤波器时所用的滤波器阶数较小。
3)借助Matlab设计FIR滤波器
在Matlab的SIGNAL PROCESSING TOOLBOX中,有一种专门的数字滤波器设计软件模块EDA,它可以采用多种方法设计FIR滤波器,包括窗函数法和等同纹波法。只要在输入设计要求和设计方法选择后,便可计算出各阶系数,不仅以图形的直观方式显示幅频、相频、冲击响应和零极点图,而且还可以把各阶系数以二进制补码的形式导出到文本文件中去,方便系数的转换。对于线性相位因果FIR滤波器,具有中心对称特性,即:
令:s(i)=x(i)±x(M-1-i),对于偶对称,可得:
根据系统设计要求的输出信号范围、采样频率和截止频率等要求,通过Matlab仿真和系数调整并整数化,得到其参数,图1是FIR滤波器的电路框图,其中CL为输出时钟脉冲,RESET为复位清零信号,DI和DO分别为输入和输出信号。
(2)提高运算速度的优化研究
1)设计方法上优化
如上所述,FIR滤波器总是对称的,故可以利用它的中心对称特性,对滤波器的结构进行优化,通过Matlab仿真和系数调整并整数化。
2)通过设计模块提高处理速度
FIR滤波器分为寄存器、加法器、减法器和乘法器4种模块。由于加法器、乘法器为最基本运算,其频繁的使用,往往影响着整个系统的运行速度如果可以实现快速加法器和快速乘法器的设计,则可以提高整个系统的处理速度。经综合考虑,实现规模较小的乘法运算可以使用查找表乘法器;对规模较大的乘法运算可以使用采用了流水线技术的加法器树结构乘法器来实现。但要注意,虽然流水深度同运算速度在一定程度上成正比,但随着流水深度的增加,布线延迟在总的延迟中所占的比重会越来越大,逻辑延迟所占比重逐渐变小,总的延迟不一定减小,资源耗费却会迅速增加。并行乘法器是设计的重要部分,它占用了这个系统的大量资源,其设计是否优化决定了该系统设计的好坏,甚至决定是否可行。
4 系统仿真与分析
根据上述思路,顶层模块采用原理图输入,子模块采用VHDL设计。在Altera公司提供的FPGA开发集成环境Quartus Ⅱ6.0下,利用Cyclone系列的EP1C12Q240C8芯片分别对子模块和整个系统进行了综合和时序仿真,分析比较输出信号理论值和仿真结果,详见表1。经仿真结果表明,本FIR滤波器完全满足系统设计的要求。
5 结语
探讨了基于EDA技术的并行FIR滤波器的设计和对优化硬件资源利用率、提高运算速度等实际问题,设计了FIR滤波器中的最基本、最常用的加法器、乘法器模块。以该两个模块为基础所完成的17阶并行FIR滤波器的设计,经过系统分析与仿真验证,完全符合设计要求。