IIR滤波器DSP实现_第1页
IIR滤波器DSP实现_第2页
IIR滤波器DSP实现_第3页
IIR滤波器DSP实现_第4页
IIR滤波器DSP实现_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IIR滤波器的DSP实现IIR滤波器的DSP实现 IIR滤波器与FIR滤波器相比,具有相位特性差的缺点,但其结构简单、运算量小,具有经济、高效的特点,并且可以用较少的阶数获得很高的选择性。一、IIR滤波器的基本结构01( )()()NMiiiiy nb x nia y niX(n)为输入序列,y(n)为输出序列。0iiiabaFIR和 为滤波器系数。若所有系数 为 ,则为滤波器。 FIR滤波器具有无限长的单位脉冲响应,在结构上存在反馈回路,具有递归性,即IIR滤波器的输出不仅与输入有关,还和过去的输出有关。0112( )( )(1)()(1)(2)()NMy nb x nb x nb x nN

2、a y na y nanM在0初始条件下,进行Z变换,得到1011212( )( )( )( )( )( )( )NNMMY zb X zb z X zbX za z Y za z Y za zY z若N=M,则传递函数为10111( )( )( )1NNNNbb zb zY zH zX za za z上式可写为101111( )NNNNiNNiNib zb zbzzH zCza zazpipizN具有 和 个极点 ,若极点位于单位圆外将导致系统不稳定。1,( )0,1,( ),iiIIRpnh npnh n对于滤波器,系统稳定的条件如下:若当时,系统稳定;若当时,系统不稳定。IIR滤波器的形

3、式1、直接型(也称直接I型)2、标准型(也称直接II型)3、变换型4、级联型5、并联型(一)二阶IIR滤波器 二阶IIR滤波器,又称为基本节,分为直接型、标准型和变换型。对于一个二阶IIR滤波器,其输出可以写成:01212( )( )(1)(2)(1)(2)y nb x nb x nb x na y na y n1、直接型(直接I型)直接I型二阶IIR滤波器 直接I型二阶滤波器还可用如下结果实现2020( )()( )( )()iijjy nbw niw nx nb w nj前向通道:反馈通道:2、标准型(直接II型) 直接II型二阶IIR滤波器的这种结构使用的延迟单元最少,得到了广泛的应用,

4、称之为标准型IIR滤波器3、变换型 与标准型IIR滤波器相比,延迟单元的数目和乘法的次数不变,但只需要三次累加。这种结构最大的优点是内部节点溢出的可能性小,从而得到广泛的应用。(二)级联型IIR滤波器 一个高阶IIR滤波器,可以由多个基本节级联组成,其传递函数可以表示为12( )( )( )( )kH ZCH z HzHz( )iH z式中可以是一阶或二阶的传递函数,其级联型滤波器的结构如图所示:由两个基本节级联的四阶IIR滤波器结构图如下:(三)并联型IIR滤波器 用一阶或二阶基本节并联同样可以实现高阶IIR滤波器,其传递函数可以表示为12( )+( )+( )+( )kH ZC H zHz

5、Hz( )iH z式中可以是一阶或二阶的传递函数,其并联型滤波器的结构如图所示:二、IIR滤波器的设计 IIR滤波器的设计利用模拟滤波器原型,借鉴成熟的模拟滤波器的设计结果进行双线性变换,将模拟滤波器变换成满足预定指标的数字滤波器,即根据模拟设计理论设计出满足要求的传递函数H(s),然后将H(是)变化成傻子滤波器的传递函数H(z)。 设计IIR滤波器的基础是设计模拟滤波器的原型,原型滤波器有:巴特沃思(Butterworth)滤波器,其幅度响应在通带内具有最平特性;切比雪夫(Chebyshev)滤波器,在通带内具有等波纹特性,且阶数小于巴特沃思滤波器;椭圆(Elliptic)滤波器,在通带和阻

6、带内具有等波纹特性,且阶数最小。 将模拟滤波器转换为数字滤波器常用的方法是双线性变换,其作用是完成从s平面到z平面的一个映射。其关系为:1111zszszs双线性变换的基本性质如下: s平面上的jw映射到z平面的单位圆上; s平面的左半平面映射到z平面的单位圆内; s平面的右半平面映射到z平面的单位圆外;考虑到s平面上虚轴映射为z平面的单位圆,令AsjzD代表一个可变的模拟频率。其 平面上相应的数字频率为DjTze/2/2/2/2/2/21()1()DDDDDDDDjTjTjTjTAjTjTjTjTeeeejeeee可得:arctan2DAT( )( )jTDAsjz eH sH z模拟频率和

