资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,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.1,信号及其表示,4.1.1,连续时间信号的表示,连续时间信号:,时间变化连续。如,y=x(t),离散时间信号,(,序列,),:,时间离散,如,x(nT)=x(t)|,t=nT,.,例,4-1,:用,MATLAB,命令绘出连续时间信号,x(t)=e,-0.707t,sin(2t/3),关于,t,的曲线,,t,的范围为:,030s,,并以,0.1s,递增。,4.1.2,工具箱中的信号产生函数,函数名,功能,函数名,功能,sawtooth,产生锯齿波或三角波信号,pulstran,产生冲激串,square,产生方波信号,rectpule,产生非周期的方波信号,sinc,产生,sinc,函数波形,tripuls,产生非周期的三角波信号,chirp,产生调频余弦信号,diric,产生,Dirichlet,或周期,sinc,函数,gauspuls,产生高斯正弦脉冲信号,gmonopuls,产生高斯单脉冲信号,vco,电压控制振荡器,4.1,信号及其表示,1.Sawtooth,(产生锯齿波或三角波信号),格式一:,x=,sawtooth(t,),功能:产生周期为,2,,幅值从,-1+1,的锯齿波。在,2,的整数倍处值为,-1+1,,,这一段波形斜率为,1/,。,格式二:,x=,sawtooth(t,,,width),功能:产生三角波,,width,在,01,之间。,例,4-2,:产生周期为,0.02,的三角波。,2.Square,(产生方波信号),格式一:,x=,square(t,),功能:产生周期为,2,,幅值从,-1+1,的方波。,格式二:,x=,square(t,,,duty),功能:产生制定周期的方波,,duty,为正半周期比例。,例,4-3,:产生周期为,0.02,的方波。,4.1,信号及其表示,3.Sinc,(产生,sinc,函数波形函数,sinc,),格式一:,y=sinc(x),功能:,sinc(x),用于计算,sinc,函数。,例,4-4,:产生,sinc,函数波形。,4.Rectpuls,(产生非周期方波信号函数),格式一:,y=rectpuls(t),功能:产生非周期方波信号,方波的宽度为时间轴的一半。,格式二:,y=rectpuls(t,,,w),功能:产生指定宽度为,w,的非周期方波。,例,4-5,:产生非周期方波。,4.1,信号及其表示,5.Tripuls,(产生非周期三角波信号函数,Tripuls,),格式一:,y=tripuls(t),功能:产生非周期三角波信号,三角波的宽度为时间轴的一半。,格式二:,y=tripuls(t,w,s),功能:产生指定宽度为,w,的非周期方波,斜率为,s,(,-1s=0;,函数实现:利用单位阶跃序列,u(n-n,0,),的生成函数,stepseq,,,即,functionx,n=stepseq(n0,ns,nf),n=ns:nf;x=(n-n0)=0;,3,实指数序列,直接实现:,n=ns:nf;x=a.n;,函数实现:利用实指数序列,x(n)=a,n,的生成函数,rexpseq,即,functionx,n=rexpseq(a,ns,nf),n=ns:nf;x=a.n;,4,复指数序列,直接实现:,n=ns:nf;x=exp(sigema+jw)*n);,函数实现:利用复指数序列,x(n)=e,(,+j,)n,的生成函数,cexpseq,,,即,functionx,n=cexpseq(sigema,w,ns,nf),n=ns:nf;x=exp(sigema+j*w)*n);,5,正,(,余,),弦序列,直接实现:,n=ns:nf;x=cos(w*n+sita);,函数实现:利用正(余)弦序列,x(n)=cos(,n+,),的生成函数,cosseq,,,即,functionx,n=cosseq(w,ns,nf,sita),n=ns:nf;x=cos(w*n+sita);,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-11:,信号的相加与相乘,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-12,4.2.4,两序列的卷积运算,两序列卷积运算:,MATLAB,实现:,y=conv(x1,x2),。序列,x1(n),和,x2(n),必须长度有限。,4.2.5,两序列的相关运算,两序列相关运算:,。,MATLAB,实现:,y=xcorr(x1,x2),。,4.2.3,序列翻褶与序列累加运算,序列翻褶:,y(n)=x(-n),。,MATLAB,可实现,:,y=fliplr(x),序列累加的数学描述为:,MATLAB,实现:,y=cumsum(x),例,4-13,求序列,x(n)=3e,-0.2n,的翻褶序列,y(n)=x(-n),。,4.3,信号的能量和功率,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-16,非周期三角波信号能量的,MATLAB,计算和余弦信号的平均功率计算。,4.4,线性时不变系统,4.4.1,系统的描述,1,常系数线性微分,/,差分方程,2,系统传递函数,3,零极点增益模型,连续系统:,连续系统:,离散系统:,离散系统:,4,极点留数模型,离散系统:,连续系统:,5,二次分式模型,连续系统:,离散系统:,6,状态空间模型,连续系统:,离散系统:,4.4.2,系统模型的转换函数,在,MATLAB,中,用,sos,、,ss,、,tf,、,zp,分别表示,二次分式模型,、,状态空间模型,、,传递函数模型,和,零极点增益模型,。其中,sos,表示二次分式,,g,为比例系数,,sos,为,L6,的矩阵,即,(,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,分别为零点列向量、极点列向量和增益系数。,线性系统模型的变换函数,函数名,功能说明,函数名,功能说明,ss2tf,状态空间模型转换为传递函数模型,zp2tf,零极点增益模型转换为传递函数模型,ss2zp,状态空间模型转换为零极点增益模型,zp2ss,零极点增益模型转换为状态空间模型,ss2sos,状态空间模型转换为二次分式模型,zp2sos,零极点增益模型转换为二次分式模型,tf2ss,传递函数模型转换为状态空间模型,sos2tf,二次分式模型转换为传递函数模型,tf2zp,传递函数模型转换为零极点增益模型,sos2zp,二次分式模型转换为零极点增益模型,tf2sos,传递函数模型转换为二次分式模型,sos2ss,二次分式模型转换为状态空间模型,例,4-19,求离散时间系统,的零、极点向量和增益系数。,在命令窗口输入:,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.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,级联,可得到级联连接的传递函数形式为:,1.,系统的级联,MATLAB,实现函数,parallel(),格式:,A,B,C,D=parallel(A1,B1,C1,D1,A2,B2,C2,D2),或,num,den=parallel(num1,den1,num2,den2),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-20,求两个单输入单输出子系统,的级联、并联和反馈后系统的传递函数。,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,因此,各系统的传递函数分别为:,4.5,线性时不变系统的响应,4.5.1,线性时不变系统的时域响应,1,连续,LTI,系统的响应,2,离散,LTI,系统的响应,用,MATLAB,中的卷积函数,conv(),来实现。,例,4-24 P147,用,MATLAB,中的卷积函数,conv(),来实现。,例,4-25,已知,LTI,离散系统的单位冲击响应为:,hn=0.5,n,(n=0,1,2,14),求输入信号序列,xn=1,(,-5n4,)的系统响应。,格式:,y,x=lsim(a,b,c,d,u,t),功能:返回连续,LTI,系统,(2),对任意输入的离散,LTI,系统响应函数,dlsim(),格式:,y,x=dlsim(a,b,c,d,u),功能:返回离散,LTI,系统,对任意输入时系统的输出响应,y,和状态记录,x,,其中,u,给出每个输入的时序列,一般,情况下,u,为一个矩阵;,t,用于指定仿真的时间轴,它应为等间隔,。,例,4-26 P150,对输入序列,u,的响应,y,和状态记录,x,。,例,4-27 P151,3,时域响应函数,(1),对任意输入的连续,LTI,系统响应函数,lsim(),4.5.2 LTI,系统的单位冲激响应,1.,求连续,LTI,系统的单位冲激响应函数,impulse(),格式:,Y,T=impulse(sys),或,impulse(sys),功能:返回系统的响应,Y,和时间向量,T,,自动选择仿真的时间范围。其中,sys,可为,系统传递函数、零极增益模型或状态空间模型。,例,4-28 P152,2.,求离散系统的单位冲激响应函数,dimpulse(),格式:,y,x=dimpulse(num,den),功能:返回项式传递函数,的单位冲激响应,y,向量和时间状态历史记录,x,向量。,4.5.3,时域响应的其它函数,1.,求连续,LTI,系统的零输入响应函数,initial(),格式:,y,t,x=initial(a,b,c,d,x0),功能:计算出连续时间,LTI,系统由于初始状态,x0,所引起的零输入响应,y,。其中,x,为状态记录,,t,为仿真所用的采样时间向量。,例,4-30 P153,2.,求离散系统的零输入响应函数,dinitial(),格式:,y,x,n=dinitial(a,b,c,d,x0),功能:计算离散时间,LTI,系统由初始状态,x0,所引起的零输入响应,y,和状态响应响应,x,,,取样点数由函数自动选取。,n,为仿真所用的点数。,例,4-31 P154,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.6,线性时不变系统的频率响应,1,求模拟滤波器,Ha,(,s,),的频率响应函数,freqs(),格式:,H,freqs(B,A,W),功能:计算由向量,W(rad/s),指定的频率点上模拟滤器系统函数,H,a,(,s,),的,频率响,应,H,a,(j,),,结果存于,H,向量中。向量,B,和,A,分别为模拟滤波器系统函数,Ha(s),的,分子和分母多项式系数。,例,4-32,已知某模拟滤波器的系统函数,求该模拟滤波器的频率响应。,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-33,已知某滤波器的系统函数为,求该滤波器的频率响应。,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),指定的数字频率点上,(,通常指,0,,,范围的频率)数字滤波,器,H(z),的频率响应,H(e,jw,),,结果存于,H,向量中。,向量,B,和,A,分别为数字滤波器系统,H(z),的,分子和分母多项式系数。,3,滤波函数,filter,格式:,y=filter(B,A,x),功能:对向量,x,中的数据进行滤波处理,即差分方程求解,产生输出序列向量,y,。,B,和,A,分别为数字滤波器系统函数,H(z),的分子和分母多项式系数向量。,例,4-34,设系统差分方程为,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.7,傅里叶,(Fourier),变换,4.7.1,连续时间、连续频率傅里叶变换,4.7.2,连续时间、离散频率傅里叶级数,正变换:,逆变换:,正变换:,逆变换:,4.7.3,时间离散、连续频率序列傅里叶变换,4.7.4,离散时间、离散频率离散傅里叶级数,4.7.5,离散时间、离散频率离散傅里叶变换,(DFT),正变换:,逆变换:,正变换:,逆变换:,正变换:,逆变换:,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-37,用快速傅里叶变换,FFT,计算下面两个序列的卷积。,并测试直接卷积和快速卷积的时间。,图,4.35,快速卷积框图,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.8 IIR,数字滤波器的设计方法,1.,数字滤波器的频率响应函数,幅度响应:,相位响应:,图,4.37,理想低通、高通、带通、带阻,数字滤波器幅度特性,2.,滤波器的技术指标,幅度响应指标、相位响应指标,图,4.38,数字低通滤波器的幅度特性,通带要求:,阻带要求:,通带最大衰减:,阻带最小衰减:,4.8.1,冲激响应不变法,2.MATLAB,信号处理工箱中的专用函数,impinvar(),:,格式:,BZ,AZ=impinvar(B,A,Fs),功能:把具有,B,A,模拟滤波器传递函数模型转换成采样频率为,Fs(Hz),的数字滤波器的,传递函数模型,BZ,AZ,。采样频率,Fs,的默认值为,Fs=1,。,1.,冲激响应不变法设计,IIR,数字滤波器的基本原理:,例,4-38,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,MATLAB,信号处理工具箱中的专用双线性变换函数,bilinear(),格式:,numd,dend,bilinear(num,den,Fs),功能:把模拟滤波器的传递函数模型转换成数字滤波器的传递函数模型。,4.8.2,双线性变换法,双线性变换利用频率变换关系:,例,4-39,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.8.3 IIR,数字滤波器的频率变换设计法,1.IIR,数字滤波器的频率变换设计法的基本原理,根据滤波器设计要求,设计模拟原型低通滤波器,然后进行频率变换,将其转换为相应的模拟滤波器,(,高通、带通等,),,最后利用冲激响应不变法或双线性变换法,将模拟滤波器数字化成相应的数字滤波器。,图,4.39 IIR,数字滤波器,MATLAB,设计步骤流程图,1,MATLAB,的典型设计,利用在,MATLAB,设计,IIR,数字滤波器可分以下几步来实现,(1),按一定规则将数字滤波器的技术指标转换为模拟低通滤波器的技术指标;,(2),根据转换后的技术指标使用滤波器阶数函数,确定滤波器的最小阶数,N,和截止频率,Wc,;,(3),利用最小阶数,N,产生模拟低通滤波原型;,(4),利用截止频率,Wc,把模拟低通滤波器原型转换成模拟低通、高通、带通或带阻滤波器;,(5),利用冲激响应不变法或双线性不变法把模拟滤波器转换成数字滤波器。,例,4-40,设计一个数字信号处理系统,它的采样率为,Fs,100Hz,,希望在该系统中设计一个,Butterworth,型高通数字滤波器,使其通带中允许的最小衰减为,0.5dB,,阻带内的最小衰减为,40dB,,通带上限临界频率为,30Hz,,阻带下限临界频率为,40Hz,。,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,所示。,2,MATLAB,的直接设计,图,4.39 IIR,数字滤波器,MATLAB,设计步骤流程图,例,4-42,试设计一个带阻,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.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,数字滤波器具有线性相位:,或,例,4-44,用矩形窗设计线性相位,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.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-48,试用频率抽样法设计一个,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.9.3 MATLAB,的其它相关函数,1,最小二乘逼近法设计线性相位,FIR,滤波器函数,fircls(),2,有限制条件的最小二乘逼近法设计低通和高通,FIR,数字滤波器函数,fircls1(),3,最小二乘逼近法设计线性相位,FIR,数字滤波器函数,firls(),4,升余弦,FIR,滤波器设计函数,firrcos(),5,Parks-McClellan,优化等纹波,FIR,滤波器设计函数,remez(),
展开阅读全文