ATLAB基础与应用.ppt

上传人:牧羊曲112 文档编号:6501848 上传时间:2023-11-07 格式:PPT 页数:112 大小:2.22MB
返回 下载 相关 举报
ATLAB基础与应用.ppt_第1页
第1页 / 共112页
ATLAB基础与应用.ppt_第2页
第2页 / 共112页
ATLAB基础与应用.ppt_第3页
第3页 / 共112页
ATLAB基础与应用.ppt_第4页
第4页 / 共112页
ATLAB基础与应用.ppt_第5页
第5页 / 共112页
点击查看更多>>
资源描述

《ATLAB基础与应用.ppt》由会员分享,可在线阅读,更多相关《ATLAB基础与应用.ppt(112页珍藏版)》请在三一办公上搜索。

1、MATLAB基础与应用,电子信息工程专业,提 纲,MATLAB简介MATLAB基础利用MATLAB进行信号与系统分析,MATLAB简介,MATLAB是由美国的MathWorks公司推出的应用软件。MATLAB是Matrix Laboratory(矩阵实验室)的缩写。,3,MATLAB是什么?,用于科学工程计算的高效率高级语言语言开发系统适合多学科、多种工作平台的功能强大的大型软件,4,MATLAB的主要构成,编程语言:以矩阵和数组为基本数据单位的编程语言;工作环境:一系列应用工具提供编写、调试程序的环境;图形处理:包括绘制图形和创建GUI等。数学库函数:包含丰富的数学函数和其他复杂功能函数;A

2、PI:为MATLAB与其它语言编写的程序进行交互提供接口。,5,MATLAB语言特点(一),采用统一的数据和变量对象矩阵,即数据是矩阵元素的数据,变量是矩阵变量;在生成矩阵对象时,不要求做明确的维数说明,有丰富的矩阵处理功能;功能强、易学易用,还可根据实际需要扩充功能;一条语句或一个函数相当于C语言中的一个子程序或一个处理功能;MATLAB还拥有各种实用的软件,提供了许多通信系统模型,能对系统直接进行仿真;,6,MATLAB语言特点(二),用户可以自己编写函数,绘制系统响应曲线;MATLAB还具有符号运算功能,直接用符号算式进行演算;MATLAB提供了SIMULINK软件包,该软件包提供了通信

3、和控制系统方块图的图形编程形式,这样利用通信系统方块图的图形对系统直接进行仿真,使得一个很复杂的系统仿真变得相当容易。,7,MATLAB采用了面向对象的技术,以矩阵作为基本数据结构和以矩阵运算为基础,集科学计算和图形可视化为一体。MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。MATLAB还带有许多针对不同应用所开发的工具箱(Toolboxs)。,8,MATLAB语言特点(三),MATLAB已成为各种系统仿真、数字信号处理、科学可视化的标准语言。MATLAB已确认为必须掌握的计算工具,是从理论通向实际的桥梁,是最可信赖的科技资源之一。,

4、9,MATLAB语言重要性,MATLAB产品族可以用来进行如下工作:,*数值分析;*数值和符号计算;*工程与科学绘图;*控制系统的设计与仿真;*数字图像处理;*数字信号处理;*通讯系统设计与仿真;*财务与金融工程。,10,操作桌面的缺省外貌,11,命令窗口(指令窗)命令历史窗口(历史指令窗)工作空间窗口(浏览器)当前路径(当前目录)窗口,通用操作界面,命令窗口(指令窗)(Command Window)工作空间窗口(浏览器)(Workspace Browser)命令历史窗口(历史指令窗)(Command History)当前路径(当前目录)窗口(Current Directory Browser

5、)内存数组编辑器(Array Editor)M文件编辑/调试器(Editor/Debugger)帮助导航/浏览器(Help Navigator/Browser)图形窗口(Figure),12,命令窗口的常用控制指令,13,指令行中的标点符号,14,指令行中的标点符号,15,命令窗口中指令行的编辑,为方便操作,MATLAB不但允许用户在指令窗中对输入指令进行各种编辑和运行,而且允许用户对已经输入的指令进行回调、编辑和重运行。,16,Workspace Browser工作空间窗口简介,列出数据的变量信息,包括变量名、变量数组大小(尺寸)、变量字节大小和变量类型。基本工作空间或简称为工作空间(Wor

6、kspace)MATLAB在进行运算时,将变量存储在内存中,这些存储变量的内存空间称为基本工作空间,简称工作空间。暂时(临时)工作空间:每当MATLAB在调用执行某一函数时,即进入该函数的暂时工作空间(可视为基本工作空间的下层空间),函数在此空间进行运算,而不影响到基本空间内的变量,当函数执行结束后,MATLAB会同时删除函数的暂时工作空间,并回到基本空间。,17,内存变量查阅、删除的指令操作法,在指令窗中运用who,whos查阅MATLAB内存变量。who命令:查看现存于基本空间的变量whos命令:详细查看现存于基本空间的变量在指令窗中运用clear指令可以删除内存(工作空间内)的某一或所有

