APP下载

基于FPGA的IIR数字滤波器的设计及测试分析

2014-08-03魏运锋谈卿瑕赵晓丹

化工自动化及仪表 2014年7期
关键词:乘法器正弦二阶

韩 建 魏运锋 谈卿瑕 赵晓丹

(1.东北石油大学电子科学学院,黑龙江 大庆 163318;2.大庆油田公司,黑龙江 大庆 163318)

数字滤波器主要有无限冲激响应数字滤波器(Infinite Impulse Response Digital Filter,IIR数字滤波器)和有限冲激响应数字滤波器(Finite Impulse Response Digital Filter,FIR数字滤波器)[1]。与FIR数字滤波器相比,要实现同样的衰减特性,IIR数字滤波器的阶数比FIR滤波器要低,通常也消耗较少的硬件资源,对于不要求线性相位的场合,IIR滤波器则更为适合[2]。

笔者采用FPGA技术,应用硬件描述语言实现IIR数字滤波器的设计。基于其串联网络结构的特点,先实现低阶数字滤波器,再串联实现高阶数字滤波器。根据设计的数字滤波器系数,结合研究算法,在Quartus II软件环境下,对程序进行了仿真,仿真结果初步说明了算法程序的有效性。

1 IIR滤波器的算法实现①

实现高阶的IIR数字滤波器,可通过实现低阶的IIR数字滤波器,然后串联得到高阶IIR数字滤波器的方法。笔者设计是六阶IIR数字滤波器,要实现该滤波器,可根据系数先实现二阶IIR数字滤波器[3]。一个二阶的IIR滤波器的系统函数如下:

为了编程方便,把a0化为1,并且采用二阶IIR滤波器的转置网络结构,如图1所示。

图1 二阶IIR滤波器的转置网络结构

1.1 数制的规定

笔者实现IIR数字滤波器采用定点数制。为了避免计算中数据溢出和数据截短造成的计算错误,对数据的表示和处理进行了如下规定。

输入和输出数据用17位定点数表示,最高位为符号位,最后4位为小数部分,中间的12位为整数部分[4]。

系数用14位定点数来表示,由于最小量化单位为1/4096,定点数的格式是最高位为符号位,接下来一位为整数位,剩下的12位为小数位,该格式可以表示的数的范围是-2~2。

运算过程中需要将系数和数据相乘,两个不同格式定点数相乘会发生小数点移位。因此运算过程中的数据用30位定点数表示,格式为最高位为符号位,接下来的13位为整数位,剩下16位为小数位。

反馈数据与输入、输出数据格式相同。反馈数据是通过运算过程中的数据截短而来的,反馈数据取运算中间数据的符号位和第28位到13位组成[5]。如需实现其他指标的数字滤波器,数量表示可以灵活调整。

1.2 滤波器的电路结构

IIR滤波器由有符号乘法器、延时器和加法器组成,其电路结构如图2所示。

图2 IIR滤波器的硬件结构

有符号乘法器。有符号乘法器乘数必须为原码,且由3个部分组成。首先是无符号的乘法器,用于计算输入乘数除开符号位的部分的乘积。第二部分是将两个乘数的符号位异或,得到输出数的符号位。最后一个部分是把前两部分的输出合

并转换为补码[6]。根据数制规定,图中的5个乘法器输入数据分别为述的17位和14位定点数,输出为30位定点数。

有符号加法器。有符号加法器的两个加数都为补码。这些加法器的输入、输出均为30位。

延时器。延时器是30位的上升沿D触发器。

2 六阶IIR数字滤波器的实现

实现六阶IIR数字滤波器,可将3个二阶滤波器串联在一起。但是两个二阶滤波器之间要接一个转换器。文中模拟信号量化数据均为8位,所以在处理前,先把这些数据转换为规定的17位定点数。由于二阶IIR滤波器的输入、输出均为17位定点数补码,而有符号乘法器要对源码进行运算,因此两个二阶滤波器用一转换器连接,其作用是将补码转换为源码,以便下个滤波器的乘法器使用。另外一方面,处理结束后,送入D/A的数据只能有8位,所以在最后一个二阶滤波器的输出数据须转换为8位[7]。六阶IIR滤波器的实现如图3所示。

图3 六阶IIR滤波器的实现框图

3 IIR滤波器的测试分析

根据FDAtool所设计的IIR数字滤波器系数,用Verilog HDL结合算法编写数字滤波器IIR程序。以下是对实现的IIR滤波器的仿真,输入是正弦信号,频率分别100、200、2 000、4 000、5 000Hz。IIR滤波器指标为六阶Butterworth带通滤波器,采样频率为44 100Hz,下截止频率为200Hz,上截止频率为4 000Hz。仿真结果如图4所示。

a. f=100Hz

b. f=200Hz

c. f=2000Hz

d. f=4000Hz

e. f=5000Hz

图4中,输入和输出波形均符合正弦函数。输入正弦频率为100Hz和5 000Hz时,输出波形均有明显的衰减,输入正弦频率为200Hz和4 000Hz时,输出波形有轻微衰减,输入正弦频率为2 000Hz时基本无衰减,这说明滤波器已经显现出了带通特性。表1列出了滤波器输入、输出波形的幅度和衰减与FDAtool所设计出的理论值的比较。

表1 IIR滤波器仿真与理论设计幅度数据的比较

从表1可以看出,用硬件描述语言实现的滤波器和FDAtool设计出的滤波器的衰减基本一致,只存在微小的偏差。这种偏差是由滤波器系数和输入数据的有限字长效应造成的,但是没有严重影响。仿真初步说明算法和程序均有效。

4 结束语

数字滤波器是现代数字信号处理系统的重要组成部分,IIR数字滤波器以其成本低、信号延迟小的特点得到了广泛的应用。笔者以FPGA为硬件平台完成了IIR数字滤波器的实现和测试分析,通过测试分析进一步证明了算法和程序的有效性,为IIR数字滤波器的发展前景和研究方向打下了基础。

猜你喜欢

乘法器正弦二阶
正弦、余弦定理的应用
一种低开销的近似乘法器设计
一类二阶迭代泛函微分方程的周期解
一类二阶中立随机偏微分方程的吸引集和拟不变集
二阶线性微分方程的解法
“美”在二倍角正弦公式中的应用
一类二阶中立随机偏微分方程的吸引集和拟不变集
基于FPGA的流水线单精度浮点数乘法器设计*
正弦、余弦定理在三角形中的应用
基于VSG的正弦锁定技术研究