侵权投诉
当前位置:

OFweek电子工程网

可编程逻辑

正文

高阶FIR滤波器的计算机设计与FPGA实现

导读: 相对无限冲击响应(IIR)滤波器,有限冲击响应(FIR)能够在满足滤波器幅频响应的同时获得严格的线性相位特性,而数据通信、语音信号处理等领域往往要求信号在传输过程中不能有明显的相位失真,所以FIR滤波器获得了更广泛的应用。

  相对无限冲击响应(IIR)滤波器,有限冲击响应(FIR)能够在满足滤波器幅频响应的同时获得严格的线性相位特性,而数据通信、语音信号处理等领域往往要求信号在传输过程中不能有明显的相位失真,所以FIR滤波器获得了更广泛的应用。FIR滤波器有多种设计和实现方法,最为常用的是基于分布式算法的FIR滤波器设计。该法利用构造查找表,流水线操作完成滤波过程,极大地提高了系统的处理效率。然而,查找表所要求的系统存储器容量随滤波器的阶数成指数上涨。本文基于工程实际出发,在信号处理速率要求不高且滤波器阶数较高的情况下,提出了一种基于LPM参数化宏功能模块的FIR滤波器设计方法,具有一定的工程实用价值。

  1 FIR滤波器的原理与设计方法

  1.1 FIR滤波器的原理

  FIR滤波器的数学表达式为:

  

  式中:N为FIR滤波器的抽头数;x(n)为第n时刻的输入样本;h(k)为FIR滤波器第k级抽头系数。

  直接型FIR滤波器结构如图1所示。

  

  由图1可见,FIR的滤波过程就是一个信号逐级延迟的过程,将各级的延迟输出加权累加,即得到FIR的输出,其中最主要的算法是乘累加运算。由于FIR每完成一次滤波过程就需要进行N次乘法和N-1次加法操作,所以FIR滤波的运算量完全依赖于N的大小。

  1.2 分布式FIR滤波器设计

  分布式算法(Distributed Arithmetic,DA)早在1973年就已经被Croisier提出,直到现场可编程门阵列(Field Programmable Gate Ar-ray,FPGA)的查找表(Look Up Table,LUT)结构出现,这种算法才重新受到重视,其主要原理如下。

  为了分析简单,将FIR滤波器的表达式(1)改写为:

  

  可见,分布式算法是一种以实现“乘-加”单元为目的的优化解决方案。利用一个查找表(LUT)实现映射,即用一个2k字宽(即2k行),预先编好程序中LUT接收到的一个K位输入向量Xb=[X0b,X1b,…,X(k-1)b]的映射,经查找表的查找后直接输出部分积。然而,由上述可知,查找表字宽为2k,如果滤波器的抽头系数过多,则查找表的规模随抽头系数的增加成指数级增长,这将使LUT的规模十分庞大。为了减小规模,可以利用部分表计算法,即将一个大的查找表化分为几个小的查找表,然后再将结果相加。

  1.3 基于LPM参数化宏功能模块的FIR滤波器设计

  由1.2节可见,分布式算法极大地减少了硬件电路规模,很容易实现流水线技术,不仅使电路的执行速度得以提高,使得信号的处理效率大幅度提高。然而,当系统所要求的处理速度不高时,可利用QuartusⅡ中的LPM参数化宏功能模块来设计FIR滤波器;当滤波器系数较大时,该法不需要像分布式算法那样构造庞大的查找表或多个小的查找表。

1  2  3  下一页>  
声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号