信号与系统matlab上机实验指导
- 格式:pdf
- 大小:374.81 KB
- 文档页数:16
信号与系统实验指导书信号与系统matlab实验信号与系统实验指导书一、实验目的1、掌握用Matlab绘制波形图的方法,学会常见波形图的绘制。
2、掌握用Matlab编写函数的方法3、通过对周期信号和非周期信号的观察,加深对周期信号的理解。
二、实验内容1、实验原理与计算实例1.1 绘制波图的基本函数 Matlab是一种基于矩阵和数组的编程语言,它将所有的变量都看成矩阵。
它不仅有强大的计算功能,还有各种各样的画图功能。
这里主要介绍信号与系统分析中常见的几个Matlab函数,包括Matlab提供的内部函数和自定义函数。
我们可以在命令窗口中每次执行一条Matlab语句;或者生成一个程序,存为M文,供以后执行;或是生成一个函数,在命令窗口中执行。
下面介绍几个基本函数。
(1)单位阶跃函数 M文名:u.m%单位阶跃函数(连续或离散)%调用格式 y=u(t)产生单位阶跃函数 function y=u(t) y=(t>=0)(2)门函数 M文名:rectplus.m,是Matlab的内部函数。
调用格式 y=rectplus(t)产生高度为1,宽度为1的门函数调用格式y=rectplus(t,W) 产生高度为1,宽度为W的门函数(3)三角脉冲函数 M文名:tripuls.m,是Matlab的内部函数。
调用格式 y=tripuls(t) 产生高度为1,宽度为1的三角脉冲函数调用格式 y=tripuls(t,w) 产生高度为1,宽度为w的三角脉冲函数调用格式 y=tripuls(t,w,s)产生高度为1,宽度为w的三角脉冲函数,-1<s<1。
当s=0时,为对称三角形;当S=-1时,为三角形顶点左边。
(4)抽样函数 M文名:Sa.m %抽样函数(连续或者离散)% 高度为1 % 调用格式 y=Sa(t),产生高度为1,第一个过零点为π function f=Sa(t)f=sinc(t./pi) %sinc(t)=sin(πt)/(πt)是MATLAB函数(5)符号函数 M文名:sign.m是Matlab的内部函数。
信号与系统MATLAB实验报告实验目的本实验旨在通过MATLAB软件进行信号与系统的相关实验,探究信号与系统的特性与应用。
实验步骤1. 准备工作在正式进行实验之前,我们需要做一些准备工作。
首先,确保已经安装好MATLAB软件,并且熟悉基本的操作方法。
其次,准备好实验所需的信号与系统数据,可以是已知的标准信号,也可以是自己采集的实际信号。
2. 信号的生成与显示使用MATLAB编写代码,生成不同类型的信号。
例如,可以生成正弦信号、方波信号、三角波信号等。
通过绘制信号波形图,观察不同信号的特点和变化。
t = 0:0.1:10; % 时间范围f = 1; % 信号频率s = sin(2*pi*f*t); % 正弦信号plot(t, s); % 绘制信号波形图3. 系统的建模与分析根据实验需求,建立相应的系统模型。
可以是线性时不变系统,也可以是非线性时变系统。
通过MATLAB进行模型的建立和分析,包括系统的时域特性、频域特性、稳定性等。
sys = tf([1, 2], [1, 3, 2]); % 系统传递函数模型step(sys); % 绘制系统的阶跃响应图4. 信号与系统的运算对于给定的信号和系统,进行信号与系统的运算。
例如,进行信号的卷积运算、系统的响应计算等。
通过MATLAB实现运算,并分析结果的意义与应用。
x = [1, 2, 3]; % 输入信号h = [4, 5, 6]; % 系统响应y = conv(x, h); % 信号的卷积运算plot(y); % 绘制卷积结果的波形图5. 实验结果分析根据实验数据和分析结果,对实验进行结果总结与分析。
可以从信号的特性、系统的特性、运算结果等方面进行综合性的讨论和分析。
实验总结通过本次实验,我们学习了如何在MATLAB中进行信号与系统的实验。
通过生成信号、建立系统模型、进行运算分析等步骤,我们深入理解了信号与系统的基本原理和应用方法。
通过实验数据和结果分析,我们对信号与系统有了更深刻的认识,并掌握了MATLAB在信号与系统实验中的应用技巧。
实验篇 信号与系统实验指导实验一、MATLAB 编程基础及典型实例一、实验目的(1) 熟悉MATLAB 软件平台的使用; (2) 熟悉MATLAB 编程方法及常用语句; (3) 掌握MATLAB 的可视化绘图技术;(4) 结合《信号与系统》的特点,编程实现常用信号及其运算。
二、实验原理连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。
严格来说,MATLAB 并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。
当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
矩阵是MATLAB 进行数据处理的基本单元,矩阵运算是MATLAB 最重要的运算。
通常意义上的数量(也称为标量)在MATLAB 系统中是作为1×1的矩阵来处理的,而向量实际上是仅有一行或者一列的矩阵。
通常用向量表示信号的时间取值范围,如n = -5:5,但信号x(n)、向量n 本身的下标都是从1开始的,因此必须用一个与向量x 等长的定位时间变量n ,以及向量x ,才能完整地表示序列x(n)。
这一点详情可参考预备篇示例7的程序说明。
三、实验内容与步骤(1) 新建一个文件夹,以自己的汉语名字命名,以后就用该文件夹专门存放自己所编制的M 文件和产生的图形;将该文件夹设置成当前工作目录。
(2) 绘制信号t)32sin(e x(t)t 2-=的曲线,t 的范围在0 ~ 30s ,取样时间间隔为0.1s.(3) 在n = [-10:10] 范围产生离散序列:⎩⎨⎧≤≤-=其余n0,3n 32n,x(n) ,并绘图。
四、实验报告要求整理并给出“实验内容与步骤”(2)、(3)的程序代码与产生的图形;并回答下面的问题。
(1) 在调用某一函数文件时,该文件中除了输入、输出变量外的其它变量在调用函数结束后是否还存在?这些变量是全局还是局部变量?(2) 设n = -10:0.2:20,你可以通过哪些方法查看向量n 的维数?经过关系运算y = (n >= 3)以后,y 的维数是多少?y 又等于什么?(3) 通过MATLAB 的帮助系统,学习fliplr 函数的功能和使用方法。
《信号与系统》上机实验指导书山东建筑大学信息与电气工程学院电子信息教研室目录实验一、连续信号的时域描述与运算 (3)实验二、离散信号的时域描述与运算 (14)实验三、连续信号的频域分析 (19)实验四、离散信号的频域分析…………………………………………………….实验五、连续线性时不变系统分析 (22)实验一 连续信号的时域描述与运算一、 实验目的1,通过绘制典型信号的波形,了解这些信号的基本特征;2,通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。
二、 实验原理及方法1. 基于matlab 的信号描述方法如果一个信号在连续时间范围内(除有限个间断点外)有定义,则称该信号为连续时间信号,简称为连续信号。
从严格意义上讲,matlab 数值计算方法并不能处理连续信号,但是可以利用连续信号在等时间间隔点的采样值来近似表示连续信号,即当采样间隔足够小时,这些离散采样值能够被matlab 处理,并且能够较好地近似表示连续信号。
(1)向量表示法对于连续时间信号f(t),可以定义两个行向量f 和t 来表示,其中向量t 是形如t=t1:△t:t2的matlab 命令定义的时间范围向量,t1为信号的起始时间,t2为终止时间,△t 为时间间隔;向量f 为连续时间信号f(t)在向量t 所定义的时间点上的采样值。
例如对于连续正弦信号)4sin()(t t f π=,可以用向量表达式表示为:t=-8:1:8;y=sin(pi*t/4); plot(t,y); grid on;axis([-8 8 -1.1 1.1]);绘制的信号波形如实验图1-1所示,当把时间间隔△t 取得更小(如△t =0。
01)时,就可以得到f(t)较好的近似波形,如实验图1-2所示。
(2)符号运算表示法如果信号可以用一个符号表达式来表示,则可用ezplot 命令绘制出信号的波形。
例如对于连续信号)4sin()(t t f π=,可以用符号表达式表示为:f=sym(‘sin(pi/4*t)’);ezplot(f,[-8 8]);该命令绘制的信号波形如实验图1-3所示。
实验一Matlab编程基础一、实验目的1. 学习Matlab软件的基本使用方法;2. 了解Matlab的计算、显示及绘图功能。
二、实验内容1. 运行Matlab软件,熟悉各窗口功能;2. 编制程序,完成数值计算,并显示计算结果;3. 给定数据,完成绘图显示。
三、实验步骤1. 熟悉Matlab软件窗口1)点击桌面上的“Matlab”图标,运行Matlab软件,显示Matlab软件主界面。
2)点击“新建”图标,显示编辑界面。
说明:1)在主界面中,“Current Directory”是Matlab软件运行环境的当前路径;“Workspace”是Matlab软件当前的工作空间,可以看到各种变量内容;“Command Window”是Matlab 软件命令窗口,可以直接运行命令,也可以显示运行结果。
2)在编辑界面中,可以编辑运行程序。
编辑完成后,可以点击绿色向右箭头按钮运行所编辑的代码。
2. 熟悉常用指令及编程方法1)常用指令●function:在MATLAB中不是它的自带函数就可以完成所有功能,更多的时候是自己编写程序来实现我们要的功能,这时就要用到此命令,调用格式为:function ****( ) 括号外面为函数名称,括号中为函数中要用到的变量。
●plot命令:plot命令是MATLAB中用来绘制用向量表示法表示的连续信号的波形。
它的功能是将向量点用直线依次连接起来。
调用格式:plot(k,f),其中k和f是向量。
●ezplot命令:ezplot命令是用来绘制用符号运算表示法表示的连续信号的波形。
调用格式:ezplot(f,[t1,t2]),其中[t1,t2]为一时间范围,f为以t为变量的函数。
●title命令:在绘图命令中,我们可以用此命令来对绘制出来的波形做一些注释,以便后期我们做图形处理。
调用格式为:title(‘……‘) 中间部分可以任意对图形进行注释的文字。
●xlabel、ylabel命令:这两个也是来对绘制出来的波形做标注用的,可以标注出两个坐标轴的未知数的意义,增加图形中的信息量。
《信号与系统及MATLAB实现》实验指导书前言长期以来,《信号与系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MA TLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。
MA TLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MA TLAB 再多了解一些。
MA TLAB究竟有那些特点呢?1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来;2.完备的图形处理功能,实现计算结果和编程的可视化;3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握;4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具;MA TLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。
正是基于这些背景,我们编写了这本《信号与系统及MA TLAB实现》指导书,内容包括信号的MA TLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。
通过这些练习,同学们在学习《信号与系统》的同时,掌握MA TLAB的基本应用,学会应用MA TLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MA TLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。
另外同学们在进行实验时,最好事先预习一些MA TLAB的有关知识,以便更好地完成实验,同时实验中也可利用MA TLAB的help命令了解具体语句以及指令的使用方法。
实验一基本信号的波形一、实验目的:1.掌握matlab软件的基本操作。
2.熟悉matlab的基本命令的使用。
3.掌握用matlab绘出基本信号。
二、实验原理:1. 信号的时域表示方法1.1将信号表示成独立时间变量的函数例如x(t)=sin(ωt) 和x[n]=n(0.5)n u[n]分别表示一个连续时间信号和一个离散时间信号。
在MA TLAB中有许多内部函数,可以直接完成信号的这种表达,例如:sin():正弦信号cos():余弦信号exp():指数信号1.2用信号的波形图来描述信号用函数曲线表示一个信号,图1.1就是一个连续时间信号和一个离散时间信号的波形图。
图1.1 连续时间信号与离散时间信号的波形图1.3将信号用一个数据序列来表示对于离散时间信号,还可以表示成一个数的序列,例如:x[n]={...., 0.1, 1.1, -1.2, 0, 1.3, ….}↑n=0在《信号与系统》和《数字信号处理》课程中,上述三种信号的描述方法是经常要使用的。
2 用MATLAB仿真连续时间信号和离散时间信号在MATLAB中,无论是连续时间信号还是离散时间信号,MATLAB都是用一个数字序列来表示信号,这个数字序列在MATLAB中叫做向量(vector)。
通常的情况下,需要与时间变量相对应。
如前所述,MA TLAB有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。
2.1连续时间信号的仿真程序Program1_1是用MATLAB 对一个正弦信号进行仿真的程序,请仔细阅读该程序,并在计算机上运行,观察所得图形。
% Program1_1% This program is used to generate a sinusoidal signal and draw its plot clear, % Clear all variablesclose all, % Close all figure windowsdt = 0.01; % Specify the step of time variable t = -2:dt:2; % Specify the interval of time x = sin(2*pi*t); % Generate the signalplot(t,x) % Open a figure window and draw the plot of x(t) title('Sinusoidal signal x(t)') xlabel('Time t (sec)')常用的图形控制函数axis([xmin,xmax,ymin,ymax]):图型显示区域控制函数,其中xmin 为横轴的显示起点,xmax 为横轴的显示终点,ymin 为纵轴的显示起点,ymax 为纵轴的显示终点。
实验一基本信号产生及运算1.1实验目的1、利用MATLAB产生基本信号、绘制信号波形。
2、实现信号的基本运算,重点掌握卷积和运算。
1.2实验原理1、MATLAB的基本应用方法命令窗口(Command window)的使用;输入各类变量函数名称,按回车即得到当前变量或函数值;输入各类命令,按回车即得到该命令执行结果;若需要输入多行命令或程序,各行间用“:”间隔;2、M文件的编制与调试执行一行中“%”以后内容为注释部分,不影响程序执行;程序编制完毕后,如果出现错误,可在命令窗口看到错误类型及位置,根据错误检测信息对程序进行调试;MATLAB命令及函数信号ide表达方式及作图3、在MATLAB中,任何变量或函数均表现为向量,任何向量的元素编号均从1开始;序列(向量)表达方式设定坐标向量n和信号向量x:x和n为长度相同的向量,向量的编号从1开始;n=[-2:0.1:2]坐标向量也可以直接逐点写出:n=[2 3 4 5 6 7];也可以采用起点,终点和步长的形式写出:n=[-2:0.1:2];信号向量可以直接逐点写出:x=[1 2 3 4 3 2];也可以采用与n有关的函数运算形式写出:例如:x=3*n x=exp(j*(pi/8)*n)作图:采用setm(n,x)作出离散图形DT信号采用plot(n,x)做出连续图形(折线连续)CT信号作图时主要通过合理设置n的范围及步长来保证变量坐标的正确性;可以利用title,axis等函数为图形设置说明和坐标范围;特别注意:作图时必须保证坐标向量与信号向量长度一致;0101:离散序列的作图直接表现离散序列n=[2 3 4 5 6 7];x=[1 2 3 4 3 2];stem(n,x);0102:将图形表现为连续曲线n=[2 3 4 5 6 7];x=[1 2 3 4 3 2]plot(n,x);0203:信号表现为坐标向量的函数n=[2 3 4 5 6 7];x=exp(j*(pi/8)*n);plot(n,x);0204:图形说明和坐标范围的设置n=[-20:0.5:20];x=exp(j*(pi/8)*n);plot(n,x),title(‘n=[-20:05:20];x=exp(j*(pi/8)*n);plot(n,x)’);axis([-20,20,-2.2]);有MATABJISUAN序列{-2 0 1 -1 3}和序列{1 2 0 -1}的离散卷积程序如下:char;N=5;M=4;L=N+M-1;x=[-2 0 1 -1 3];h=[1 2 0 -1];y=conv(x,h);nx=0:N-1;nh=0:M-1;ny=0:L-1;subplot(231);stem(nx,x,'.k');xlabel('n');ylabel('x(n)');grid on;subplot(232);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');grid on;subplot (233);stem(ny,y,'.k');xlabel('n');ylabel('y(n)');grid on;结果如图1.1图1.0例1:产生32点单位抽样序列clear all;N=32;x=zeros(1,N);x(1)=1;xn=0:N-1;Stem(xn,x);Axis([-1 33 0 1.1])结果如图1.1图2.1例二:产生32点,并向右移20的单位抽样序列clear a0ll; N=32; K=20;x=zeros(1,N); x(K)=1; xn=0:N-1; stem(xn,x);axis([-1 33 0 1.1]) 结果如图1.2列三:产生32点单位阶跃序列clear all; N=32;x=ones(1,N); x(1)=1; xn=0:N-1; stem(xn,x);axis([-1 32 0 1.1])结果如图1.3例四:n=[0:10];x=(0.9).^n; stem(n,x); 结果如图1.4例五:求两序列的卷积和clear;N=5;图1.2图1.4图1.3M=6; L=N+M-1; x=[1,2,3,4,5]; h=[6,2,3,6,4,2]; y=conv(x,h); nx=0:N-1; nh=0:M-1; ny=0:L-1; subplot(231);stem(nx,x,'.k');xlabel('n');ylabel('x(n)');grid on; subplot(232);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');grid on; subplot (233);stem(ny,y,'.k');xlabel('n');ylabel('y(n)');grid on; 结果如图1.5图1.5例6:已知H(Z)=0.001836+0.007344z -1+0.011016z -2+0.00734z-3+0.001836z -4/1-3.0544z -1+3.8291z -22.2925z -3+0.55075z -4求该系统的阶跃响应clear;x=ones(100); t=1:100;b=[.001836,.007344,.011016,.007374,.001836]; a=[1,-3.0544,3.8291,-2.2925,.55075]; y=filter(b,a,x);plot(t,x,'r.',t,y,'k-');grid on; ylabel('x(n) and y(n)');xlabel('n'); 结果如图1.6 例七:冲击响应>> clear;b=[.001836,.007344,.011016,.007374,.001836]; a=[1,-3.0544,3.8291,-2.2925,.55075]; [h,t]=impz(b,a,40); subplot(221);stem(t,h,'.');grid on; ylabel('h(n)')xlabel('n')图1.6结果如图1.7图1.71.3实验内容1.用MATLABJISUAN 序列{-2 0 1 -1 3}和序列{1 2 0 -1}的离散卷积 程序: char; N=5; M=4; L=N+M-1; x=[-2 0 1 -1 3]; h=[1 2 0 -1]; y=conv(x,h); nx=0:N-1; nh=0:M-1; ny=0:L-1; subplot(131);stem(nx,x,'.k');xlabel('n');ylabel('x(n)');grid on; subplot(132);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');grid on; subplot (133);stem(ny,y,'.k');xlabel('n');ylabel('y(n)');grid on; 结果如图1.8图1.8 图1.92.x(n)=[3,11,7,0,-1,4,2],-3<=n<=3;h(n)=[2,3,0,-5,2,1],-1<=n<=4求卷积y(n)=x(n)*h(n). N=7; M=6; L=N+M-1;x=[3,11,7,0,-1,4,2];h=[2,3,0,-5,2,1];nx (n)nh (n )ny (n)nx (n)nh (n )ny (n )y=conv(x,h); nx=-3:3; nh=-1:4; ny=0:L-1; subplot(131);stem(nx,x,'.k');xlabel('n');ylabel('x(n)');grid on; subplot(132);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');grid on; subplot (133);stem(ny,y,'.k');xlabel('n');ylabel('y(n)');grid on;结果如图1.93.用MATTLAB 计算差分方程,Y(n)+0.7y(n-1)-045y(n-2)-0.6y(n-3)=0.8x(n)-0.44x(n-1)+0.36(n-2)+0.22x(n-3)求该系统的单位抽样响应和阶跃响应n=40. 阶跃响应: clear;x=ones(40); t=1:40;b=[.8,-.44,.36,.02]; a=[1,.7,-.45,-.6]; y=filter(b,a,x);plot(t,x,'r.' ,t,y,'k-');grid on;ylabel('x(n) and y(n)');xlabel('n'); 结果如图1.10图1.10抽样响应:clear all; N=40;x=zeros(1,N); x(1)=1; n=1:40;b=[.8,-.44,.36,.02]; a=[1,.7,-.45,-.6]; y=filter(b,a,x);stem(n,y,'k-');图1.11axis([-1 50 -2 2]); grid on;ylabel('x(n) and y(n)');xlabel('n'); 结果如图1.11 4.实验一: clf;h=[3 2 1 -2 1 0 -4 0 3]; x=[1 -2 3 -4 3 2 1]; y=conv(h,x); n=0:14;subplot(211); stem(n,y);xlabel('Time index n');ylabel('Amplitude'); title('Output Generated by Filtering');grid; x1=[x zeros(1,8)]; y1=filter(h,1,x1); subplot(212); stem(n,y1);xlabel('Time index n');ylabel('Amplitude'); title('Output Generated by Filtering');grid; 实验结果如图1.12图1.121.4实验总结此次上机实验使我熟悉并基本掌握了MATLAB 的使用方法,基本上可以利用MATLAB产生基本信号、绘制信号波形,实现信号的基本运算,重点掌握卷积和运算。
信号与系统实验指导书(MATLAB仿真)目录实验一MATLAB 基本应用 (2)实验二信号的时域表示 (7)实验三连续信号卷积 (11)实验四典型周期信号的频谱表示 (18)实验五傅立叶变换性质研究 (23)实验六离散信号分析 (26)实验七离散系统的Z域分析 (29)Matlab相关符号及函数说明 (37)实验一MATLAB 基本应用一、实验目的:学习MATLAB的基本用法,了解 MATLAB 的目录结构和基本功能以及MATLAB在信号与系统中的应用。
二、实验内容:例一已知x的取值范围,画出y=sin(x)的图型。
参考程序:x=0:0.05:4*pi;y=sin(x);plot(y)例二计算y=sin(π/5)+4cos(π/4)例三已知z 取值范围,x=sin(z);y=cos(z);画三维图形。
z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)xlabel('x')ylabel('y')zlabel('z')例四已知x的取值范围,用subplot函数绘图。
参考程序:x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(2,2,1),plot(x,y1),title('sin(x)')subplot(2,2,2),plot(x,y2),title('1.5*cos(x)')subplot(2,2,3),plot(x,y3),title('sin(2*x)')subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')连续信号的MATLAB表示1、指数信号:指数信号Ae at在MATLAB中可用exp函数表示,其调用形式为:y=A*exp(a*t) (例取A=1,a=-0.4)参考程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;注:grid on是一个函数,表示在画图的时候添加网格线。
目录一、Matlab基本知识---------------------------------------------------------------------------------------11、定义变量------------------------------------------------------------------------------------------------12、定义矩阵------------------------------------------------------------------------------------------------23、一般说明------------------------------------------------------------------------------------------------44、M-文件--------------------------------------------------------------------------------------------------5二、连续系统分析--------------------------------------------------------------------------------------------61、系统函数表示方法------------------------------------------------------------------------------------62、时域响应------------------------------------------------------------------------------------------------73、频域响应------------------------------------------------------------------------------------------------8三、离散系统分析-------------------------------------------------------------------------------------------91、卷积和-------------------------------------------------------------------------------------------------92、系统函数表示方法----------------------------------------------------------------------------------113、时域仿真----------------------------------------------------------------------------------------------124、其它相关分析函数----------------------------------------------------------------------------------13四、作图-------------------------------------------------------------------------------------------------------131、二维图形----------------------------------------------------------------------------------------------132、三维图形----------------------------------------------------------------------------------------------15一、Matlab 基本知识。
1、 定义变量。
在主命令窗口键入: a=2 按回车后屏幕显示: 表示定义了一个变量,变量名为a ,并赋值为2。
在主命令窗口键入: b=4; 按回车后屏幕无显示(这是符号“;”的作用) 但又定义了一个变量,变量名为b ,并赋值为4。
在主命令窗口键入: c=a+b 定义第三个变量,变量名为c ,并赋值为6。
在主命令窗口键入:d=(c -b)… /a相当于键入:d=(c -b)/a (…表示续行) d 赋值为1。
在主命令窗口键入: f=a^b定义第五个变量,变量名为f ,并赋值为1624=。
Matlab 中有一些自定义变量,可以直接引用:pi —— 圆周率p i , j —— 虚数因子(即1-)最好不要将这些自定义变量赋成其他的值。
此外,还有特殊因子e —— 可表示以10为底的幂运算 (如1e3 =1000,3e -2 = 0.03)在主命令窗口键入: y =2*(2+j*3) 按回车后屏幕显示: 表示定义了一个复数变量y 。
Matlab 中有一些自定义函数,可以直接调用:cos —— 余弦函数 sin —— 正弦函数 exp —— 指数函数 log —— 求自然对数 log10 —— 对数函数a=2MATLAB 中运算符号加 + 减 - 乘 * 除 / 求幂 ^y =4.0000 + 6.0000iabs —— 求复数的模或实数的绝对值 angle —— 求复数的幅角(单位:弧度) 注意:在Matlab 里的角度都是以弧度而不是度作为单位,因此sin(90) ¹ sin(90 °)在主命令窗口键入: f = cos(a) 得:在主命令窗口键入: g = exp(b) 得:在主命令窗口键入: h = exp(y) 得:))6sin(je )6cos(e (44+=h在主命令窗口键入: k = abs(y) 得:在主命令窗口键入: m = angle(y) 得:2、 定义矩阵。
Matlab 建立在矩阵和向量(或数组)运算的基础上,通常把标量看成是1´1的矩阵。
Matlab 内部定义了很多关于矩阵运算的函数,编写程序的时候可以直接调用。
在主命令窗口键入: a=[1 2 3] 或 a=[1, 2, 3] 得1´3的向量:在主命令窗口键入: a=1:1:3 或 a=1:3 结果同上在主命令窗口键入: a2 = 1 : 0.1 : 3 或 a2=linspace(1, 3, 21)都会产生一个1´21的向量,依次为:1 1.1 1.2 1.3 1.4 (3)这两种方法有所不同。
第1种方法参数依次为:初值、增量、终值;而在linspace 函数中是(初值,终值,取值点的个数),由这三个参数直接计算增量。
可以通过下面的方法在a 中添加新的元素:再键入: a(5)=5 得:此时a 仍为向量。
f =-0.4161 g =54.59815 h =52.4235 -15.2556i m =0.98279k =7.2111 a =1 2 3 0 5a = 1 2 3再键入: a(2,3)=4 得:此时a 被扩充为2´5的矩阵,并可注意到除了在上面的语句中人为给定取值的元素外,a 中没被赋值的其它元素都被Matlab 自动赋值为0。
在主命令窗口键入:b=[6;7] 得: (产生一个2´1的向量)可以通过矩阵的组合产生新矩阵。
在主命令窗口键入:c=[b a] 得:也可直接在主命令窗口键入:c=[6 1 2 3 0 5; 7 0 0 4 0 0] 结果同上用下面的方法可以产生特殊矩阵:y =[] 得到一个空矩阵; y =zeros(n,m) 得到一个n ´m 的零矩阵; y =ones(n,m) 得到一个n ´m 的1矩阵; y =eye(n) 得到一个n ´n 的单位阵;前面给出的运算符号和各种自定义函数也适用于矩阵的运算中,但进行矩阵乘的时 候要注意矩阵的行和列必须满足相乘的条件。
在主命令窗口键入:a = [1 2 3];b = [4 5 6];c = a + b 得:在主命令窗口键入:d = exp(-2*a) 得: 相当于642e ,e ,e ---a =1 2 3 0 5 0 0 4 0 0b =6 7c =6 1 2 3 0 57 0 0 4 0 0c =5 7 9d =0.1353 0.0183 0.0025若键入:f =a*b 会给出出错的信息:“Inner matrix dimensions must agree ”有时要进行矩阵间元素-元素的相应运算,可以在运算符号前面加“.”来实现。
在主命令窗口键入: f = a.*b 得:相当于a 和b 中对应元素相乘:1*4, 2*5 , 3*6在主命令窗口键入:t = -2:0.1:2; x = t.*exp(-2*t)得到的x 中的元素是t t x 2e -=分别在t = -2, -1.9, -1.8, -1.7,…,2所对应的数值。
在主命令窗口键入:z = x.*stepfun(t , 0);得到的z 中的元素是)(e 2t u t z t -=分别在t = -2, -1.9, -1.8, -1.7,…,2所对应的数值。
在运用stepfun(T , T0) 函数时要注意T 中的数值要按递增的顺序排列才能得到正确的同阶跃函数相似的波形。
3、 一般说明。
Matlab 中的变量区分大小写,如:“a ”和“A ”表示不同的变量。
Matlab 中“%”后的语句为注释语句(显示为绿色字体)。
键入“demo ”可观看不同类别的演示。
键入“help ”可得到一般的帮助信息,如果键入“help ”+“函数名”则可得到某个函数的帮助信息(如:help exp 可得到exp 函数的用法,意义和相关函数)。
键入“who ”和“whos ”可显示工作空间内所有的变量以及相关信息,键入“clear ”可清除所有变量信息。
键入“length(x)”得到向量x 的长度,而“size(y)”得到矩阵y 的维数。
f =4 10 184、 M-文件。
在Matlab 中可以通过编写M-文件来实现定义新的函数和特定的计算目的。
在主命令窗口中点击屏幕左上角的“File ”,选择“New ”选项中的“M-File ”,可以打开M-文件的编辑窗口。
在编辑窗口中输入命令语句(和在主命令窗口中的输入形式完全相同),然后存储为filename.m 的文件形式(“filename ”应以字母开头,不要有空格或中文字符,也不要和Matlab 已有的函数名重名)。