FIR滤波器的设计

2022-10-18

1 分布式算法原理

分布式算法 (Distributed Arithmetic DA) 最初是在1973年由Croisier提出的, 但直到Xilinx发明FPGA的查找表以后, DA算法才在上世纪90年代初重新受到重视, 并有效地应用在FIR滤波器的设计中[1]。DA算法的原理如下。

一线性时不变网络的输出为:

假设c (n) 为已知常系数, x (n) 是变量, 用 (B+1) 位2进制补码表示为:

其中, xB (n) 或xb (n) 为二进制的一位数字, 即, 1或0。网络的输出为:

其中, 利用一个LUT (查找表) 来影射, c (n) ·xb (n) 是LUT的一个单元, 即一个2N字宽的LUT接收一个N位输入向量xb=[xb[0], xb[1]…xb[N-1]], 输出为c (n) ·xb (n) , 然后每个影射c (n) ·xb (n) 再由相应的二次幂加权并累加。对于固定系数, 整数乘以2b即左移b位, 可以通过硬连线实现, 不占用逻辑资源, 利用移位加法器就能有效地实现累加。DA算法的主要特点是巧妙利用SRAM查找表将固定系数的乘累加运算转化为查表操作, 其运算速度不随系数和输入数据精度的增加而降低, 而且相对直接实现乘法器和系数寄存期在逻辑资源占用上得到了极大的改善。

2 基于分布式算法的FIR滤波器设计

N阶FIR滤波器的输出序列y (n) 为单位脉冲响应h (n) 与输入时间序列x (n) 的卷积, 即, 滤波器的输出表达式为[2]:

在这里, 就可以用前面叙述的分布式算法设置一个查找表来实现映射, 这样就可以避免由于乘法运算造成的延迟, 大大提高了运算速度, 满足了高速FIR滤波的要求。

对于高阶滤波器而言, 这种方法的缺点是查找表的大小随滤波器阶数的增加呈指数增长, 对于一个32阶的滤波器, 需要32个乘法器, 相应LUT的单元数为232。可见, LUT的规模很大, 需要大量的硬件资源, 这就需要简化L U T规模。

对于线性相位FIR滤波器, 其单位取样响应是对称或反对称的, 即:

利用对称性可以简化网络结构, 当h (n) 为偶对称且N为偶数时, 仅需N/2个乘法器。

这时, LUT的规模为216, 比原来降低了一半。同时, 还可以采用将大查找表分解为小查找表的方法来进一步降低逻辑资源的消耗。比如, 将一个1 6位的L U T分成4个小LUT, 这样每个LUT的规模为24, 所有LUT的规模为4×24, 仅是32位LUT规模的1/226, LUT的规模大大的降低了, 从而大大节约了硬件资源。可见, 基于查找表结构, 采用分布式算法可以实现高速高阶FIR滤波器的设计。

3 FIR滤波器的硬件电路设计

下面以一个32阶FIR带通滤波器为例说明硬件电路设计的方法和过程。

3.1 设计指标

采用频率:200Hz;类型:带通上限截止频率:54.3Hz;下限截止频率:46Hz;阶数:32阶;系数数据宽度:16位;输入数据宽度:16位;输出数据宽度:16位。

3.2 硬件电路组成单元

FPGA有着规整的内部逻辑块整列和丰富的连线资源, 特别适合用于细粒度和高并行度结构的FIR滤波器的实现。

3.3 电路仿真

在QuartusⅡ软件环境下, 用VHDL对上述FIR滤波器的模块进行编程描述, 最后将各模块综合起来下载到器件FLEX10KE中形成FIR滤波器。

用MATLAB设计了一幅度为0.2 2的50Hz的正弦波, 用250Hz的采样器对其采样, 将其输入到FIR滤波器的输入端, 得到滤波器的输出。其中, 一输出为5Ah, 转化为小数是0.005493;理论计算结果为0.005506, 可见实验结果与理论计算相比, 有一定的误差, 但相对较小, 处于允许范围内。误差主要是由于系数量化而形成的量化误差。

将仿真结果在Matlab里通过插值运算绘制成波形, 如图1所示。可见, 50Hz的正弦波通过了FIR滤波器, FPGA仿真结果是正确的。

4 结语

本文所介绍的基于FPGA、采用分布式算法实现FIR滤波器的方法, 在提高系统运行速度和节省硬件资源方面具有很大的优势。而且, 通过改变阶数和查找表中的系数, 还可以将此设计灵活地运用于实现任意频率的高通、低通和带阻滤波器, 可移植性较好。因此, 这种方法在高速数字信号处理中将有很好的应用前景。

摘要:本文设计了一个32阶线性相位FIR滤波器, 采用分布式算法原理, 在FPGA进行了实现。采用查找表来实现乘累加单元, 将乘法运算转换为查表操作, 提升处理速度。最后进行了硬件仿真, 结果证明这一方法是可行且高效的。

关键词:数字滤波器,FPGA,分布式算法,查找表

参考文献

[1] Suk Ho Lee.The Role of DistributedArithmetic in FPGA-based SignalProcessing.Naval Post-graduate SchoolMonterey.Califomia AD-A164-199.1999:33~45.

[2] 丁玉美, 高西全.数字信号处理[M].西安:西安电子科技大学出版社, 2001.

上一篇:企业信息化价值实现过程研究——以销售管理信息化为例下一篇:浅析宪法的解释