您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MATLAB课程作业
-1-MATLAB结课作业姓名:班级:学号:-2-目录摘要·························3正文1.信号的表达·····················51.1离散时间信号x(n)的表达1.2连续时间信号x(t)的表达与画图2.LTI系统的卷积运算·················72.1离散信号的卷积2.2连续时间卷积的数值近似3.系统函数与系统性质分析··············93.1系统零点,极点和零极图3.2部分分式分解与系统单位冲激响应4.应用前景·····················12参考文献······················13-3-摘要MATLAB是mathworks公司推出的一项高性能的数值计算和可视化软件,其强大的计算和图形功能使其在科学计算领域赢得了众多的用户。MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLABMATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。-4-本次作业主要是利用MATLAB软件解决所学相关课程,工程项目,实际生活中的问题。主要包括题目来源,理论分析,实现过程,仿真或实验结果及参考文献等。MATLAB特点:.1.语言简洁紧凑形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作2.运算符丰富由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短3.MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性4.程序限制不严格,程序设计自由度大例如,在MATLAB里,用户无需对矩阵预定义就可使用。5.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行6.MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力7.源程序的开放性·开放性也许是MATLAB最受人们欢迎的特点。·除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱8.MATLAB的缺点:和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。-5-“信号与系统”课程是一门实用性较强、涉及面较广的专业基础课,是电子信息类专业学生的必修课程。它是将学生从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后继专业课起着承上起下的作用。该课程的基本方法和理论大量运用于计算机信息处理的各个领域,特别是通信、图像处理、数字信号分析等领域,应用更为广泛。1信号的表达信号可以表达为时间的函数,根据定义的不同,信号可以分为连续时间信号和离散时间信号,分别表示为x(t)和x[n];对于确定信号,时间变量值与对应的函数值形成一一对应关系。要将信号保存到计算机系统中,信号必须表现为有限长度的离散数字序列;在MATLAB中,信号与对应的时间变量采用两个一维向量(序列)表示,两序列长度必须相等。1.1离散时间信号x(n)的表达:离散时间变量n只能取整数值,与其对应的函数值形成离散时间信号;x和n为长度相同的序列,序列元素的编号从1开始;坐标序列n值的设置:n=[-3:3]设定起点和终点;x的值可以直接设置,也可以根据与n有关的运算得到(必须先定义n):x=[1234321]x=3*nx=exp(j*(pi/8)*n),采用函数stem(n,x)可以作出离散信号的图形。例1.1离散时间信号的表达:画出下列离散信号解:MATLAB程序为:n=[0:6];n1=[0:30];x1=[1234321];x2=3*n;x3=exp(j*(pi/8).*n1);x4=0.8.^n1;subplot(2,2,1),stem(n,x1);ylabel('x1');subplot(2,2,2),stem(n,x2);ylabel('x2');subplot(2,2,3),stem(n1,x3);ylabel('x3');subplot(2,2,4),stem(n1,x4);ylabel('x4');执行结果为-6-1.2连续时间信号x(t)的表达与画图:当时间变量取值间隔足够小时,可以看作是连续变化,与其对应的函数值成为连续时间函数;坐标变量t值的设置:t=[0:0.1:10],设定起点、变化步长和终点;x的值必须根据与t有关的运算得到(必须先定义t),t和x必须为长度相同的序列;x1=[zeros(1,30)ones(1,40)zeros(1,31)],x2=2-0.3*tx3=exp(j*(pi/8)*t)采用函数plot(t,x)可以作出连续时间信号的图形(离散点之间采用直线连接构成连续图形);例1.2连续时间信号的表达:画出下列连续信号解:MATLAB程序为:t=[0:0.1:10];x1=[zeros(1,30)ones(1,40)zeros(1,31)];x2=2-0.3*t;x3=exp(j*(pi/8)*t);x4=exp(-0.2*t).*cos(2*pi*t);subplot(2,2,1),plot(t,x1);ylabel('x1');axis([0,10,-0.2,1.2]);subplot(2,2,2),plot(t,x2);ylabel('x2');-7-subplot(2,2,3),plot(t,x3);ylabel('x3');subplot(2,2,4),plot(t,x4);ylabel('x4');执行结果为:2LTI系统的卷积运算LTI系统可以采用系统冲激响应h表达;对于已知系统(已知系统冲激响应h),当系统输入信号为x时,系统输出信号表现为h与x的卷积y=h*x;当h端点为(h1,h2),x端点为(x1,x2)时,y的端点为(h1+x1,h2+x2);在MATLAB中,三者均由有限数字序列表示;在MATLAB中,可以利用函数y=conv(h,x)求卷积,由已知系统h、输入x,求系统输出y。2.1离散信号的卷积已知系统冲激响应h,直接通过卷积求解:y=conv(h,x);要点:h和x均应为有限长度;y的长度为(h+x-1);对y画图时,时间变量的长度和端点应正确设定。例2.1利用下列程序,通过改变信号,演示卷积的重要性质;解:MATLAB程序为:n=[-10:10];h=[zeros(1,10)11111zeros(1,6)];x=[zeros(1,6)100000000zeros(1,6)];n1=[-20:20];y=conv(h,x);subplot(2,2,1),stem(n,x);ylabel('x');subplot(2,2,2),stem(n,h);ylabel('h');-8-subplot(2,1,2),stem(n1,y);ylabel('y');执行结果为2.2连续时间卷积的数值近似对于有限区间内的连续信号,应先通过离散化成为有限数字序列,再进行卷积,最后用plot画出输出波形。要点:h和x均应为有限长度;y的长度为(h+x-1),对y画图时,时间变量的长度和端点应正确设定;连续信号的卷积本来是由积分定义的,改为离散序列进行卷积,应该将结果乘以采样周期T,即:y=conv(h,x)*T。例2.2利用下列程序,通过改变信号,演示卷积的重要性质;解:MATLAB程序为:T=0.01;t=[-2:T:10];u=(t=0);u2=(t=2);u5=(t=5)h=u-u2;x=u-u5;%x=exp(-0.5*t).*u;t1=[-4:T:20];y=conv(h,x)*T;subplot(2,2,1),plot(t,x);axis([-2,10,-0.2,1.2]);ylabel('x');subplot(2,2,2),plot(t,h);axis([-2,10,-0.2,1.2]);ylabel('h');subplot(2,1,2),plot(t1,y);axis([-2,20,-2,3]);ylabel('y');执行结果为-9-3系统函数与系统性质分析3.1系统零点,极点和零极图系统函数是复变量s或z的有理分式,当某变量值使系统函数为零时,该变量值称为系统零点;当某变量值使系统函数为无限大时,该变量值称为系统极点;当系统序列a和b为有限长度时,系统零点数量和极点数量有限,可以分别用零点序列和极点序列表达,此时系统函数可以表达为因子形式上式中k值称为系统增益。在复平面上,将零点和极点分别以的形式标出,称为系统零极图。利用MATLAB函数zplane(b,a)可以画出给定系统的零极图;利用MATLAB函数[z,p,k]=tf2zp(b,a)可以以数值形式得到系统的零点序列,极点序列和增益。例3.1对于系统函数,求系统的零点序列,极点序列和增-10-益,并画出系统的零极图。解:MATLAB程序为:b=[0050];a=[1-123];zplane(b,a);[z,p,k]=tf2zp(b,a)执行结果为z=0,p=[0.9219+1.6449i0.9219-1.6449i-0.8437]k=53.2部分分式分解与系统单位冲激响应利用系统函数求系统单位冲激响应时经常采用部分分式分解方法,利用系统极点将系统函数分解为一阶分式的和,每个一阶分式与一个冲激响应模式对应:对于连续系统对于离散系统-11-利用MATLAB函数[r,p]=residuez(b,a)可以由已知系统得到分解系数序列r,极点序列p,由此可以方便地写出单位冲激响应的闭合表达形式;采用MATLAB函数dimpulse(b,a,N)和dstep(b,a,N)可以直接得到以N点序列表达的离散系统单位冲激响应和单位阶跃响应;采用MATLAB函数impulse(b,a,t)和step(b,a,t)可以得到以给定序列t为变量表达的连续系统的单位冲激响应和单位阶跃响应;例3.2对于系统函数,求出系统单位冲激响应的系数序列r和极点序列p,并
本文标题:MATLAB课程作业
链接地址:https://www.777doc.com/doc-6339411 .html