可级联FIR滤波器的IP设计及FPG - FPGA/ASIC技术 -
来源: 网络用户发布,如有版权联系网管删除 2018-08-18
【摘 要】 提出了一种基于分布式算法的,采用基于RAM之移位寄存器来设计可级联FIR滤波器的设计方法。
关键词:FPGA,可级联,FIR滤波器,分布式算法
1 引 言
现场可编程逻辑器件(FPGA)由于兼具可编程逻辑器件现场可编程的灵活性,以及门阵列器件集成度高的优点,在数字系统设计中被广泛使用。FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合于细粒度和高并行度结构特点的数字信号处理任务,如FIR,FFT等。本文详细讨论了利用FPGA实现FIR滤波器的设计过程,并且对设计中的关键技术——分布式算法和基于RAM的移位寄存器都进行了详细的描述。本设计已经通过了FPGA验证,和其它同类设计相比,本文所设计的电路不仅速度快而且占用的面积小。
2 FIR和分布式算法
2.1 FIR的基本概念
FIR滤波器数学表达式为:
由此看出,FIR滤波器的基本结构如一个分节的延时线,把每一节的输出加权累加,得到滤波器的输出。对于FIR滤波器,在幅度上只需满足下列两个条件之一,就能构成线性相位FIR滤波器。
式(2)称为第一类线性相位的幅度条件,式(3)称为第二类线性相位的幅度条件。由此可写出线性相位FIR滤波器的数学表达式:
2.2 分布式算法
FIR滤波器的主要组成模块是乘/加单元,若按照直观结构构造乘法器和系数寄存器来实现会占用大量的逻辑资源。而分布式算法利用查找表(LUT)将固定系数的乘/加运算转化为查表操作,并且其运算速度不随系数和输入数据精度的增加而降低,相对直接实现乘法器和系数寄存器在逻辑资源占用上得到极大的改善。分布式算法原理如下:
式(1)可以用下式表示:
其中,hk即h(k),xk(n)即x(n-k),K为滤波器的长度。
为了使得乘法之后的数据宽度不至于展宽,先把数据源数据格式规定为浮点数2的补码形式。则
其中,xkb(n)为二进制数,取值为0或1;xk0(n)为符号位,xk0(n)为1表示数据为负,为0表示数据为正。将(7)式代入(6)式可得