7、数字频率之间的对应关系为模拟频率和数字频率之间的映射关系如下图010/ 4/ 4/ 2ADsADsss当在之间变化时,在之间变化,为采样频率;当1时,在之间。双线性变换会造成频率失真,通常采用预畸变来补偿频率失真。/111234z =ADAAs szAszHsHH双线性变换设计步骤如下:、选择一个合适的模拟传递函数H(s);、对截止频率或预定的数字频率进行预畸变,并根据公式求得相应的模拟频率、用对H(s)中的频率进行换算,即:H(s)、计算 (z)( )ss/20=1rad /sf =z=1rad /s,1/f0.1s11H(s)=s+121 0.11=arctanarctan22203( )

8、11( )()120AWWAAAs sssBBTTH sH sssDDD例:设计一个低通滤波器,带宽,采样频率10H 。解:根据给定的指标,令=。、选择一个满足带宽条件的低通模拟滤波器,其传递函数为:、根据公式,对进行预畸变,求。、由对进行校正111114( )1( )()()20112119zzssAzzH zsH zHszz、根据公式,求期望的数字滤波器的传递函数,有:三、IIR滤波器的MATLAB设计1、butter函数功能:用于设计Butterworth滤波器语法:b,a=butter(n,Wn); b,a=butter(n,Wn,ftype);说明:butter函数可以设计低通、带通

9、、高通和带阻数字滤波器,其特性可使通带内的幅度响应最大限度地平坦,但会损失截止频率处的下降斜度,使幅度响应衰减较慢。b,a=butter(n,Wn)可以设计截止频率为Wn的n阶低通Butterworth滤波器,其中截止频率Wn应满足0Wn1,Wn=1相当于0.5fs(采样频率)。当Wn=W1,W2时,butter产生一个2n阶的数字带通滤波器,其通带为w1WW2(一)巴特沃思滤波器设计b,a=butter(n,Wn,ftype)可以设计高通或带阻滤波器。当ftype=high时,可以设计截止频率为Wn的高通滤波器,当ftype=stop时,可设计带阻滤波器,此时Wn=W1,W2,阻带为w1WW

10、s时,为高通滤波器,当Wp、Ws为二元矢量时,则为带通或带阻滤波器,此时,Wn也为二元矢量。 利用buttord函数可以得到Butterworth数字滤波器的最小阶数n,并使通带(0,Wp)内的波纹系数小于Rp,阻带(Ws,1)内衰减系数大于Rs。buttord函数还可以得到截止频率Wn,在利用butter函数可以产生满足指定性能的滤波器。例1:设计一个带通IIR滤波器,通带范围100250Hz,带通的波纹系数小于3dB,带外50Hz处的衰减30dB。解:根据给出的滤波器的性能,首先利用buttord函数确定最小阶数n,然后利用butter函数来实现,程序如下:wp=100 250/500;w

11、s=50 300/500;n,wn=buttord(wp,ws,3,30);b,a=butter(n,wn);freqz(b,a,512,1000);b = 0.0011 0 -0.0078 0 0.0235 0 -0.0392 0 0.0392 0 -0.0235 0 0.0078 0 -0.0011a = 1.0000 -4.9274 13.2492 -24.7665 35.6652 -41.2958 39.3815 -31.2358 20.6830 -11.3623 5.1147 -1.8355 0.5032 -0.0955 0.010210111( )( )( )1NNNNbb zb

12、zY zH zX za za z1、cheby1函数功能:用于设计Chebyshev I型滤波器(通带等波纹)语法:b,a=cheby1(n,Rp,Wn); b,a=cheby1(n,Rp,Wn,ftype);说明:cheby1函数可以设计低通、带通、高通和带阻Chebyshev I型数字滤波器,其通带内为等波纹,阻带内为单调。 Chebyshev I型的下降斜度比Chebyshev II型大,当其代价是在通带内波纹较大。b,a=cheby1(n,Rp,Wn)可以设计n阶低通Chebyshev I型数字滤波器,其中Rp用来确定通带内的波纹,Wn为该滤波器的截止频率。当Wn=W1,W2时,che

