matlab在信号处理中的应用.ppt
《matlab在信号处理中的应用.ppt》由会员分享,可在线阅读,更多相关《matlab在信号处理中的应用.ppt(98页珍藏版)》请在三一办公上搜索。
1、第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 信号及其表示,连续时间信号的表示 在MATLAB中,对连续时间信号用采样点的数据来表示,当采样点很密时可看成连续信号。连续时间信号:时间变化连续。如y=x(t)离散时间信号(序列):时间离散,如x(nT)=x(t)|t=nT.当T足够小时,可以认为是连续信号。例如:用MATLAB命令绘出 关于t的
2、曲线,t的范围为030s,并以0.1递增。,t=0:0.1:30;%对时间变量赋值x=exp(-0.707*t).*sin(2/3.*t);%计算变量所对应的函数值plot(t,x);%绘制函数曲线grid;%图形窗口加网格xlabel(time(sec);%标注x轴,y轴ylabel(x(t);axis(-0.05,30,-0.05,0.35);%确定x轴,y轴显示范围,工具箱中的信号产生函数,t=0:0.0001:1;x1=sawtooth(2*pi*50*t,0.8)plot(t,x1)axis(0,0.2,-1,1),t=0:0.0001:0.05;x1=square(2*pi*50*
3、t,50)plot(t,x1),例如:产生周期为0.02的三角波,产生频率为50Hz,占空比为50%的方波,t=0:0.001:2y=chirp(t,0,1,150)figure(1)plot(t,y)axis(0,0.5,0,1),产生线性调频信号:,t=0:0.01:1;y1=tripuls(t);y2=tripuls(t,0.6);subplot(211);plot(t,y1);subplot(212);plot(t,y2);,产生非周期三角波信号:,离散时间信号的表示,在MATLAB中,离散时间信号x(n)的表示:需用一个向量x表示序列幅值,用另一个等长的定位时间变量n,才能完整地表示
4、一个序列。,例4-10 绘制离散时间信号的棒状图。其中x(-1)=-1,x(0)=1,x(1)=2,x(2)=1,x(3)=-1,x(4)=0。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 离散时间信号图形,几种常用离散时间信号的表示,1单位脉冲序列,直接实现:x=zeros(1,N);x(1,n0)=1;,2单位阶跃序列,直接实现:n=ns:nf;x=(n-n0)=0;函数实现:,f
5、unction x,n=stepseq(n0,ns,nf)n=ns:nf;x=(n-n0)=0;,3实指数序列,直接实现:n=ns:nf;x=a.n;,4复指数序列,直接实现:n=ns:nf;x=exp(sigema+jw)*n);,5正(余)弦序列,直接实现:n=ns:nf;x=cos(w*n+sita);,复数求实部:real(x)复数求虚部:imag(x)复数求幅度:abs(x)复数求相角:angel(x),复数运算的常用函数:,function fsxl(delta,omig,n1,n2)e=delta+omig.*j;n=n1:n2;x=exp(e*n);x_real=real(x)
6、;%生成实部序列x_imag=imag(x);%生成虚部序列x_magnitude=abs(x);%生成幅度序列x_phase=(180/pi)*angle(x);%生成相位序列,fsxl(0.1,pi/3,-10,10),4.2 信号的基本运算,信号的相加与相乘 y(n)=x1(n)+x2(n)y(n)=x1(n)x2(n)MATLAB实现:y=x1+x2;y=x1.*x2两信号相加和相乘的MATLAB实现:首先将两序列时间变量延拓到相同长度,然后再逐点相加相乘,序列移位与周期延拓运算,序列移位:y(n)=x(n-m)。MATLAB实现:y=x;ny=nx-m序列周期延拓:y(n)=x(n)
7、M,MATLAB实现:ny=nxs:nxf;y=x(mod(ny,M)+1),n1=-5:4;%序列x1(n)的起始及终止位置n1s=-5;n1f=4;x1=2 3 1-1 3 4 2 1-5-3;%序列x1(n)不同时间的幅度n2=0:9;%序列x2(n)的起始及终止位置n2s=0;n2f=9;x2=1 1 1 1 1 1 1 1 1 1;%序列x2(n)不同时间的幅度ns=min(n1s,n2s);nf=max(n1f,n2f);%求新信号的时间起始终止位置n=ns:nf;y1=zeros(1,length(n);%延拓序列初始化y2=zeros(1,length(n);y1(find(n
8、=n1s),N=24;M=8;m=3;n=0:N-1;x1=(0.8).n;%产生指数序列x2=(n=0),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),例如:求序列,n=0:10;x=3*exp(-0.2*n);y=fliplr(x
9、);n1=-fliplr(n);n2=-fliplr(n-3);%在指定位置m=3处的时间序列翻褶s=cumsum(x);subplot(221);stem(n,x);xlabel(n);ylabel(x(n);subplot(223);stem(n1,y);xlabel(n);ylabel(y(n)=x(-n);subplot(222);stem(n2,y);xlabel(n);ylabel(y(n)=x(-3+n);subplot(224);stem(n,s);xlabel(n);ylabel(s(n);,4.3 信号的能量和功率,1.信号能量,数字定义:,MATLAB实现:E=sum(x
10、.*conj(x);或 E=sum(abs(x).2);,数字定义:,2.信号功率,MATLAB实现:P=sum(x.*conj(x)/N;或 E=sum(abs(x).2)/N;,非周期三角波信号能量的MATLAB计算:,dt=0.0001;t=0:dt:1;x=tripuls(t);E=sum(abs(x).2*dt),dt=0.001;t=0:dt:2*pi;x=cos(t);P=sum(abs(x).2*dt)./(2*pi),E=0.1667,P=0.5001,余弦信号的平均功率MATLAB计算:,4.4 线性时不变系统,一个信号处理系统就是将输入信号变换成输出信号的运算过程,如图所
11、示。在此过程中,输出的信号称为系统对输入信号作出的响应,输入信号称为系统的激励信号。,当一个系统具有可加性和齐次性,则该系统称为线性系统。如果系统响应与激励加于系统的时刻无关,则称该系统为时不变系统。,4.4 线性时不变系统,4.4.1 系统的描述,1常系数线性微分/差分方程,2系统传递函数,连续系统:,离散系统:,连续系统:,离散系统:,注意:在MATLAB中,传递函数由分子、分母两个多项式的系数来表示,系数为降幂排列。例如:,系统传递函数的MATLAB表示:,可以表示为:num=1,0.2,1;den=1,0.5,1,3零极点增益模型,连续系统:,离散系统:,4极点留数模型,离散系统:,连
12、续系统:,5二次分式模型,连续系统:,离散系统:,6状态空间模型,连续系统:,离散系统:,系统模型的MATLAB表示,在MATLAB中,用sos、ss、tf、zp分别表示二次分式模型、状态空间模型、传递函数模型和零极点增益模型。其中sos表示二次分式,g为比例系数,sos为L6的矩阵,即,4.4.2 系统模型的转换函数,1ss2tf函数格式:num,den=ss2tf(A,B,C,D,iu)功能:将指定输入量iu的线性系统(A,B,C,D)状态空间模型转换为传递函数模型num,den。,2zp2tf函数格式:num,den=zp2tf(z,p,k)功能:将给定系统的零极点增益模型转换为传递函数
13、模型,z、p、k分别为零点列向量、极点列向量和增益系数。,3tf2sos函数格式:sos,g=tf2sos(num,den)功能:将给定系统的传递函数模型num,den转换为二次分式模型sos,g为增益系数。,线性系统模型的变换函数,在命令窗口输入:z=3;p=1,2;k=2;A,B,C,D=zp2ss(z,p,k)屏幕显示结果:A=3.0000-1.4142 1.4142 0B=1 0C=2.0000-4.2426D=0,例4-18 将系统 转换为状态空间模型A,B,C,D,例4-19 求离散时间系统,的零、极点向量和增益系数。在命令窗口输入:num=2,3;den=1,0.4,1;num,
14、den=eqtflength(num,den);%使长度相等 z,p,k=tf2zp(num,den)屏幕显示为z=0-1.5000p=-0.2000+0.9798i-0.2000-0.9798ik=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
15、,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 求两个单输入单输出子系统,的级联、并联和反馈后系统
16、的传递函数。MATLAB源程序为:num1=1;den1=1,1;%系统1num2=2;den2=1,2;%系统2nums,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 2nump=0 3 4;denp=1 3 2numf=0 1 2;denf=1 3 4因此,各系统的传递函数分别为:,在实际应用中,也可以把一个
17、复杂的线性时不变(LTI)系统分解为几个简单系统的组合结构,即直接型结构、级联型结构和并联型结构。Matlab所提供的系统模型变换函数,实质就是给出了这几种系统结构的互换关系。系统的传递函数对应于系统的直接型结构,二次分式(sos)模型对应级联型结构,系统传递函数的部分分式(residue或residuez)形式对应于并联型结构。,例4-20 已知FIR数字滤波器的传递函数为:求出其级联型结构和格型结构,clear;b=2,13/12,5/4,2/3;a=1;%设定参数 fprintf(级联型结构系数:);sos,g=tf2sos(b,a)%直接型到级联型转换fprintf(格型结构系数(反射
18、系数):);K=tf2latc(b,a)%直接型到格型转换,MATLAB源程序:,级联型结构系数:sos=1.0000 0.5360 0 1.0000 0 0 1.0000 0.0057 0.6219 1.0000 0 0g=2格型结构系数(反射系数):K=0.2500 0.5000 0.3333,b=1,-3,11,-27,18;a=16,12,2,-4,-1;disp(级联型结构系数:)sos,g=tf2sos(b,a)disp(并联型结构系数:)R,P,K=residuez(b,a),MATLAB源程序:,级联型结构系数:sos=1.0000-3.0000 2.0000 1.0000-0
19、.2500-0.1250 1.0000 0.0000 9.0000 1.0000 1.0000 0.5000g=0.0625并联型结构系数:R=-5.0250-1.0750i-5.0250+1.0750i 0.9250 27.1875,P=-0.5000+0.5000i-0.5000-0.5000i 0.5000-0.2500 K=-18,4.5 线性时不变系统的响应,线性时不变系统的时域响应,1连续LTI系统的响应,2离散LTI系统的响应,用MATLAB中的卷积函数conv()来实现。,用MATLAB中的卷积函数conv()来实现。,dt=input(输入时间间隔dt)x=ones(1,fi
20、x(10/dt);h=exp(-0.1*0:fix(10/dt)*dt);y=conv(x,h);t=dt*(1:length(y)-1);plot(t,y);grid;,x=ones(1,10);n=0:14;h=0.5.n;y=conv(x,h);stem(y);xlabel(n);ylabel(yn);,nx=-5:4;x=ones(1,10);nh=0:14;h=0.5.n;y=conv(x,h);n0=nx(1)+nh(1);%求卷积序列y起始时间位置N=length(nx)+length(nh)-2;%求卷积序列y序列长度ny=n0:n0+N;%求卷积序列y的时间向量subplot
21、(221);stem(nx,x);title(xn);xlabel(n);xlabel(xn);subplot(222);stem(nh,h);title(hn);xlabel(n);xlabel(hn);subplot(223);stem(ny,y);title(xn*hn);xlabel(n);xlabel(yn);h=get(gca,position);h(3)=2.5*h(3)set(gca,position,h),改写为:,格式:y,x=lsim(a,b,c,d,u,t)功能:返回连续LTI系统,(2)对任意输入的离散LTI系统响应函数dlsim()格式:y,x=dlsim(a,b,
22、c,d,u)功能:返回离散LTI系统,对任意输入时系统的输出响应y和状态记录x,其中u给出每个输入的时序列,一般情况下u为一个矩阵;t用于指定仿真的时间轴,它应为等间隔。,对输入序列u的响应y和状态记录x。,3时域响应函数(1)对任意输入的连续LTI系统响应函数lsim(),num=2,5,1;den=1,2,3;t=0:0.1:10peiod=4;u=(rem(t,peiod)=peiod/2)lsim(num,den,u,t);title(方波响应);,num=2,-3.4,5.5;den=1,-1.2,0.8;u=randn(1,100);dlsim(num,den,u);title(随
23、机噪声响应),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向量。,a=-0.55,-0.78;0.78,0;b=1;0;c=1.96,6.45;d=0;impulse(a,b,c,d);title(LT
24、I系统的冲激响应),num=2,-3.5,1.5;den=1,-1.7,0.3;dimpulse(num,den);title(离散LTI系统的冲激响应),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,
25、取样点数由函数自动选取。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.6线性时不变系统的频率响应,4.6线性时不变系统的频率响应,1求模拟滤波器Ha(s)的频率响应函数freqs()格式一:Hfreqs(B,A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 信号 处理 中的 应用
链接地址:https://www.31ppt.com/p-5439017.html