Page 28 - 网络电信2019年4月刊上
P. 28
一种分布式算法的FIR滤波器设计
高红梅 诺基亚上海贝尔软件有限公司
摘要:分布式算法是一种以实现乘加运算为目的的运算方法。主要介绍了一种采用分布式算法的
FIR滤波器的设计与FPGA实现过程。采用ROM作为查找表来计算乘积和,然后设计出按照字并行处理的
开式环结构的FIR滤波器,并在表的输出和加法器树的输出上增加额外的流水线寄存器而不需要增加成
本。在基于QuartusII平台上用VHDL语言在可编程逻辑器件上实现该结构的功能。实验结果表明,分布
式算法可有效地减少硬件电路规模,易实现流水线处理,提高电路的执行速度。
关键词:分布式算法;FIR滤波器;流水线技术;现场可编程门阵列(FPGA)
一、引言 入样本;h(i)是FIR滤波器的第i级抽头系数。公式(1)就是
FIR(Finite Impulse Response)滤波器是数字信号处理系 序列x(n)与单位冲击响应h(n)的线性卷积。由公式(1)可
统中基本的元件,它可以在保证任意幅频特性的同时具有严格 知,n时刻的输入y(n)仅与n时刻的输入以及过去N-1个输入值
的线性相频特性,同时其单位冲激响应是有限的,没有输入到 有关。因为直接型结构简单直观,当具有系数对称结构时,总
输出的反馈,是稳定的系统。因此,FIR滤波器在通信、图像处 运算量可减少一半,且系数调整方便,故硬件实现较多的采样
理、模式识别等领域都有着广泛的应用 [1-3] 。 直接型结构,直接型FIR滤波器结构如图1所示。
随着数字技术日益广泛的应用,以现场可编程门阵列
图1 普通的直接型FIR滤波器
(FPGA)为代表的ASIC器件得到了迅速普及和发展,器件集成
度和速度都在高速长。FPGA既具有门阵列的高逻辑密度和高可
靠性,又具有可编码逻辑器件的用户可编程特性,可以减少系
统设计和维护的风险,降低产品成本,缩短设计周期。因为
FPGA有着规整的内部逻辑块整列和丰富的连线资源,特别适合
用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运
算主导的通用DSP芯片来说,并行性和可扩展性都更好 [4-5] 。
分布式算法是一种以实现乘加运算为目的的运算方法 [6-8] 。 FIR滤波器的冲激响应实际上是FIR的系数,抽头(Tap)指
它与传统算法实现乘加运算的不同在于执行部分积运算的先后 FIR的抽头是系数或者延时对,FIR抽头的个数(通常用N来表示)
顺序不同。简单地说,分布式算法在完成乘加功能时是通过将 意味着:(1)实现滤波器所需要的存储空间;(2)需要计算
各输入数据每一对应位产生的部分积预先进相加形成相应部分 的数目;(3)滤波器能滤掉的数量。实际上,越多的抽头意味
积,然后在对各部门积进行累加形成最终结果,而传统算法是 着有更多的阻带衰减,更少的波纹,更窄的滤波等等。
等到所有乘积产生之后再进行相加来完成乘加运算的。与传统 乘累加(MAC)是指把延时的数据采样与相应的系数相乘,然
算法相比,分布式算法可极大地减少硬件电路规模,很容易实 后累加结果。通常,FIR滤波器的每一个抽头都需要一个MAC。
现流水线处理,提高电路的执行速度。而本文还采用了开式环 大多数DSP微处理器实现MAC操作都是单指令周期。延时线指一
设计的方法利用流水线技术进一步提高电路执行速度。 组存储器单元,实现在FIR计算中的Z-1延时。环形缓存指一个
特殊的缓存,是首尾相连的。通常由DSP微处理器实现。
二、FIR滤波器的基本结构
FIR滤波器的数学表达式为: 三、分布式算法原理与FIR滤波器设计
1、无符号数的分布式FIR滤波器设计
(1) 基于乘法器结构的FIR设计中乘法运算总是系数一个一个依
式中,N是FIR滤波器的抽头数,x(n)表示第n时刻的输 次相乘的,也就是说有多少阶的FIR滤波器,就需要多少次的乘
法运算。在乘累加结构中由于累加次数与FIR阶数成线性相关,
网络电信 二零一九年四月 45