直接型FIR滤波器的优化和实现

时间:2022-10-17 05:19:15

摘 要:在许多信息处理过程中,如对信号的过滤、检测、预测等,都要广泛地用到滤波器,数字滤波器是数字信号处理中使用最广泛的一种方法,实现方法主要有IIR滤波器和FIR滤波器两种。本文对直接型的FIR滤波器进行了优化和实现。

关键词:数字信号处理(DSP);滤波器;IIR滤波器;FIR滤波器

中图分类号:TN713文献标识码:B

文章编号:1004-373X(2008)07-103-02オ

Optimization and Realization of Direct-type FIR Filter

REN Ju,CAI Guangjun,LIU Huiying

(Ariation Vocational Technology College,Chengdu,610072,China)

Abstract:Filter is using in many information processing such as filtering,monitoring and expecting.Digital filter is the most popular way in digital signal processing.There are two main ways:IIR filter and FIR filter.Here,we optimize and carry out the FIR filter.

Keywords:Digital Signal Processing(DSP);filter;IIR filter;FIR filter

1 引 言

数字滤波器是数字信号处理中使用最广泛的一种方法,实现方法主要有IIR滤波器(无限冲激响应数字滤波器)和FIR滤波器(有限冲激响应数字滤波器)两种,其中,IIR滤波器需要执行无限数量卷积,能得到较好的幅度特性,其相位特性是非线性的;而FIR滤波器由有限个采样值组成,具有严格的线性相位特性。由于在数据通讯、语音信号处理、图像处理等传输过程中不能有明显的相位失真,而FIR滤波器在满足一定对称条件下可以实现IIR滤波器难以实现的线性相位,因而得到广泛应用。FIR滤波器被称为有限长脉冲响应滤波器,与IIR数字滤波器相对应,他的单位脉冲响应h(n)只有有限个数据点。输入信号经过线性时不变系统输出的过程是一个输入信号与单位脉冲响应进行线性卷积的过程,FIR滤波器的数学表达式为:

И

y(n)=∑[DD(]N-1[]i=0[DD)]h(i)x(n-i)

(1)

И

式中,N是FIR滤波器的抽头数,x(n)表示第n时刻的输入样本;h(i)是FIR滤波器的第i级抽头系数。 普通的直接型FIR滤波器结构如图1所示。

FIR滤波器实质上是一个分节的延迟线,把每一节的输出加权累加,便得到滤波器的输出。对于FIR滤波器,幅度上只需满足以下两个条件之一就能构成线性相位FIR滤波器。

И

h(n)=h(N-1-n)(2)

h(n)=-h(N-1-n)(3)

И

式(2)称为第一类线性相位的幅度条件(偶对称),式(3)称为第二类线性相位的幅度条件(奇对称)。

图1 普通的直接型FIR滤波器结构图

FIR滤波器是由一个“抽头延迟线”的加法器和乘法器的集合构成,每个乘法器的操作数就是一个FIR系数。对每次采样y(n)都要进行K次连续的乘法和(K-1)次加法操作,本文对直接型FIR滤波器进行了优化和实现。

2 FIR滤波器的优化

在实际应用中,为了减少逻辑资源的占有量和提高系统的运行速度,对FIR滤波器需要进行优化处理。本文采用的优化是对表达式进行优化。

对于线性相位因果FIR滤波器,他的系列具有中心对称特性,即h(i)=±h(N-1-i)。令s(i)=x(i) ±x(N-1-i),对于偶对称,代入式(1)可得:

И

y(n)=∑[DD(]N-1[]i=0[DD)]h(i)x(n-i)=∑[DD(]N/2-1[]i=0[DD)]h(i)s(n-i)

(4)

И

3 设计方案

由于FIR滤波器的系数镜像对称,故将线形相位FIR滤波器的流图改造成如图2所示格式。

图2 改进的FIR滤波器结构

