IIR滤波器在DSP芯片上的实现及主程序.doc
文本预览下载声明
数字滤波器设计与实现一直是信号处理领域的重要研究课题。常用的数字滤波器有FIR滤波器和IIR滤波器,其中,IIR数字滤波器因具有结构简单、占用存储空间少、运算速度快、较高的计算精度和能够用较低的阶数实现较好的选频特性等特点得到了广泛应用。DSP芯片有适合于数字信号处理的软件资源和硬件资源,是实现数字信号处理的重要途径。本文主要介绍应用MATLAB设计IIR数字滤波器的方法,并探讨基于TI公司TMS320C54X DSP的IIR数字滤波系统的实现。
二、IIR滤波器的基本结构
IIR滤波器由于它的脉冲响应序列是无限长的,故称为无限脉冲响应滤波器。IIR滤波器系统函数的极点可以位于单位元内的任何地方,因此可以用较低的阶数获得较高的选择性,所用存储单元少,经济效益高。但这些是以相位的非线性为代价的,选择性越好,相位非线性越严重。
IIR滤波器差分方程: ??????????? (2.1)
IIR滤波器的系统函数:
IIR滤波器的网络结构主要有:直接型(也称直接Ⅰ型)、标准型(也称直接Ⅱ型)、级联型和并联型,下面是二阶IIR滤波器的标准型结构。从图可以看出,左右两组延迟单元可以重叠,由于这种结构所使用的延迟单元最少(只有2个),因此得到了广泛地应用,故称之为标准型IIR滤波器。
z-1
z-1
b0
b1
b2
-a1
-a2
x(n)
y(n)
w(n)
+
+
+
+
三、IIR数字滤波器的的设计
(一)IIR数字滤波器的设计方法
IIR滤波器计方法有直接法和间接法。由于模拟滤波器的设计方法已经非常成熟,不仅有完整的公式、完善的图标和曲线可供查阅,而且还有一些优良的滤波器类型可供使用。间接法就是借助于模拟滤波器的设计方法进行的。基本思路是:根据实际要求的数字滤波器的的性能指标先设计模拟滤波器得到传输函数 ,然后将 按某种方法转换成数字滤波器的系统函数 。
实现系统传递函数 从S域至Z域映射工程上常用脉冲响应不变和双线性变换两种方法。脉冲响应不变法一般会产生频谱混叠现象,对于高通和带阻滤波器不适合,本文中采用双线性不变法。
(二)双线性变换法
由于S平面和Z平面的单值双线性映射关系为
???????????? ?????????????????(3.1)
式中, 为采样周期。因此,实际中线利用MATLAB设计得到模拟滤波器的系统函数 ,将式(2.1)代入 即可得到数字滤波器的系统函数 ,即
????????????????? 式(3.2)
在双线性变换中,模拟角频率 和数字角频率 存在下面关系:
?????????????????????? 式(3.3)
可见, 和 之间的变换是非线性的。双线性变换法克服了脉冲响应不变法的频谱混叠问题,其幅值逼近程度好,也可适用于高通、带阻等各种滤波器设计。但是,由于 与 之间是非线性关系,这将直接影响数字滤波器频率响应。
(三)MATLAB中IIR低通数字滤波器的设计方法
MATLAB中利用原型模拟滤波器设计IIR低通数字滤波器的方法为:①根据给定的性能指标和方法首先对设计性能指标中的频率指标进行转换,转换后的频率指标作为模拟低通滤波器原型设计性能指标;②调用相应的MATLAB函数设计模拟低通滤波器,估计模拟滤波器最小阶数和边界频率;③由模拟低通原型经频率变换获得相应的过度模拟滤波器;④采用双线性变换将相应类型的模拟滤波器转换为数字滤波器。
例:用双线性变换法设计一个巴特沃斯低通数字滤波器,性能指标如下:通带截止频率 rad/s,阻带截止频率 rad/s,通带波纹Rp小于3dB,阻带衰减大于15dB,采样频率 。
MATLAB程序:
wp=2000*2*pi;ws=3000*2*pi;Rp=3;Rs=15;
Nn=512;Fs=10000;
[N,Wn]=buttord(wp,ws,Rp,Rs,s)
[z,p,k]=buttap(N);
[Bp,Ap]=zp2tf(z,p,k);
[b,a]=lp2lp(Bp,Ap,Wn);
[bz,az]=bilinear(b,a,Fs);??????? %用双线性变换法将模拟滤波器转换成数字滤波器
[h,w]=freqz(bz,az,Nn,Fs);????? %数字滤波器频率响应
subplot(2,2,2); zplane(bz,az);%pzmap(b,a);title(系统零极点图);
Hmag=abs(h);?????????????? %系统频率响应的模
Hpah=angle(h);????????????? %系统频率响应的相位
RHpah=unwrap(Hpah);??????? %展开freqz产生的频率w
……省略绘图程序
程序运行结果结果:
四、IIR滤波器的DSP实现方法
(一)
显示全部