7、变量如:clear A,clearall,18,M脚本文件编写初步,M脚本文件该文件中的指令形式和前后位置,与解决同一个问题时在命令窗中输入的那组指令没有任何区别。MATLAB在运行这个脚本时,只是简单地从文件中读取一条条指令,送到MATLAB中去执行。与在指令窗中直接运行命令一样,脚本文件运行产生的变量都驻留在MATLAB基本工作空间中。文件扩展名是“.m”。,19,M 文 件 调 试,M语言文件的编辑器meditor不仅仅是一个文件编辑器,同时还是一个可视化的调试开发环境。在M文件编辑器中可以对M脚本文件、函数文件进行调试,以排查程序的错误。M文件的调试不仅可以在文件编辑器中进行,而且还可

8、以在命令行中结合具体的命令进行,但是过程相对麻烦一些,所以重点讲述在M文件编辑器中进行可视化调试的过程。一般地来说,应用程序的错误有两类,一类是语法错误,另外一类是运行时的错误。其中,语法错误包括了词法或者文法的错误,例如函数名称的拼写错误等。而运行时的错误是指那些程序运行过程中得到的结果不是用户需要的情况。但是,由于M文件是一种解释型语言,语法错误和运行时的错误都只有在运行过程中才能发现,所以程序的调试往往是在程序无法得到正确结果时进行程序修正的惟一手段。,20,M语言的断点(Breakpoints),为了能够有效地处理各种情况,M语言的断点类型除了类似C语言的用户定义的断点外,还有几种自动

9、断点,分别为*Stop if Error。*Stop if Warning。*Stop if NaN or Inf。*Stop if All Errors。这些自动断点可以在程序中设置,当程序运行过程中发生了错误或者警告,则程序运行中断,进入调试状态。,21,M文件编辑器的Breakpoints菜单,22,调试程序的按钮,23,小 结,MATLAB提供了一种高级编程语言M语言,这种语言的语法结构与C语言非常类似,任何熟悉C语言的用户学习使用M语言都不会有任何障碍。尽管M语言是一种解释性的编程语言,但是随着MATLAB版本的不断升级,以及充分利用MATLAB提供的各种编程技巧,能够有效提高M语言