13、by1函数可产生一个2n阶的数字带通滤波器,其通带w1WW2。b,a=cheby1(n,Rp,Wn,ftype)可用来设计n阶高通或带阻滤波器,其中Rp和Wn同上,ftype的定义与butter函数相同。(二)切比雪夫滤波器设计 切比雪夫(Chebyshev)滤波器分为Chebyshev I型和Chebyshev II型两种类型,分别具有通带等波纹和阻带等波纹性能2、cheby1ord函数 功能:用于选择Chebyshev I型滤波器的阶数 语法:语法:n,Wn=cheby1ord(Wp,Ws,Rp,Rs); 说明:cheby1ord函数可以在给定滤波器性能的情况下,选择Chebyshev I

14、数字滤波器的最小阶数,其中Wp和Ws分别是通带和阻带的截止频率,其值为0Wp(或Ws)1,Rp和Rs分别是通带和阻带的波纹系数和衰减系统。 n,Wn=cheby1ord(Wp,Ws,Rp,Rs)可以得到高通、带通和带阻滤波器的最小阶数。 利用cheby1ord函数,除了可以得到Chebyshev I数字滤波器的最小阶数n外,还可以得到截止频率Wn,再利用cheby1函数可以产生满足指定性能的滤波器,是了不起通带(0,Wp)内的波纹系数小于Rp,阻带(Ws,1)内衰减系数大于Rs。例2:设计一个低通Chebyshec I型滤波器,通带范围0100Hz,通带的波纹3dB,阻带衰减-30dB,数据采

15、样频率为1000Hz。Wp=100/500;Ws=200/500;n,Wn=cheb1ord(Wp,Ws,3,30);b,a=cheby1(n,3,Wn);freqz(b,a,512,1000)解:利用cheb1ord函数和cheby1函数设计滤波器,程序如下:b = 0.0066 0.0198 0.0198 0.0066a = 1.0000 -2.3605 2.1018 -0.68843、cheby2函数功能:用于设计Chebyshev II型滤波器(阻带等波纹)语法:b,a=cheby2(n,Rp,Wn); b,a=cheby2(n,Rp,Wn,ftype);说明:cheby2函数与che

16、by1函数基本相同,只是用cheby2函数设计滤波器,其通带内为单调的,阻带内为等波纹,由Rs指定阻带内的波纹。Cheby2函数可以设计低通、带通、高通和带阻Chebyshev II型数字滤波器4、cheby2ord函数 功能:用于选择Chebyshev II型滤波器的阶数 语法: n,Wn=cheb2ord(Wp,Ws,Rp,Rs); 说明:cheb1ord函数与cheb1函数类似,可以利用该函数确定Chebyshev II数字滤波器的最小阶数和截止频率Wn。例3:设计一个Chebyshec II型带通滤波器,通带范围100250Hz,通带的波纹3dB,带外50Hz处阻带衰减-30dB,数据

17、采样频率为1000Hz。Wp=100 250/500;Ws=50,300/500;n,Wn=cheb2ord(Wp,Ws,3,30);b,a=cheby2(n,3,Wn);freqz(b,a,512,1000)bab = 0.6388 -0.9650 -0.1847 -0.1252 1.2822 -0.1252 -0.1847 -0.9650 0.6388a = 1.0000 -1.8644 0.6070 -0.4181 1.4568 -0.3135 -0.3794 -0.4839 0.4094(三)椭圆滤波器设计1、ellip函数功能:用于设计Elliptic(椭圆)滤波器语法:b,a=el

18、lip(n,Rp,Rs,Wn); b,a=ellip(n, Rp,Rs,Wn,ftype);说明:ellip函数与cheby1、cheby2函数类似,可以设计低通、带通、高通和带阻数字滤波器,参数Rp、Rs分别用来指定通带波纹和阻带波纹,Wn指定滤波器的截止频率,n为滤波器阶数。 与Butterworth和Chebyshev滤波器相比,ellip函数可以得到下降斜度更大、衰减更快的滤波器,当通带和阻带均为等波纹。通常情况下,椭圆滤波器能以最低的阶数实现指定的性能。b,a=ellip(n, Rp,Rs,Wn)可以设计n阶低通或带通滤波器,当Wn=W1,W2时,可设计带通滤波器。b,a=ellip

