高阶IIR滤波器的DSP实现
时间:2026-01-21
时间:2026-01-21
No.4Aug.,
2006
微 处 理 机
MICROPROCESSORS
第4期
2006年8月
高阶IIR滤波器的DSP实现
汪 洋,陈元清,高 俊
1
2
1
(1.海军工程大学电子工程学院,武汉430033;2.91919部队,黄岗438000)
摘 要:IIR滤波器可以用较少的阶数获得很高的频率选择特性;但是用定点器件实现时,在
有限的精度运算中,可能出现不稳定现象和发生溢出。主要阐述了在′C54X定点DSP芯片上如何进行精度扩展从而获得较高的频率选择性以及如何进行参数的定标从而确保在定点DSP运算过程中不发生溢出现象。
关键词:无限冲击响应滤波器(IIR);DSP;精度扩展;中图分类号:TN391 文献标识码:B :10022279-04
ImplementationoftheHighrriDSP
,N,Jun
1
1
(1.NofW430033,China;2.Thetroopof91919,Huanggang438000,China)
impulseresponsefiltercangetverygoodfrequencycharacterofchoicewithalittleofnumber.Butitwillbeoccurofinstabilityandoverflowasresultofoperationofthefinitepreci2sion.inthepaper,wewillintroduceamethodofscalingfactortogaintheeffectofoverflowavoidanceandextendedprecisiontogainthebetterchoiceofthefrequency.
Keywords:IIR(theinfiniteimpulseresponsefilter);DSP;ExtendedPrecision;ScalingFactor
1 概 述
IIR滤波器可以用较少的阶数获得很高的频率
选择特性,但是在用定点运算实现递归结构的IIR
数字滤波器时,由于精度有限,在对乘积结果进行截尾?舍入处理后,可能出现不稳定现象,如极环震荡现象。在16位的定点DSP器件上实现IIR滤波器,未进行精度扩展时,通频带带外信号抑制程度的极限大约为90.3dB,因此,如若对带外信号进行较高程度的抑制,在IIR滤波器的定点DSP系统实现过程中,精度扩展成为一种十分有效的手段。而且,在定点DSP执行迭代(如相关、卷积)运算时,可能会发生数据溢出现象;所以对输入数据和滤波器系数进行定标也是十分必要的。
的系数变化特别敏感,因而滤波器系数由于量化误差引起的微小变化,有可能对滤波器的的频率特性产生很大的影响。特别是在单位圆内且非常靠近单位圆边界的极点,如果由于滤波器系数的量化误差,而使这些极点跑到单位圆外时,滤波器会失去稳定性。
3 设计方案
在本系统中,要设计一个通带截止频率为fp=[23.5,26.5]Hz,阻带截止频率为fs=[12.5,50]Hz;通带带内波动为Rp=3dB,阻带带内波动为Rs=100dB的带通IIR滤波器;其中模拟信号的采样
频率是Fs=200Hz。因此IIR滤波器的数字域指标
π,阻带截止频率Ws=是:通带截止频率Wp=2.35
π。该IIR滤波器频率响应曲线如图1所示
。2.65
2 基本原理
无限冲激响应(IIR)滤波器的脉冲传递函数可以表达为:H(z)=
i=0
NM
∑biz
i=0
-i
1-∑aiz
-i
(1)
上式具有M个零点和N个极点。如果极点位于单位圆外会导致系统不稳定,对于级联型的IIR滤波器来说,它们的零点和极点的位置对于滤波器
作者简介:汪洋(1981-),男,湖北浠水人,硕士研究生,主研方向:扩跳频通信。收稿日期:2005-06-15
图1 频率响应曲线
4
期汪洋等:高阶IIR滤波器的DSP实现
17
利用Matlab计算滤波器参数得到该IIR滤波器的二阶二级级联传递函数表达式为:
H(z)=g1×H1(z)×H2(z)=1.7226×10
-1
-2
-5
×
-1
-2
-1-2-1-2×
1-1.3754z+0.98037z1-1.4279z+0.98108z-1-2-1-2
1-1.3443z+0.99175z1-1.475z+0.99245z
(2)
-1
-2
-1
-2
3.1 高阶IIR滤波器的实现
一个高阶IIR滤波器可以分解成若干个二阶基本节相级联。由于调整每一个二阶基本节的系数,只涉及到这个二阶基本节的一对极点和零点,不影响其他零、极点,因此便于调整系统的性能。此外,由于字长有限,每个二阶基本节运算后都会带来一定的误差,合理安排各二阶基本节的前后次序,可以优化系统的精度。如图2所示的八阶IIR滤波器由
四个二阶节级联而成
。
IIR3.2 ‖h‖c=Max|H(e
Nn=0
πfT2
)|(4)(5)
在定点,滤波器系数、
中间变量和输出数据都有可能会发生溢出,应该注意保证滤波器的系数和输入数据既在合理的动态范围内而又不会溢出。因此,在用定点DSP实现滤波器时,定标是一个很重要的任务。一种典型的范围就是从-1到+0.9999...之间。对于一个16位定点DSP的一个16位字,它采用的是Q15格式,即一个最高位是符号位,剩下的15位表示小数部分。进行精度扩展后,用双字节表示操作数;采用的是Q31格式,即一个最高位是符号位,剩下的31位表示小数部分。在Q31格式下,所有要存入存储空间的滤波器系数及变量必须定标,即调整为小数。首先,定标变量和系数时,应保证它们得到最大动态范围而且在此范围内又不会溢出。其次,对于Q31格式的数据,两个数做乘法是不会引起溢出的,只有在做加法时才可能引起溢出。
下面就以2阶2级级联IIR滤波器转置型结构为例说明定标方法。3.2.1 输入数据的定标
由流程图2可知,每个二阶节的特点是先增益后衰减,因此溢出的情况只可能发生在四处节点上,即d1,d2,d3,d4处,见图3。用Matlab来分析未定标之前加法节点———d1,d2,d3,d4处的溢出情况(输入为动态范围在(-1,1)上均匀分布的一维随机数组,纵坐标表示该150个输入样点在节点d1,d2,d3,d4处对应的数值)
现在来计算定标参数,通常是使用下列三种方法来估算定标 …… 此处隐藏:4560字,全部文档内容请下载后查看。喜欢就下载吧 ……