以上结构中,每一个乘加单元都是将镜像对称的两个值进行MAC运算。所以我们在实现输入值x[n]的缓冲时,将缓冲设置成两个镜像对称的缓冲器。这样在实现累加时两个buffer可以共用一个指针减计数器,这能简化时序设计的复杂性,同时也就节约了硬件。并且采用用镜像对称buffer,在不额外增加硬件的同时,可以降低一半的时钟频率。虽然增加了一个(24+1)-bit加法器,但是同时也减少了ROM中的计数器。

从上述的原理框图中可以看到,所有的MAC都是规则分布的,是时分复用。

假设x[n]的输入时钟clk的速率为Vx[n]=59 kHz,MAC单元的处理速率为VMAC,若存在VMAC=N2•Vx[n]=56×59 kHz=3.304 MHz,则可以实现MAC单元的复用,这样就将N/2个MAC单元降低为1个,大大节约了硬件。

FIR滤波器的实现框图如图3所示。

图3 FIR滤波器的实现框图

4 ROM-cell实现

由于该FIR滤波器的性能要求极高,在实现时,FIR滤波器的系数非常的多,所以需要大量的存储单元,为了节约空间,采用缩放法(ScalingTechTM)来实现ROM-cell。

先把所有的系数放大2N后再进行量化,将放大后的数进行量化并进行乘法运算,最后将乘法的结果减小2N倍(这对于硬件实现非常容易,只需要将结果右移N位即可)。但是从系数上来观察,发现采用“直接型”FIR滤波器所产生的系数相差非常的大,其动态范围高达105,不宜采用单因子缩放。这里引入一个叫做缩放矩阵和趋一矩阵的概念,记为:缩放矩阵为[WTHX]S[WTBX]r×c,趋一矩阵为[WTHX]T[WTBX]r×t。И

将所有的系数绝对值Cr被1除,将得到的商向下取整得Qr,由于Cr1,再计算P=log2Qr和Cr=Cr×P,这时Cr将满足{|Cr|×2>1,|Cr|

И

[WTHX]S[WTBX]r×c=[WTHX]C[WTBX]r×b×[WTHX]T[WTBX]r×tC0×cう螵C55×c=C0×cう螵C55×c•P0×tう螵P55×t

И

由于|Cr|1,所以只需要用较少的比特来量化他就可以满足精度的要求,试验证明:当c=14时,较精确的满足了要求。再算得t=5,所以一共只需要采用19 b就可以了。这样每个系数就节约了8 b,理论上一共节约了56×8=448 b。

5 MAC-cell实现

MAC-cell是由一个乘法器和一个累加器组成,累加器设计较为简单,也不会占用太多的资源,关键在于乘法器的设计。

在本设计中,由于乘法运算的位数很高,所以必须采用“串行乘法器”来实现其功能。“串行乘法器”在算法上是由一个移位寄存器和一个累加器构成,SR负责进行乘数的移位,而ACC负责将移位的二进制数相加,并把结果保留在寄存器中,以供下次使用。

6 结 语

本文针对现代数字信号处理的快速发展对于数字滤波器设计的要求,对直接型FIR滤波器进行了优化和实现,由于采用高度的时分复用模型,故能采取最少的硬件资源实现高性能FIR滤波器,这对于其他滤波器的设计都具有很好的参考价值。

参 考 文 献

[1][美]John G,Proakis,Dimitris G Manolakis.数字信号处理[M].4版.北京:电子工业出版社,2007.

[2]万国龙.数字信号处理[M].北京:清华大学出版社,2007.

[3]刘海兵,刘雄飞,张德恒.基于FPGA的数字滤波器的设计与实现[J].现代电子技术,2006,29(15):70-71.

[4]Haykin S.Adaptive Filter Theory[M].Prentice Hall,Englewood Cliffs,NJ,1986.

作者简介

任 菊 女,1974年出生,电子科技大学电子工程学院信号与信息处理专业硕士研究生。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:F/V转换器在船模试验水池拖车控制系统中的应用 下一篇:DES加密算法的FPGA实现