10、应用程序的执行效率,使M语言成为了工程领域中最适合进行算法开发验证的编程语言。,24,MATLAB基础,一、MATLAB的工作方式二、如何获取帮助三、表达式变量、数值、算数运算符、关系运算符、逻辑运算符、冒号运算符四、数组及其运算五、函数文件六、循环(FOR、WHILE 循环)七、基本绘图语句,25,一、MATLAB的工作方式,(1)窗口命令方式(2)运行以.m 为扩展名磁盘文件,26,工作方式举例,%用plot函数画一个方波t=-1 0 0 1 1 3;x=0 0 1 1 0 0;plot(t,x);xlabel(t);ylabel(x(t);axis(-1 3 0 2);,直接在命令窗口输

11、入以上命令,建一个名字为my_file.m的文件,然后在命令窗口输入文件名及回车。,27,二、如何获取帮助,命令窗口输入:help+函数名例如 help plot,28,三、表达式,不需要变量的类型说明变量名的第一个字符必须是字母变量名长度:不超过31个字符大写和小写的字母视为不同的字符 例如:num_students=25MATLAB默认的预定义变量,变量,29,MATLAB默认的预定义变量,每当MATLAB启动时,预定义变量(Predefined variable)就被产生。,30,建议:不要对预定义变量名重新赋值,以免产生混淆。,MATLAB默认的预定义变量,每当MATLAB启动时,预定

12、义变量(Predefined variable)就被产生。,31,建议:不要对预定义变量名重新赋值,以免产生混淆。,三、表达式,数值,MATLAB用常规的十进制表示数值 用i或j作为后缀来表示复数的虚部 例 1.235e5表示1.235105,x=2+3jabs(x)求复数x的模angle(x)求复数x的相角(弧度)real(x)求复数x的实部imag(x)求复数x的虚部conj(x)求复数x的共轭,32,三、表达式,运算符号,(1)算数运算符,+加-减*乘/除 乘方 矩阵的复共轭转置,33,三、表达式,运算符号,(2)逻辑运算符,A&B逻辑与(and)A|B逻辑或(or)A 逻辑非(not)

13、,值为0时表示逻辑假(F),其它任何非零值表示逻辑真。,34,三、表达式,运算符号,(3)关系运算符,A B 大于A=B 大于等于A=B 等于A=B不等于,35,三、表达式,运算符号,(4)冒号运算符,表达式 1:10 表示产生一个行向量,它的值为 1 2 3 4 5 6 7 8 9 10表达式 10:-2:1 表示产生一个递减的行向量,它的值为 10 8 6 4 2,36,四、数组及其运算,1.数组的构造,用冒号:产生数组,例 x=2:5 产生一个数组,它的值为x(1)=2,x(2)=3,x(3)=4,x(4)=5,例 x=linspace(0,2,11)将区间0,2均匀抽样11点作为数组x

14、。,给2维数组赋值时,用分号表示一行的结束。如:z=1 2;3 4。,用linspace产生数组,37,1.数组的构造,MATLAB 提供了一些产生基本矩阵的函数 zeros 产生矩阵元素全为0的矩阵 ones 产生矩阵元素全为1的矩阵 rand 产生(0,1)均匀分布随机数矩阵 randn 产生正态分布随机数矩阵,四、数组及其运算,38,2.数组的运算,数组和一个标量相加或相乘 例 y=x-1 z=3*x2个数组的对应元素相乘除.*./例 z=x.*y确定数组大小的函数 size(A)返回值数组A的行数和列数(二维)。length(B)确定数组B的元素个数(一维)。,四、数组及其运算,39,

15、五、函数文件,M文件的第一行包含function。功能:建立一个函数,可以同MATLAB的库函数一样使用。,40,五、函数文件,例1 编一个绘制图示波形的函数。,function y=tri(t)y=abs(t)=1.*(1-abs(t);,调用函数tri,并画出它的波形,t=-2:0.05:2;plot(t,tri(t);,解:,41,六、For 循环,例2 编写计算s=1+2+3+100的MATLAB程序。,s=0;for n=1:100 s=s+n;end,解:,42,七、While 循环,s=0;n=1;eps=1e-6;,while 1/(n*n)eps s=s+1/(n*n);n=

16、n+1;end,例3 计算 的值,且误差小于10-6。,fprintf(s=%.5fn,s),解:,43,八、plot函数绘图函数(continuous),t=linspace(0,4*pi,512);plot(t,sin(t),t,cos(t),-.);title(my figure);xlabel(t);legend(sin(t),cos(t);,44,八、plot函数绘图函数(continuous),45,九、stem函数绘图函数(discrete),k=0:39;stem(k,cos(0.9*pi*k);title(cos(0.9pik);,46,九、stem函数绘图函数(discre

17、te),cos(0.9k)波形,47,利用MATLAB进行信号与系统分析,信号的MATLAB表示利用MATLAB进行系统的时域分析利用MATLAB进行信号的频域分析利用MATLAB进行系统的频域特性利用MATLAB进行连续系统的复频域分析利用MATLAB进行离散系统的复频域分析,48,信号的MATLAB表示,一、基本信号的MATLAB表示 指数信号Aeat、指数序列ak、抽样函数Sa(t)、正弦型信号、矩形脉冲信号、三角脉冲信号二、信号基本运算的MATLAB实现 尺度变换、翻转、时移、相加、相乘、差分与求和、微分与积分,49,一、基本信号的MATLAB表示,指数信号Aeat y=A*exp(a

18、*t);指数序列ak幂运算a.k实现正弦型信号内部函数cos()和sin()抽样函数Sa(t)sinc(t)矩形脉冲信号 y=rectpuls(t,width)三角波脉冲信号y=tripuls(t,width,skew),50,一、基本信号的MATLAB表示,%decaying exponential,t=0:001:10;A=1;a=-0.4;ft=A*exp(a*t);plot(t,ft),t=0:0.1:10;A=1;a=-0.4;ft=A*exp(a*t);stem(t,ft),51,一、基本信号的MATLAB表示,%rectpuls,t=0:0.001:4;T=1;ft=rectpu

19、ls(t-2*T,T);plot(t,ft)axis(0,4,-0.5,1.5),52,一、基本信号的MATLAB表示,%tripuls,t=-3:0.001:3;ft=tripuls(t,4,0.5);plot(t,ft),ft=tripuls(t,4,1);,53,一、基本信号的MATLAB表示,%unit impuls sequence,k=-50:50;delta=zeros(1,50),1,zeros(1,50);stem(k,delta),function f,k=impseq(k0,k1,k2)%产生 fk=delta(k-k0);k1=k=k2k=k1:k2;f=(k-k0)=

20、0;,k0=0;k1=-50;k2=50;f,k=impseq(k0,k1,k2);stem(k,f),54,一、基本信号的MATLAB表示,%unit step sequence,k=-50:50;uk=zeros(1,50),ones(1,51);stem(k,uk),function f,k=stepseq(k0,k1,k2)%产生 fk=u(k-k0);k1=0;,k0=0;k1=-50;k2=50;f,k=stepseq(k0,k1,k2);stem(k,f),55,二、信号基本运算的MATLAB实现,t=-3:0.001:3;ft1=tripuls(2*t,4,0.5);subpl

21、ot(2,1,1)plot(t,ft1)title(x(2t)ft2=tripuls(2-2*t),4,0.5);subplot(2,1,2)plot(t,ft2)title(x(2-2t),1.信号的尺度变换、翻转、时移(平移),56,例1已知三角波x(t),用MATLAB画出的x(2t)和x(2-2t)波形。,解:,57,二、信号基本运算的MATLAB实现,2.信号的相加与相乘,相加用算术运算符“+”实现相乘用数组运算符“.*”实现例2画信号Aeatcos(w0t+f)的波形。解:t=0:0.001:8;A=1;a=-0.4;w0=2*pi;phi=0;ft1=A*exp(a*t).*si

22、n(w0*t+phi);plot(t,ft1),58,二、信号基本运算的MATLAB实现,3.离散序列的差分与求和 连续信号的微分与积分,差分y=diff(f);求和y=sum(f(k1:k2);,微分 y=diff(f)/h;h为数值计算所取时间间隔,定积分 quad(function_name,a,b);,function_name为被积函数名,a和b指定积分区间。,59,二、信号基本运算的MATLAB实现,3.离散序列的差分与求和 连续信号的微分与积分,例3已知三角波x(t),画出其微分与积分的波形。,解:%differentiation h=0.001;t=-3:h:3;y1=diff

23、(f2_2(t)*1/h;plot(t(1:length(t)-1),y1),%integrationt=-3:0.1:3;f2=(t)tripuls(t),4,0.5);for x=1:length(t)y2(x)=quad(f2,-3,t(x);endplot(t,y2),60,三角波x(t)微分与积分的波形,61,利用MATLAB进行系统的时域分析,一、连续时间系统零状态响应的求解二、连续时间系统冲激响应和阶跃响应的求解三、离散时间系统零状态响应的求解四、离散时间系统单位脉冲响应的求解五、离散卷积的计算,62,一、连续时间系统零状态响应的求解,t 表示计算系统响应的抽样点向量;,a=a3

24、,a2,a1,a0;b=b3,b2,b1,b0;sys=tf(b,a),y=lsim(sys,x,t),sys=tf(b,a),b和a分别为微分方程右端和左端各项的系数向量。,x 是系统输入信号向量;,sys 是LTI系统模型,借助tf函数获得,63,二、连续系统冲激响应和阶跃响应求解,连续时间系统冲激响应可用impulse函数直接求出,其调用形式为,y=impulse(sys,t),连续时间系统阶跃响应可用step函数直接求出,其调用形式为,y=step(sys,t),t 表示计算系统响应的抽样点向量;sys 是LTI系统模型。,64,三、离散时间系统零状态响应的求解,b,a 分别是差分方程

25、左、右端的系数向量;,b=b0,b1,b2,bM;a=a0,a1,a2,aN;,可用MATLAB表示为,y=filter(b,a,x),x 表示输入序列;y 表示输出序列。,65,四、离散时间系统单位脉冲响应的求解,b,a 分别是差分方程左、右端的系数向量;k 表示输出序列的取值范围;h 就是单位脉冲响应。,h=impz(b,a,k),66,五、离散卷积的计算,例如(s3+2s+3)(s2+3s+2)可用下面MATLAB语句求出。a=1,0,2,3;b=1,3,2;c=conv(a,b),c=conv(a,b),式中a,b为待卷积两序列的向量表示,c是卷积结果。,conv函数也可用于计算两个多

26、项式的积,67,例1 求系统 y(t)+2y(t)+100y(t)=10 x(t)的零状态响应,已知x(t)=sin(2pt)u(t)。,解:%program3_1微分方程求解ts=0;te=5;dt=0.01;sys=tf(10,1 2 100);t=ts:dt:te;x=sin(2*pi*t);y=lsim(sys,x,t);plot(t,y);xlabel(Time(sec)ylabel(y(t),68,例2 求系统 y(t)+2y(t)+100y(t)=10 x(t)的零状态响应,已知x(t)=d(t)。,解:%program3_2连续时间系统的冲激响应ts=0;te=5;dt=0.0

27、1;sys=tf(10,1 2 100);t=ts:dt:te;y=impulse(sys,t);plot(t,y);xlabel(Time(sec)ylabel(h(t),69,例3 分析噪声干扰的信号xk=sk+dk通过M点滑动平均系统的响应,其中sk=(2k)0.9k是原始信号,dk是噪声。,R=51;d=rand(1,R)-0.5;k=0:R-1;s=2*k.*(0.9.k);x=s+d;figure(1);plot(k,d,r-.,k,s,b-,k,x,g-);M=5;b=ones(M,1)/M;a=1;y=filter(b,a,x);figure(2);plot(k,s,b-,k,

28、y,r-);,解:,70,例3 分析噪声干扰的信号xk=sk+dk通过M点滑动平均系统的响应,其中sk=(2k)0.9k是原始信号,dk是噪声。,噪声干扰信号xk=sk+dk通过M点滑动平均系统的响应如图。,71,例4 求系统yk+3yk-1+2yk-1=10 xk的单位脉冲响应。,%program 3_4 离散系统的单位脉冲响应k=0:10;a=1 3 2;b=10;h=impz(b,a,k);stem(k,h),解:,72,例5 计算xk*yk并画出卷积结果,已知xk=1,2,3,4;k=0,1,2,3,yk=1,1,1,1,1;k=0,1,2,3,4。,%program 3_5x=1,2

29、,3,4;y=1,1,1,1,1;z=conv(x,y);N=length(z);stem(0:N-1,z);,解:,73,利用MATLAB进行信号的频域分析,一、连续周期信号频谱的MATLAB实现二、用数值积分分析连续非周期信号频谱三、离散周期信号频谱的MATLAB实现,74,一、连续周期信号频谱的MATLAB实现,频谱Cn一般为复数,可分别利用abs和angle函数获得其幅度频谱和相位频谱。,其调用格式分别为,x=abs(Cn)y=angle(Cn),周期信号的频谱Cn 为离散信号,可以用stem画出其频谱图。,75,例1 试用MATLAB画出图示周期三角波信号的频谱。,解:周期信号的频谱

30、为,76,画三角波信号频谱的MATLAB程序,N=8;n1=-N:-1;%计算n=-N到-1的Fourier系数c1=-4*j*sin(n1*pi/2)/pi2./n1.2;c0=0;%计算n=0时的Fourier系数n2=1:N;%计算n=1到N的Fourier系数c2=-4*j*sin(n2*pi/2)/pi2./n2.2;cn=c1 c0 c2;n=-N:N;subplot(2,1,1);stem(n,abs(cn);ylabel(Cn的幅度);subplot(2,1,2);stem(n,angle(cn);ylabel(Cn的相位);xlabel(omega/omega0);,77,程

31、序运行结果,78,例2 求周期矩形脉冲的Fourier级数表示式,并用MATLAB求出由前N项Fourier级数系数得出的信号近似波形。,取A=1,T=2,t=1,w0=p,解:,79,%Gibbs phenomenon,t=-2:0.001:2;N=input(Number of harmonics=);c0=0.5;xN=c0*ones(1,length(t);%dc componentfor n=0:1:N xN=xN+cos(pi*n*t)*sinc(n/2);%正弦分量为零endplot(t,xN);,80,%Gibbs phenomenon,N=5,N=15,N=50,N=500,

32、81,二、用数值积分分析连续非周期信号频谱,数值函数积分quad可用来计算非周期信号频谱,F 是一个字符串,它表示被积函数的文件名;,a,b 分别表示定积分的下限和上限。,y=quad(F,a,b),82,例3 试用数值方法近似计算三角波信号的频谱。,X(jw)=Sa2(w/2),解:图示三角波可表示为,三角波信号频谱的理论值为,83,例3试用数值方法近似计算三角波信号的频谱。,w=linspace(-6*pi,6*pi,512);N=length(w);X=zeros(1,N);sf=(t,w)(t=-1,84,例3试用数值方法近似计算三角波信号的频谱。,运行结果,85,三、离散周期信号频谱

33、的MATLAB的实现,函数fft可用来计算离散周期信号频谱,x 是离散周期信号0N-1 一个周期的序列值;,Xm=fft(x),Xm 是离散周期信号频谱在0N-1 的值。,函数fft还可用来计算离散非周期信号频谱、连续周期信号和连续非周期信号的频谱。,86,例4计算下图所示周期矩形序列的频谱。,%Program 4_4 计算离散周期矩形序列的频谱N=32;M=4;%定义周期矩形序列的参数x=ones(1,M+1)zeros(1,N-2*M-1)ones(1,M);%产生周期矩形序列X=fft(x);%计算DFS系数m=0:N-1;stem(m,real(X);%画出频谱X的实部title(Xm

34、的实部);xlabel(m)figurestem(m,imag(X);%画出频谱X的虚部title(Xm的虚部);xlabel(m),解:,87,例4计算下图所示周期矩形序列的频谱,88,利用MATLAB进行系统频域分析,一、连续系统频率响应的计算二、周期信号通过系统的响应三、离散系统频率响应的计算,89,一、连续系统频率响应的计算,b 分子多项式系数;a 分母多项式系数;w 需计算的H(jw)的抽样点。(数组w中少需包含两个w的抽样点)。,计算频响的MATLAB函数,H=freqs(b,a,w),90,一、连续系统频响特性的计算,例1三阶归一化的Butterworth低通滤波器的系统函数为,

35、w=linspace(0,5,200);b=1;a=1 2 2 1;h=freqs(b,a,w);subplot(2,1,1);plot(w,abs(h);subplot(2,1,2);plot(w,angle(h);,试画出|H(jw)|和(w)。,解:,91,一、连续系统频响特性的计算,三阶Butterworth低通滤波器的幅度响应和相位响应,92,二、周期信号通过系统的响应,例2 周期方波通过RC系统的响应。,解:,93,二、周期信号通过系统的响应,例2 周期方波通过RC系统的响应。,%p5_2 Periodic signal pass LTI system,T=4;w0=2*pi/T;

36、RC=0.1;t=-6:0.01:6;N=51;c0=0.5;xN=c0*ones(1,length(t);%dc for n=1:2:N%even harmonics are zero H=abs(1/(1+j*RC*w0*n);phi=angle(1/(1+j*RC*w0*n);xN=xN+H*cos(w0*n*t+phi)*sinc(n*0.5);endplot(t,xN);xlabel(time RC=,num2str(RC);grid;set(gca,xtick,-5-3-1 0 1 3 5);,94,二、周期信号通过系统的响应,例2 周期方波通过RC系统的响应。,95,三、离散系统

37、频率响应的计算,计算频率响应的MATLAB函数,b 分子的系数;a 分母系数;,w 抽样的频率点(至少2点),w在02p之间。,h=freqz(b,a,w),96,三、离散系统频率响应的计算,b=1;a1=1-0.9;a2=1 0.9;w=linspace(0,2*pi,512);h1=freqz(b,a1,w);h2=freqz(b,a2,w);plot(w/pi,abs(h1),w/pi,abs(h2),:);legend(alpha=0.9,alpha=-0.9);,解:,例3画出 的幅度响应曲线。,97,三、离散系统频率响应的计算,例3画出 的幅度响应曲线。,98,利用MATLAB进行

38、连续系统的复频域分析,一、部分分式展开的MATLAB实现二、H(s)的零极点与系统特性的MATLAB计算,99,一、部分分式展开的MATLAB实现,r,p,k=residue(num,den),num,den分别为X(s)分子多项式和分母多项式的系数向量。,r为部分分式的系数;p为极点;k为多项式的系数。若为真分式,则k为空。,100,二、H(s)的零极点与系统特性的MATLAB计算,计算多项式根roots的函数可用于计算H(s)的零极点。,r=roots(D)%计算多项式D(s)的根,H(s)零极点分布图可用pzmap函数画出,调用形式为,pzmap(sys),表示画出sys所描述系统的零极

39、点图。,101,例1 用部分分式展开法求X(s)的反变换。,%program6_1format rat%将结果数据以分数的形式输出num=1 2;den=1 4 3 0;r,p=residue(num,den),运行结果为 r=-1/6,-1/2,2/3 p=-3,-1,0,故X(s)可展开为,解:,102,例2 用部分分式展开法求X(s)的反变换。,%program6_2num=2 3 0 5;den=conv(1 1,1 1 2);%将因子相乘的形式转换成多项式的形式r,p,k=residue(num,den)magr=abs(r)%求r的模angr=angle(r)%求r的相角,解:,1

40、03,例2 用部分分式展开法求X(s)的反变换。,运行结果为,r=-2.0000+1.1339i,-2.0000-1.1339i,3.0000p=-0.5000+1.3229i,-0.5000-1.3229i,-1.0000k=2magr=2.299,2.2991,3.0000 angr=2.6258,-2.6258,0,故X(s)可展开为,104,例3试画出系统 的零极点分布图,求其单位冲激响应h(t)和频率响应H(j),并判断系统是否稳定。,num=1;den=1 2 2 1;sys=tf(num,den);poles=roots(den)figure(1);pzmap(sys);t=0:

41、0.02:10;h=impulse(num,den,t);figure(2);plot(t,h)title(Impulse Respone)H,w=freqs(num,den);figure(3);plot(w,abs(H)xlabel(omega)title(Magnitude Respone),解:,105,运行结果,106,利用MATLAB进行离散系统的复频域分析,一、部分分式展开的MATLAB实现二、H(z)的零极点与系统特性的MATLAB计算,107,一、部分分式展开的MATLAB实现,r,p,k=residuez(num,den),num,den分别为X(z)分子多项式和分母多项式

42、的系数向量。,r为部分分式的系数;p为极点;k为多项式的系数。若为真分式,则k为空。,108,二、H(z)的零极点与系统特性的MATLAB计算,利用tf2zp函数计算H(z)的零极点,调用形式为,z,p,k=tf2zp(b,a),H(z)零极点分布图可用zplane函数画出,调用形式为,zplane(b,a),b和a分别为H(z)分子多项式和分母多项式的系数向量。,返回值z为零点、p为极点、k为增益常数。,109,例1 将X(z)用部分分式展开。,%program7_1num=18;den=18 3-4-1;r,p,k=residuez(num,den),运行结果为r=0.3600,0.240

43、0,0.4000 p=0.5000,-0.3333,-0.3333 k=,故X(z)可展开为,解:,110,例2试画出系统 的零极点分布图,求其单位冲激响应hk和频率响应H(ejW)。,%program 7_2b=1 2 1;a=1-0.5-0.005 0.3;figure(1);zplane(b,a);num=0 1 2 1;den=1-0.5-0.005 0.3;h=impz(num,den);figure(2);stem(h)xlabel(k)title(Impulse Respone)H,w=freqz(num,den);figure(3);plot(w/pi,abs(H)xlabel(Frequency omega)title(Magnitude Respone),解:,111,运行结果,112,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号