19、(n, Rp,Rs,Wn,ftype)可设计n阶高通或带阻滤波器。当ftype=high时,可设计截止频率为Wn的高通滤波器;当ftype=stop,且Wn=W1,W2时,可设计带阻滤波器,阻带为w1W EPROM PAGE0 .data : EPROM PAGE0 DX : align(4) DARAM PAGE1 DY : align(4) DARAM PAGE1 DB : align(4) DARAM PAGE1 DA : align(4) DARAM PAGE1 .vectors : VECS PAGE0相应的链接命令文件:(二)高阶IIR滤波器的实现 一个高阶IIR滤波器可以由若干个

20、二阶基本节相级联或并联构成。由于调整每个二阶基本节的系数,只涉及这个二阶基本节的一对极点和零点,不影响其他极点和零点,因此用二阶基本节构成的IIR滤波器便于系统的性能调整,受量化噪声影响小,因而得到广泛的应用。下面以四阶椭圆低通滤波器为例,介绍高阶滤波器的设计方法。先求出四阶椭圆低通滤波器的传递函数H(z)再分解成两个级联的二阶基本节,分别求出系数,保存在iir_coff中循环执行两次二阶基本节,分别求出系数,得到一个滤波后的值。处理的采样点数由K_FRAME_SIZE决定。二阶基本节采用标准型二阶IIR滤波器结构反馈通道: w(n)=x(n)+a1w(n-1)+a2w(n-2)前向通道: y

21、(n)=b0w(n)+b1w(n-1)+b2w(n-2) 由上式对二阶IIR滤波器进行编程,其中乘法-累加运算可采用单操作数指令或双操作数指令,数据和系数可存放在DARAM中。 .mmregs .include “main.inc” iir_table_star .sect “iir_coff” ; 第一个二阶基本节系数 .word -26778 ;a2 .word 29529 ;a1/2,对大于1的系数定标 .word 19381 ; b2 .word -23184 ;b1 .word 19381 ;b0 ; 第一个二阶基本节系数 .word -30479 ;a2 .word 31131 ;

22、a1/2,对大于1的系数定标 .word 11363 ; b2 .word -20735 ;b1 .word 11363 ;b0 iir_table_end iir_coff_table .usect “coff_iir”,16 iir_d .usect “iir_vars”,3*2 iir_y .usect “iir_vars”,1 .def iir_init .def iir_task ; 初始化程序,用于初始化数据缓冲区和系数缓冲区 iir_d .usect “iir_vars”,3*2 iir_y .usect “iir_vars”,1 .sect “iir” iir_init: ST

23、M #iir_coff_table,AR1 ;AR1指向iir_coff_table RPT # K_FRAME_SIZE-1 ;将系数移到数据寄存器 MVPD #iir_table_start,*AR1+1 STM #iir_d,AR2 ;AR2指向iir_d RPTZ A,#5 ;数据初始化 STL A,*AR2+ ; 使w(n)w(n-1)w(n-2) 为0 RET; IIR滤波器处理程序 .sect “iir” iir_task: STM #in_buf,AR3 ;AR3指向采样数据入口 STM #out_buf,AR4 ; AR4指向采样数据出口 STM #K_FRAME_SIZE-

24、1,BRC ;设置采样点的个数 RPTB iir_filter_loop-1 ;由采样点的个数进行滤波 LD *AR3+,8,A ;装载输入数据 iir_filter: STM #iir_d+5,AR2 ;AR2指向w(n)w(n-1)w(n-2) STM #iir_coff_table,AR1 ;AR1指向a2,a1/2,b2,b1,b0 STM #K_BIQUD-1,AR0 ;设定二阶基本节的个数 feedback_path: MAC *AR1+,*AR2-,A ;A=x(n)+a2*w(n-2) MAC *AR1,*AR2,A ;A=x(n)+a2*w(n-2)+a1*w(n-1)/2

25、MAC *AR1+,*AR2-,A ;A=x(n)+a2*w(n-2)+a1*w(n-1) STH A,*AR2+ MAR *AR2+ forward_path: MPY *AR1+,*AR2-,A ;A=b2*w(n-2) MAC *AR1+,*AR2-,A ; A=b2*w(n-2)+b1*w(n-1) DELAY *AR2- ;w(n-2)=w(n-1)eloop: BANZD feedback_path,*AR0- ;二阶节未计算完,则循环 MAC *AR1+,*AR2,A ;A=b2*w(n-2)+b1*w(n-1)+b0*w(n) DELAY *AR2- ;w(n-1)=w(n) STH A,iir_y LD iir_y,2,A ;定标输出数据 STL A,*AR4+ ;存储滤波结果 iir_filter_loop RET .end程序说明:在程序中,AR1指向滤波

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论