数字滤波器的频率响应函数课件

上传人:Xgjmqtw****nqtwad... 文档编号:243097617 上传时间:2024-09-15 格式:PPT 页数:40 大小:2.63MB
返回 下载 相关 举报
数字滤波器的频率响应函数课件_第1页
第1页 / 共40页
数字滤波器的频率响应函数课件_第2页
第2页 / 共40页
数字滤波器的频率响应函数课件_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,4,章,MATLAB,在信号处理中的应用,第,4,章,MATLAB,在信号处理中的应用,4.1,信号及其表示,4.2,信号的基本运算,4.3,信号的能量和功率,4.4,线性时不变系统,4.5,线性时不变系统的响应,4.6,线性时不变系统的频率响应,4.7,傅里叶,(Fourier),变换,4.8 IIR,数字滤波器的设计方法,4.9 FIR,数字滤波器设计,第,4,章,MATLAB,在信号处理中的应用,4.1,信号及其表示,4.1.1,连续时间信号的表示,连续时间信号:,时间变化连续。如,y=x(t),离散时间信号,(,序列,),:,时间离散,如,x(nT)=x(t)|,t=nT,.,p,i,p,i,p,x,?,?,?,?,?,?,?,?,?,?,x,4.1.2,工具箱中的信号产生函数,函数名,功能,函数名,功能,sawtooth,产生锯齿波或三角波信号,pulstran,产生冲激串,square,产生方波信号,rectpule,产生非周期的方波信号,sinc,产生,sinc,函数波形,tripuls,产生非周期的三角波信号,chirp,产生调频余弦信号,diric,产生,Dirichlet,或周期,sinc,函数,gauspuls,产生高斯正弦脉冲信号,gmonopuls,产生高斯单脉冲信号,vco,电压控制振荡器,第,4,章,MATLAB,在信号处理中的应用,4.1.3,离散时间信号的表示,在,MATLAB,中,离散时间信号,x(n),的表示:需用一个向量,x,表示序列幅,值,用另一个等长的定位时间变量,n,,才能完整地表示一个序列。,例,4-10,绘制离散时间信号的棒状图。其中,x(-1)=-1,x(0)=1,x(1)=2,x(2)=1,x(3)=0,x(4)=-1,。,MATLAB,源程序为:,n=-3:5;,%,定位时间变量,x=0,0,-1,1,2,1,-1,0,0;,stem(n,x);,grid;,%,绘制棒状图,line(-3,5,0,0);,%,画,x,轴线,xlabel(n);,ylabel(xn),运行结果如图,4.11,所示。,图,4.11,离散时间信号图形,第,4,章,MATLAB,在信号处理中的应用,4.1.4,几种常用离散时间信号的表示,1,单位脉冲序列,直接实现:,x=zeros(1,N); x(1,n,0,)=1;,?,?,?,?,?,?,?,?,0,0,0,0,1,),(,n,n,n,n,n,n,2,单位阶跃序列,?,?,?,?,?,?,?,0,0,0,0,1,),(,n,n,n,n,n,n,u,直接实现:,n=ns:nf; x=(n-n0)=0;,第,4,章,MATLAB,在信号处理中的应用,3,实指数序列,n,a,n,x,?,),(,n,?,R,a,?,直接实现:,n=ns:nf; x=a.n;,4,复指数序列,n,j,e,n,x,),(,),(,?,?,?,?,直接实现:,n=ns:nf; x=exp(sigema+jw)*n);,5,正,(,余,),弦序列,),cos(,),(,?,?,?,?,n,n,x,直接实现:,n=ns:nf; x=cos(w*n+sita);,第,4,章,MATLAB,在信号处理中的应用,4.2,信号的基本运算,4.2.1,信号的相加与相乘,y(n)=x1(n)+x2(n) y(n)=x1(n),x2(n),MATLAB,实现:,y=x1+x2; y=x1.*x2,4.2.2,序列移位与周期延拓运算,序列移位:,y(n)=x(n-m),。,MATLAB,实现:,y=x;,ny=nx-m,序列周期延拓:,y(n)=x(n)M,,,MATLAB,实现:,ny=nxs:nxf,;,y=x(mod(ny,M)+1),4.2.3,序列翻褶与序列累加运算,序列翻褶:,y(n)=x(-n),。,MATLAB,可实现,:,y=fliplr(x),序列累加的数学描述为:,?,?,?,n,n,i,s,i,x,n,y,),(,),(,MATLAB,实现:,y=cumsum(x),第,4,章,MATLAB,在信号处理中的应用,4.2.4,两序列的卷积运算,两序列卷积运算:,?,?,?,?,?,m,m,n,x,m,x,n,x,n,x,n,y,),(,),(,),(,),(,),(,2,1,2,1,MATLAB,实现:,y=conv(x1,x2),。序列,x1(n),和,x2(n),必须长度有限。,4.2.5,两序列的相关运算,两序列相关运算:,?,?,?,n,m,n,x,n,x,m,y,),(,),(,),(,2,1,。,MATLAB,实现:,y=xcorr(x1,x2),。,第,4,章,MATLAB,在信号处理中的应用,4.3,信号的能量和功率,?,?,?,?,N,n,n,x,n,x,E,0,*,?,?,?,?,1,0,2,1,N,n,n,x,N,P,1.,信号能量,数字定义:,MATLAB,实现,: E=sum(x.*conj(x);,或,E=sum(abs(x).2);,数字定义:,2.,信号功率,MATLAB,实现,:,P=sum(x.*conj(x)/N;,或,E=sum(abs(x).2)/N;,第,4,章,MATLAB,在信号处理中的应用,4.4,线性时不变系统,4.4.1,系统的描述,1,常系数线性微分,/,差分方程,1,(,),(,),(,),0,0,(,),(,),(,),N,M,N,i,i,i,i,i,i,y,t,a,y,t,b,x,t,?,?,?,?,?,?,?,2,系统传递函数,1,1,1,0,1,1,1,0,(,),(,),(,),M,M,M,M,N,N,N,b,s,b,s,b,s,b,Y,s,H,s,X,s,s,a,s,a,s,a,?,?,?,?,?,?,?,?,?,?,?,?,?,?,L,L,N,M,M,M,z,a,z,a,a,z,b,z,b,b,z,X,z,Y,z,H,?,?,?,?,?,?,?,?,?,?,?,?,?,?,1,1,0,1,1,0,),(,),(,),(,3,零极点增益模型,连续系统:,连续系统:,1,2,1,2,(,)(,),(,),(,),(,)(,),(,),M,N,s,q,s,q,s,q,H,s,k,s,p,s,p,s,p,?,?,?,?,?,?,?,L,L,离散系统:,1,2,1,2,(,)(,),(,),(,),(,)(,),(,),M,N,z,q,z,q,z,q,H,z,k,z,p,z,p,z,p,?,?,?,?,?,?,?,L,L,离散系统:,第,4,章,MATLAB,在信号处理中的应用,4,极点留数模型,离散系统:,连续系统:,N,N,p,s,r,p,s,r,p,s,r,s,H,?,?,?,?,?,?,?,?,2,2,1,1,),(,1,1,2,2,1,1,1,1,1,1,),(,?,?,?,?,?,?,?,?,?,?,z,p,r,z,p,r,z,p,r,z,H,N,N,?,5,二次分式模型,2,0,1,2,2,1,1,2,(,),1,L,k,k,k,k,k,k,b,b,s,b,s,H,s,g,a,s,a,s,?,?,?,?,?,?,?,连续系统:,离散系统:,1,2,0,1,2,1,2,1,1,2,(,),1,L,k,k,k,k,k,k,b,b,z,b,z,H,z,g,a,z,a,z,?,?,?,?,?,?,?,?,?,?,?,6,状态空间模型,?,?,?,?,?,?,?,Du,Cx,y,Bu,Ax,x,1,x,n,A,x,n,B,u,n,y,n,C,x,n,D,u,n,?,?,?,?,?,?,?,?,?,?,?,?,连续系统:,离散系统:,第,4,章,MATLAB,在信号处理中的应用,4.4.2,系统模型的转换函数,在,MATLAB,中,用,sos,、,ss,、,tf,、,zp,分别表示,二次分式模型,、,状态空间,模型,、,传递函数模型,和,零极点增益模型,。其中,sos,表示二次分式,,g,为比,例系数,,sos,为,L,6,的矩阵,即,01,11,21,11,21,0,1,2,1,2,1,1,L,L,L,L,L,b,b,b,a,a,sos,b,b,b,a,a,?,?,?,?,?,?,?,?,?,?,?,M,M,M,M,M,M,(,4,15,),1,ss2tf,函数,格式:,num,den=ss2tf(A,B,C,D,iu),功能:将指定输入量,iu,的线性系统,(A,B,C,D),转换为传递函数模型,num,den,。,2,zp2tf,函数,格式:,num,den=zp2tf(z,p,k),功能:将给定系统的零极点增益模型转换为传递函数模型,,z,、,p,、,k,分别为零,点列向量、极点列向量和增益系数。,第,4,章,MATLAB,在信号处理中的应用,线性系统模型的变换函数,函数名,功能说明,函数名,功能说明,ss2tf,状态空间模型转换为传,递函数模型,zp2tf,零极点增益模型转换为传递,函数模型,ss2zp,状态空间模型转换为零,极点增益模型,zp2ss,零极点增益模型转换为状态,空间模型,ss2sos,状态空间模型转换为二,次分式模型,zp2sos,零极点增益模型转换为二次,分式模型,tf2ss,传递函数模型转换为状,态空间模型,sos2tf,二次分式模型转换为传递函数,模型,tf2zp,传递函数模型转换为零,极点增益模型,sos2zp,二次分式模型转换为零极点,增益模型,tf2sos,传递函数模型转换为二,次分式模型,sos2ss,二次分式模型转换为状态空间,模型,第,4,章,MATLAB,在信号处理中的应用,例,4-18,求离散时间系统,2,1,1,4,.,0,1,3,2,),(,?,?,?,?,?,?,?,z,z,z,z,H,的零、极点向量和增益系数。,在命令窗口输入:,num=2,3;,den=1,0.4,1;,num,den=eqtflength(num,den);,%,使长度相等,z,p,k=tf2zp(num,den),屏幕显示为,z,=,0,-1.5000,p,=,-0.2000,+,0.9798i,-0.2000,-,0.9798i,k,=,2,第,4,章,MATLAB,在信号处理中的应用,4.4.3,系统互联与系统结构,MATLAB,实现函数,series( ),格式:,A,B,C,D=series(A1,B1,C1,D1,A2,B2,C2,D2),或,num,den=series(num1,den1,num2,den2),将系统,1,、系统,2,级联,可得到级联连接的传递函数形式为:,),(,2,),(,1,),(,2,),(,1,),(,),(,),(,),(,),(,2,1,s,den,s,den,s,num,s,num,s,H,s,H,s,den,s,num,s,H,?,?,?,1.,系统的级联,第,4,章,MATLAB,在信号处理中的应用,MATLAB,实现函数,parallel( ),格式:,A,B,C,D=parallel(A1,B1,C1,D1,A2,B2,C2,D2),或,num,den=parallel(num1,den1,num2,den2),),(,2,),(,1,),(,1,),(,2,),(,2,),(,1,),(,),(,),(,),(,),(,2,1,s,den,s,den,s,den,s,num,s,den,s,num,s,H,s,H,s,den,s,num,s,H,?,?,?,?,?,2.,系统的并联,将系统,1,、系统,2,并联,可得到并联连接的传递函数形式为:,3.,两个系统的反馈连接,函数,feedback,格式:,A,B,C,D=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign),或,num,den=feedback(num1,den1,num2,den2,sign),将系统,1,和系统,2,进行反馈连接,,sign,表示反馈方式,(,默认值为,-1),;,当,sig=+1,时表示正反馈;当,sig=-1,时表示负反馈。,第,4,章,MATLAB,在信号处理中的应用,例,4-19,求两个单输入单输出子系统,1,1,),(,1,?,?,s,s,H,2,2,),(,2,?,?,s,s,H,的级联、并联和反馈后系统的传递函数。,MATLAB,源程序为:,num1=1;,den1=1,1;,%,系统,1,num2=2;,den2=1,2;,%,系统,2,nums,dens=series(num1,den1,num2,den2),%,实现两个系统级联,nump,denp=parallel(num1,den1,num2,den2),%,实现两个系统并联,numf,denf=feedback(num1,den1,num2,den2),%,实现两个系统反馈,程序运行结果为,:,nums,=,0,0,2,;,dens,=,1,3,2,nump,=,0,3,4,;,denp,=,1,3,2,numf,=,0,1,2,;,denf,=,1,3,4,因此,各系统的传递函数分别为:,2,3,2,2,?,?,s,s,2,3,4,3,2,?,?,?,s,s,s,2,3,2,2,?,?,?,s,s,s,第,4,章,MATLAB,在信号处理中的应用,4.5,线性时不变系统的响应,4.5.1,线性时不变系统的时域响应,1,连续,LTI,系统的响应,2,离散,LTI,系统的响应,?,?,?,?,?,?,?,?,?,?,?,?,?,d,t,h,x,t,h,t,x,t,x,T,t,y,),(,),(,),(,*,),(,),(,),(,用,MATLAB,中的卷积函数,conv( ),来实现。,?,?,?,?,?,?,?,?,m,m,n,h,m,x,n,h,n,x,n,y,),(,),(,),(,),(,),(,用,MATLAB,中的卷积函数,conv( ),来实现。,第,4,章,MATLAB,在信号处理中的应用,格式:,y,x=lsim(a,b,c,d,u,t),功能:返回连续,LTI,系统,(2),对任意输入的离散,LTI,系统响应函数,dlsim( ),格式:,y,x=dlsim(a,b,c,d,u),功能:返回离散,LTI,系统,(,),(,),(,),(,),(,),(,),x,t,a,x,t,b,u,t,y,t,c,x,t,d,u,t,?,?,?,?,?,?,?,?,?,?,?,对任意输入时系统的输出响应,y,和状态记录,x,,其中,u,给出每个输入的时序列,一般,情况下,u,为一个矩阵;,t,用于指定仿真的时间轴,它应为等间隔,。,1,x,n,ax,n,bu,n,y,n,cx,n,du,n,?,?,?,?,?,?,?,?,对输入序列,u,的响应,y,和状态记录,x,。,3,时域响应函数,(1),对任意输入的连续,LTI,系统响应函数,lsim( ),第,4,章,MATLAB,在信号处理中的应用,4.5.2 LTI,系统的单位冲激响应,1.,求连续,LTI,系统的单位冲激响应函数,impulse( ),格式:,Y,T = impulse(sys),或,impulse(sys),功能:返回系统的响应,Y,和时间向量,T,,自动选择仿真的时间范围。其中,sys,可为,系统传递函数、零极增益模型或状态空间模型。,2.,求离散系统的单位冲激响应函数,dimpulse( ),格式:,y,x=dimpulse(num,den),功能:返回项式传递函数,的单位冲激响应,y,向量和时间状态历史记录,x,向量。,(,),(,),/,(,),g,z,num,z,den,z,?,第,4,章,MATLAB,在信号处理中的应用,4.5.3,时域响应的其它函数,1.,求连续,LTI,系统的零输入响应函数,initial(,),格式:,y,t,x=initial(a,b,c,d,x0),功能:计算出连续时间,LTI,系统由于初始状态,x0,所引起的零输入响应,y,。其中,x,为状态,记录,,t,为仿真所用的采样时间向量。,2.,求离散系统的零输入响应函数,dinitial(,),格式:,y,x,n=dinitial(a,b,c,d,x0),功能:计算离散时间,LTI,系统由初始状态,x0,所引起的零输入响应,y,和状态响应响应,x,,,取样点数由函数自动选取。,n,为仿真所用的点数。,3.,求连续系统的单位阶跃响应函数,step( ),格式:,Y,T = step(sys),功能:返回系统的单位阶跃响应,Y,和仿真所用的时间向量,T,,自动选择仿真的时间范,围。其中,sys,可为系统传递函数,(TF),、零极增益模型,(ZPK),或状态空间模型,(SS),。,4.,求离散系统的单位阶跃响应函数,dstep( ),格式:,y,x= dstep (num,den),功能:返回多项式传递函数,G(z)=num(z)/den(z),表示的系统单位阶跃响应。,第,4,章,MATLAB,在信号处理中的应用,4.6,线性时不变系统的频率响应,1,求模拟滤波器,Ha,(,s,),的频率响应函数,freqs(,),格式:,H,freqs(B,A,W),功能:计算由向量,W(rad/s),指定的频率点上模拟滤器系统函数,H,a,(,s,),的频率响,应,H,a,(j,),,结果存于,H,向量中。,例,4-31,已知某模拟滤波器的系统函数,1,6131,.,2,4142,.,3,6131,.,2,1,),(,2,3,4,?,?,?,?,?,s,s,s,s,s,H,a,求该模拟滤波器的频率响应。,MATLAB,源程序如下。,B=1;A=1,2.6131,3.4142,2.6131,1;,W=0:0.1:2*pi*5;,freqs(B,A,W),图,4.30,模拟滤波器的频率响应,第,4,章,MATLAB,在信号处理中的应用,例,4-32,已知某滤波器的系统函数为,8,1,),(,?,?,?,z,z,H,求该滤波器的频率响应。,MATLAB,源程序为:,B=1,0,0,0,0,0,0,0,1;,A=1;,freqz(B,A),该程序运行所绘出的幅频与,相频性曲线如图,4.31,所示。,图,4.31,滤波器幅度和相位曲线,2,求数字滤波器,H,(,z,),的频率响应函数,freqz( ),格式:,H=freqz(B,A,W),功能:计算由向量,W(rad),指定的数字频率点上,(,通常指在,H(z),的频率响应,H(e,jw,),。,第,4,章,MATLAB,在信号处理中的应用,3,滤波函数,filter,格式:,y=filter(B,A,x),功能:对向量,x,中的数据进行滤波处理,即差分方程求解,产生输出序列向量,y,。,B,和,A,分别为数字滤波器系统函数,H(z),的分子和分母多项式系数向量。,例,4-33,设系统差分方程为,),(,),1,(,8,.,0,),(,n,x,n,y,n,y,?,?,?,),(,8,.,0,),(,32,n,R,n,x,n,?,MATLAB,源程序为:,B=1; A=1,-0.8;,N=0:31; x=0.8.n;,y=filter(B,A,x);,subplot(2,1,1);stem(x),subplot(2,1,2);stem(y),该程序运行所得结果如图,4.32,所示。,,求该系统对信号,的响应。,图,4.32,系统对信号的响应,第,4,章,MATLAB,在信号处理中的应用,4.7,傅里叶,(Fourier),变换,4.7.1,连续时间、连续频率傅里叶变换,4.7.2,连续时间、离散频率傅里叶级数,?,?,?,?,?,?,?,?,dt,e,t,x,j,X,t,j,),(,),(,?,?,?,?,?,?,?,?,?,d,e,j,X,t,x,t,j,),(,2,1,),(,正变换:,逆变换:,?,?,?,?,?,?,?,N,i,t,j,i,t,e,t,X,j,X,1,),(,),(,?,?,?,?,t,e,e,e,t,x,t,x,t,x,n,t,j,t,j,t,j,n,?,?,?,?,?,?,?,?,2,1,),(,),(,),(,2,1,?,?,?,?,?,?,?,?,2,/,2,/,0,0,0,0,0,),(,1,),(,T,T,t,jk,dt,e,t,x,T,jk,X,?,?,?,?,?,?,?,k,t,jk,e,jk,X,t,x,0,),(,),(,0,正变换:,逆变换:,第,4,章,MATLAB,在信号处理中的应用,4.7.3,时间离散、连续频率序列傅里叶变换,4.7.4,离散时间、离散频率离散傅里叶级数,4.7.5,离散时间、离散频率离散傅里叶变换,(DFT),?,?,?,?,?,?,?,?,n,n,j,j,e,n,x,e,X,),(,),(,?,?,?,?,?,?,?,?,?,d,e,e,X,n,x,n,j,j,),(,2,1,),(,正变换:,逆变换:,?,?,?,?,?,1,0,),(,),(,),(,N,n,nk,N,W,n,x,n,x,DFS,k,X,正变换:,逆变换:,?,?,?,?,?,?,1,0,),(,1,),(,),(,N,k,nk,N,W,k,X,N,n,X,IDFS,n,x,1,2,1,0,?,?,N,k,?,1,2,1,0,?,?,N,n,?,?,?,?,?,?,1,0,),(,),(,),(,N,n,nk,N,W,n,x,n,x,DFT,k,X,1,2,1,0,?,?,N,k,?,正变换:,?,?,?,?,?,?,1,0,),(,1,),(,),(,N,k,nk,N,W,k,X,N,k,X,IDFS,n,x,1,2,1,0,?,?,N,n,?,逆变换:,第,4,章,MATLAB,在信号处理中的应用,1,一维快速正傅里叶变换函数,fft,格式:,X=fft(x,N),功能:采用,FFT,算法计算序列向量,x,的,N,点,DFT,变换,,当,N,缺省时,,fft,函数自动,按,x,的长度计算,DFT,。当,N,为,2,整数次幂时,,fft,按基,-2,算法计算,否则用混合算法。,2,一维快速逆傅里叶变换函数,ifft,格式:,x=ifft(X,N),功能:采用,FFT,算法计算序列向量,X,的,N,点,IDFT,变换。,例,4-36,用快速傅里叶变换,FFT,计算下面两个序列的卷积。,),(,),4,.,0,sin(,),(,n,R,n,n,x,N,?,),(,9,.,0,),(,n,R,n,h,M,n,?,并测试直接卷积和快速卷积的时间。,图,4.35,快速卷积框图,第,4,章,MATLAB,在信号处理中的应用,MATLAB,程序,(,部分,),:,%,线性卷积,xn=,sin(0.4*1:15);,%,对序列,x(n),赋值,M=15,hn=,0.9.(1:20);,%,对序列,h(n),赋值,N=20,yn=conv(xn,hn);,%,直接调用函数,conv,计算卷积,%,园周卷积,L=pow2(nextpow2(M+N-1);,Xk=fft(xn,L);,Hk=fft(hn,L);,Yk=Xk.*Hk;,yn=ifft(Yk,L);,图,4.36 x(n),h(n),及其线性卷积波形,第,4,章,MATLAB,在信号处理中的应用,4.8 IIR,数字滤波器的设计方法,1.,数字滤波器的频率响应函数,?,?,),(,),(,?,?,?,?,?,j,j,j,e,e,H,e,H,?,?,j,H,e,?,幅度响应:,),(,?,?,相位响应:,图,4.37,理想低通、高通、带通、带阻,数字滤波器幅度特性,第,4,章,MATLAB,在信号处理中的应用,2.,滤波器的技术指标,幅度响应指标、相位响应指标,图,4.38,数字低通滤波器的幅度特性,通带要求:,1,),(,1,1,?,?,?,?,?,j,e,H,p,?,?,?,阻带要求:,2,),(,?,?,?,j,e,H,?,?,?,?,?,s,通带最大衰减:,?,?,1,1,lg,20,2,?,?,?,?,?,p,R,阻带最小衰减:,2,lg,20,?,?,?,s,P,第,4,章,MATLAB,在信号处理中的应用,4.8.1,冲激响应不变法,2.MATLAB,信号处理工箱中的专用函数,impinvar(,),:,格式:,BZ,AZ,=impinvar(B,A,Fs),功能:把具有,B,A,模拟滤波器传递函数模型转换成采样频率为,Fs(Hz),的数字滤波器的,传递函数模型,BZ,AZ,。采样频率,Fs,的默认值为,Fs=1,。,1.,冲激响应不变法设计,IIR,数字滤波器的基本原理:,nT,t,a,t,h,n,h,?,?,),(,),(,例,4-37,MATLAB,源程序如下:,num=1;,%,模拟滤波器系统函数的分子,den=1,sqrt(5),2,sqrt(2),1;,%,模拟滤波器系统函数的分母,num1,den1=impinvar(num,den),%,求数字低通滤波器的系统函数,程序的执行结果如下:,num1,=,-0.0000,0.0942,0.2158,0.0311,den1,=,1.0000,-2.0032,1.9982,-0.7612,0.1069,第,4,章,MATLAB,在信号处理中的应用,MATLAB,信号处理工具箱中的专用双线性变换函数,bilinear( ),格式:,numd,dend,bilinear(num,den,Fs),功能:把模拟滤波器的传递函数模型转换成数字滤波器的传递函数模型。,4.8.2,双线性变换法,双线性变换利用频率变换关系:,1,1,1,1,2,),(,),(,?,?,?,?,?,?,z,z,T,s,a,s,H,z,H,例,4-38,MATLAB,源程序如下:,num=1;,%,模拟滤波器系统函数的分子,den=1,sqrt(3),sqrt(2),1;,%,模拟滤波器系统函数的分母,num1,den1=bilinear(num,den,1),%,求数字滤波器的传递函数,运算的结果如下:,num1,=,0.0533,0.1599,0.1599,0.0533,den1,=,1.0000,-1.3382,0.9193,-0.1546,第,4,章,MATLAB,在信号处理中的应用,4.8.3 IIR,数字滤波器的频率变换设计法,1.,IIR,数字滤波器的频率变换设计法的基本原理,根据滤波器设计要求,设计模拟原型低通滤波器,然后进行频率变换,将其转,换为相应的模拟滤波器,(,高通、带通等,),,最后利用冲激响应不变法或双线性变换法,,将模拟滤波器数字化成相应的数字滤波器。,图,4.39,IIR,数字滤波器,MATLAB,设计步骤流程图,第,4,章,MATLAB,在信号处理中的应用,1,MATLAB,的典型设计,利用在,MATLAB,设计,IIR,数字滤波器可分以下几步来实现,(1),按一定规则将数字滤波器的技术指标转换为模拟低通滤波器的技术指标;,(2),根据转换后的技术指标使用滤波器阶数函数,确定滤波器的最小阶数,N,和截止,频率,Wc,;,(3),利用最小阶数,N,产生模拟低通滤波原型;,(4),利用截止频率,Wc,把模拟低通滤波器原型转换成模拟低通、高通、带通或带阻,滤波器;,(5),利用冲激响应不变法或双线性不变法把模拟滤波器转换成数字滤波器。,例,4-39,设计一个数字信号处理系统,它的采样率为,Fs,100Hz,,希望在该系统中,设计一个,Butterworth,型高通数字滤波器,使其通带中允许的最小衰减为,0.5dB,,阻,带内的最小衰减为,40dB,,通带上限临界频率为,30Hz,,阻带下限临界频率为,40Hz,。,第,4,章,MATLAB,在信号处理中的应用,MATLAB,源程序设计如下:,%,把数字滤波器的频率特征转换成模拟滤波器的频率特征,wp=30*2*pi;ws=40*2*pi;rp=0.5;rs=40;Fs=100;,N,Wc=buttord(wp,ws,rp,rs,s);,%,选择滤波器的最小阶数,Z,P,K=buttap(N);,%,创建,Butterworth,低通滤波器原型,A,B,C,D=zp2ss(Z,P,K);,%,零极点增益模型转换为状态空间模型,AT,BT,CT,DT=lp2hp(A,B,C,D,Wc);,%,实现低通向高通的转变,num1,den1=ss2tf(AT,BT,CT,DT);,%,状态空间模型转换为传递函数模型,%,运用双线性变换法把模拟滤波器转换成数字滤波器,num2,den2=bilinear(num1,den1,100);,H,W=freqz(num2,den2);,%,求频率响应,plot(W*Fs/(2*pi),abs(H);grid;,%,绘出频率响应曲线,xlabel(,频率,/Hz);,ylabel(,幅值,),程序运行结果如图,4.40,所示。,第,4,章,MATLAB,在信号处理中的应用,2,MATLAB,的直接设计,图,4.39,IIR,数字滤波器,MATLAB,设计步骤流程图,例,4-41,试设计一个带阻,IIR,数字滤波器,其具体的要求是:通带的截止频率:,wp1,650Hz,、,wp2,850Hz,;阻带的截止频率:,ws1,700Hz,、,ws2,800Hz,;通带内的,最大衰减为,rp,0.1dB,;阻带内的最小衰减为,rs,50dB,;采样频率为,Fs,2000Hz,。,MATLAB,源程序设计如下:,wp1=650;wp2=850;ws1=700;ws2=800;rp=0.1;rs=50;Fs=2000;,wp=wp1,wp2/(Fs/2);ws=ws1,ws2/(Fs/2);,%,利用,Nyquist,频率频率归一化,N,wc=ellipord(wp,ws,rp,rs,z);,%,求滤波器阶数,num,den=ellip(N,rp,rs,wc,stop);,%,求滤波器传递函数,H,W=freqz(num,den);,%,绘出频率响应曲线,plot(W*Fs/(2*pi),abs(H);grid;,xlabel(,频率,/Hz);ylabel(,幅值,),该程序运行后的幅频响应曲线如图,4.42,所示。,第,4,章,MATLAB,在信号处理中的应用,4.9 FIR,数字滤波器设计,格式:,w = boxcar(M),功能:返回,M,点矩形窗序列。,MATLAB,信号处理工具箱中的窗函数法设计,FIR,数字滤波器的专用命令,fir1( ),。,格式:,B,fir1(N,wc),功能:设计一个具有线性相位的,N,阶,(N,点,),的低通,FIR,数字滤波器,返回的向量,B,为滤波器的系数,(,单位冲激响应序列,),,其长度为,N+1,。,4.9.1,窗函数设计法,窗函数设计的基本原理:,h,(,n,)=,w,(,n,),h,d,(,n,),w,(,n,),为窗函数,,h,d,(,n,),理想数字滤波器的单位冲激响应。,在,MATLAB,信号处理工具箱中为用户提供了,Boxcar,(,矩形,),、,Bartlet,(,巴特利,特,),、,Hanning,(,汉宁,),等窗函数,这些窗函数的调用格式相同。,FIR,数字滤波器的单位冲激响应,h(n),满足偶,(,奇,),对称,h(n)=h(N-n-1),或,h(n)=-h(N-n-1),FIR,数字滤波器具有线性相位:,?,?,a,?,?,?,),(,?,?,?,a,?,?,?,2,/,),(,或,第,4,章,MATLAB,在信号处理中的应用,例,4-43,用矩形窗设计线性相位,FIR,低通滤波器。该滤波器的通带截止频率,wc=pi/4,,,单位脉冲响,h,(,n,),的长度,M,=21,。并绘出,h(n),及其幅度响应特性曲线。,MATLAB,源程序,为:,M=21;,wc=pi/4;,%,理想低通滤波器参数,n=0:M-1;,r=(M-1)/2;,nr=n-r+eps*(n-r)=0);,hdn=sin(wc*nr)/pi./nr;,%,计算理想低通单位脉冲响应,hd(n),if,rem(M,2)=0,hdn(r+1)=wc/pi;,end,%,M,为奇数时,处理,n=r,点的,0/0,型,wn1=boxcar(M);,%,矩形窗,hn1=hdn.*wn1;,%,加窗,subplot(2,1,1);stem(n,hn1,.);,line(0,20,0,0);,xlabel(n),ylabel(h(n),title(,矩形窗设计的,h(n);,hw1=fft(hn1,512);,w1=2*0:511/512;,%,求频谱,subplot(2,1,2),plot(w1,20*log10(abs(hw1),xlabel(w/pi),ylabel(,幅度,(dB);,title(,幅度特性,(dB);,程序运行结果如图,4.44,所示。,第,4,章,MATLAB,在信号处理中的应用,4.9.2,频率抽样法,1.,频率抽样法的基本原理,对,所,期,望,的,滤,波,器,的,频,率,响,应,H,d,(e,jw,),进,行,等,间,隔,采,样,获,得,H,(,k,),,,利,用,h(n)=IDFTH(k),求得,FIR,的单位冲激响应。,2.,MATLAB,信号处理工具箱中的频率抽样法专用函数命令,fir2(,),格式:,B,fir2(N,F,A),功能:设计一个,N,阶的,FIR,数字滤波器,其频率响应由向量,F,和,A,指定,滤波器的系,数(单位冲激响应)返回在向量,B,中,长度为,N+1,。向量,F,和,A,分别指定滤波器的采,样点的频率及其幅值,,F,中的频率必须在,0.0,到,1.0,之间,,1.0,对应于采样频率的一半。,它们必须按递增的顺序从,0.0,开始到,1.0,为结束。,第,4,章,MATLAB,在信号处理中的应用,例,4-47,试用频率抽样法设计一个,FIR,低通滤波器,该滤波器的截止频率,为,0.5pi,,频率抽样点数为,33,。,MATLAB,源程序为:,N=32;,F=0:1/32:1;,%,设置抽样点的频率,抽样频率必须含,0,和,1,。,A=ones(1,16),zeros(1,N-15);,%,设置抽样点相应的幅值,B=fir2(N,F,A);,freqz(B);,%,绘制滤波器的幅相频曲线,figure(2);stem(B,.);,%,绘制单位冲激响应的实部,line(0,35,0,0);xlabel(n);ylabel(h(n);,图,4.49,滤波器的频率响应和单位冲激响应序列,第,4,章,MATLAB,在信号处理中的应用,4.9.3 MATLAB,的其它相关函数,1,最小二乘逼近法设计线性相位,FIR,滤波器函数,fircls( ),2,有限制条件的最小二乘逼近法设计低通和高通,FIR,数字滤波器函数,fircls1( ),3,最小二乘逼近法设计线性相位,FIR,数字滤波器函数,firls( ),4,升余弦,FIR,滤波器设计函数,firrcos( ),5,Parks-McClellan,优化等纹波,FIR,滤波器设计函数,remez( ),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!