




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MUTLAB的信号与系统实验仿真信号与系统仿真实验指导书徐龙秋 整理河北工程大学信息与电气工程学院电子信息工程2011年5月 综 述本实验任务是将课程中的重点,难点及课后练习用MATLAB和实验箱进行信号与系统的综合实验,从而加深对信号与系统,数字信号处理基本原理,方法与应用的理解,从基本理论过渡到实际应用。通过本实验的学习,使学生牢固掌握信号与系统的基本原理和基本分析方法,掌握信号与系统的时域、变换域分析方法,理解各种变换(傅里叶变换、拉普拉斯变换、Z变换)的基本内容、性质与应用,特别要建立信号与系统的频域分析的概念以及系统函数的概念,并能建立简单电路的数学模型,对数学模型求解,掌握Si
2、muLink仿真的基本方法和元件构成,进一步提高分析问题与实践技能的能力,培养整理实验数据和分析实验结果的能力,学会信号的波形、信号的频谱与系统频率特性曲线的绘制,写出符合要求的实验报告,加深理解与巩固理论教学知识,为网络理论,通讯理论,信号处理与信号检测等学科打下必要的基础。目 录MATLAB及其操作简述4熟悉MATLAB环境10实验一 典型信号的描述及运算13实验二 连续时间信号卷积及MATLAB实现24实验三 系统时域特性的仿真分析实验27实验四 连续时间信号的频域特性仿真实验34实验五 连续信号的采样与恢复37实验六 拉普拉斯变换及其逆变换41实验七 离散系统的Z域分析52MATLAB
3、及其操作简述1.1 MATLAB简介 MATLAB是由美国Math Works公司推出的软件产品。MATLAB是“Matric Laboratory”的缩写,意及“矩阵实验室”。MATLAB是一完整的并可扩展的计算机环境,是一种进行科学和工程计算的交互式程序语言。它的基本数据单元是不需要指定维数的矩阵,它可直接用于表达数学的算式和技术概念,而普通的高级语言只能对一个个具体的数据单元进行操作。因此,解决同样的数值计算问题,使用MATLAB要比使用Basic、Fortran和C语言等提高效率许多倍。许多人赞誉它为万能的数学“演算纸”。MATLAB采用
4、开放式的环境,你可以读到它的算法,并能改变当前的函数或增添你自己编写的函数。在欧美的大学和研究机构中,MATLAB是一种非常流行的计算机语言,许多重要的学术刊物上发表的论文均是用MATLAB来分析计算以及绘制出各种图形。它还是一种有利的教学工具,它在大学的线性代数课程以及其它领域的高一级课程的教学中,已成为标准的教学工具。最初的MATLAB是用FORTRAN编写的,在DOS环境下运行。新版的MATLAB 是C语言编写的高度集成系统。它在几乎所有流行的计算机机种,诸如PC、MACINTOSH、SUN、VAX上都有相应的MATLAB版本。新版的MATLAB增强了图形处理功能,并在WINDOWS环境
5、下运行。现今,MATLAB的发展已大大超出了“矩阵实验室”的范围,在许多国际一流专家学者的支持下,Maths Works公司还为MATLAB配备了涉及到自动控制、信息处理、计算机仿真等种类繁多的工具箱(Tool Box),这些工具箱有数理统计、信号处理、系统辨识、最优化、稳健等等。近年来一些新兴的学科方向,Maths Works公司也很快地开发了相应的工具箱,例如:神经网络、模糊逻辑等。1.2 MATLAB操作说明一启动MATLAB启动MATLAB有两种方法:1在WINDOWS下,点D:matlabbinmatlab.exe进入MATLAB环境;
6、2在DOS下,键入matlab,这一命令会自动执行WINDOWS,并启动MATLAB。以上两种操作的结果都会出现一个MATLAB的命令窗口。二MATLAB的一些基本操作及命令函数1矩阵的输入矩阵可以用几种不同的方法输入到MATLAB语言中: 以直接列出元素的形式输入; 通过语句和函数产生; 建立在M文件中; 从外部的数据文件中装入。在MATLAB语言中不必描述矩阵的维数和类型,它们是由输入的格式和内容来确定的。输入小矩阵最简单的方法是使用直接排列的形式
7、,把矩阵的元素直接排列到方括号中,每行内的元素用空格或逗号分开,行与行的内容用分号格开。例如输入:A=1 2 3;4 5 6;7 8 9或A=1,2,3;4,5,6;7,8,9都将得到输出结果:A=1 2 34 5 67 8 9大的矩阵可以分行输入,用回车号代替分号。输入后矩阵A将一直保存在工作空间中,除非被替代和清除,A矩阵可以随时被调出来。若在命令末尾加上“;”号,则表示结果不显示,除非再次调用。其余输入
8、在实验中再做说明。2矩阵的运算如果一个矩阵A有n行、m列元素,则称A矩阵为n×m矩阵,如果n=m,则称矩阵A,又称为方阵。MATLAB定义了下面各种矩阵的基本运算:矩阵转置 用符号“”来表示矩阵的转置。如输入:x=-1 0 2 则输出为: x =
9、60; -1 0 2矩阵加、减矩阵的加、减由符号“+”、“-”表示,它有两种格式:a. 两种矩阵进行加减运算,其对应的元素进行加减,得到一新矩阵。如输入:A=1 2 3;4 5 6;7 8 9;B=1 4
10、7;8 9 10;11 12 13;C=A+B则输出为:C=2 6 1012 14 1618 20 22b.矩阵与标量进行加减运算,则矩阵中每个元素都与标量进行加减运算,如输入: x=-1,0,2; y=x-1 则输出为: y= -2
11、 -1 1矩阵乘法,以符号“*”表示a. 两矩阵相乘,如输入x=2 3 4 5;1 2 2 1;y=0 1 1;1 1 0;0 0 1;1 0 0;z=xy则输出为:z=8 5 63 3 3b.
12、160;矩阵与标量相乘,如输入A=2,3,4,5;1,2,2,1;B=A2则输出为:B=4 6 8 102 4 4 2矩阵的求逆以“inv”来表示,如inv(A)表示A的逆。如输入: A=1 2 3;4 2 6;7 4 9; inv(A) 则输出为:
13、60; ans= -0.5000 -0.5000 0.50000.5000 -1.0000 0.50000.1667 0.8333 -0.5000矩阵的乘方,以符号“”表示 ap表示a的p次方,即a自乘p次。当p为矩阵时,运算会出错。3MATLAB定义的点运算MATLAB中定义了一种特殊的运算,即所谓的点运算。两个矩阵之间的点运算是该矩阵对应元素的直接运算。注意:点乘积运算要求参与运算的两个矩阵维数相同,其具体操作如下所示:乘除运算在MATLAB中,符号“.”表示乘法运算,相乘的数组要有相
14、同的维数,而符号“./”表示数组除法运算,且为对应元素进行乘除。 如输入:A=1,2,3;B=4,5,6; C=A. B输出为: C=4 10 18输入: D=B./A输出为: D
15、=4.00 2.5000 2.0000乘方运算,以符号“.”表示a. 当x、y均为向量时,z=x.y表示对应元素的乘方。b. 当x为向量,y为标量时,z=x.y表示z(i)=x(i)y。c. 当x为标量,y为向量时,z=x.y表示z(i)=xy(i)。该运算也可用于任意维矩阵。4在MATLAB中,复数
16、序列用“i”或“j”表示sqrt(-1),即5关系运算MATLAB中共有六种关系,分别为:< > =<=>=小于大于等于小于等于大于等于不等于对两矩阵的对应元素进行比较,若关系成立则为1,否则为0。6常用命令函数! 执行操作系统命令abs
17、60; 绝对值函数angle 相角函数 axis 坐标轴标度设定cla 清除当前坐标轴clc
18、160; 清除命令窗口显示clf 清除当前图形窗口close 关闭图形窗口delete
19、; 删除文件demo 运行MATLAB演示程序function MATLAB函数表达式的引导符grid
20、 给图形加网格线gtext 在鼠标指定的位置加文字说明help 启动联机帮助文件显示hold 当前
21、图形保护模式imag 求取虚部函数length 查询向量的维数linspace 构造线性分布的向量logspace
22、60; 构造等对数分布的向量pi 圆周率plot 线性坐标图形绘制quit
23、 退出MATLAB环境real 求取实部函数size 查询矩阵的维数sqrt
24、0; 平方根函数stem 函数序列柄状图形绘制subplot 将图形窗口分成若干个区域title &
25、#160; 给图形加标题xlabel 给图形加x坐标说明ylabel 给图形加y坐标说明 熟悉MATLAB环境实验目的1
26、; 熟悉MATLAB主界面,并学会简单的菜单操作。2 学会简单的矩阵输入与信号输入。3 掌握部分绘图函数。实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。用户第一次使用MATLAB时,建议首先在屏幕上键入DEMO命令,它将启动MATLAB的演试程序,用户可在此演示程序中领略MATLAB所提供的强大的运算与绘图功能。也可以键入HELP进行进一步了解。MATLAB命令窗口的界面下有一个菜单条,如图所示:利用FILE菜单可方便对文件或窗口进行
27、管理。其中FILE|NEW的各子菜单,M-FILE(M文件)、FIGURE(图形窗口)、或MODEL(SIMULINK编辑界面)分别可创建对应文件或模块。EDIT菜单允许用户和WINDOWS的剪切板交互信息。MATLAB语言最基本的赋值语句结构为:变量名列表=表达。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。如果变量名和“=”省略,则ANS变量将自动建立,例如键入:1900/81,得到输出结果:ans =23.4568。在MATLAB中把数据绘成图形可有多种命令供选择。下面列出了这些命令:
28、0; 绘图命令 Plot 线性X-Y坐标图 Loglog 双对数坐标图 &
29、#160; Semilogx X轴对数半对数坐标图 Semilogy Y轴对数半对数坐标图 Polar 极坐标图
30、0; Mesh 三维消隐图 Contour 等高线图 Bar 条形图 Stairs
31、160; 阶梯图 除了可以在屏幕上显出图形外,还可以对屏幕上已有的图形加注释、题头或坐标网格。 图形加注 Title 画题头
32、0; Xlabel x轴标注 Ylabel y轴标注 Text 任意定位的标注
33、60; Gtext 鼠标定位标注 Dgrid 网格 关于坐标轴尺寸的选择和图形处理等控制命令: 图形控制命令 Axis&
34、#160; 人工选择坐标轴尺寸 Clg 清除图形窗口 Ginput 利用鼠标的十字准线输入 Hold 保持图形
35、 Shg 显示图形窗口 Subplot 将图形窗口分成N块子窗练习内容 (不用写报告)一熟悉简单的矩阵输入1 从屏幕上输入矩阵A=1 2 3;4 5 6;7 8 9 或A=1,2,3;4,5,6;7,8,9 观察输出结果。2 试用回车代替分号,观察输出结果。3 输入矩阵B=9,
36、8,7;6,5,4;3,2,1 C=4,5,6;7,8,9;1,2,3, 键入A B C 观察结果。4 选择File|new菜单中的M-file,输入B=9 ,8,7;6,5,4;3,2,1,保存为B.M文件,退出编辑环境。此时在工作环境中使用B命令就可调出B矩阵。5 再试着输入一些矩阵,矩阵中的元素可为任意表达式,但注意矩阵中各行各列的元素个数需分别相等,否则会给出出错信息。二了解基本函数的功能1.plot函数2.
37、stem函数3.figure函数4.subplot函数5.axis函数6.hold函数7.ezplot函数实验一 典型信号的描述及运算一、实验目的:熟悉MATLAB软件的使用,并学会信号的表示和以及用MATLAB来产生信号并实现信号的可视化。 二、实验内容: 信号按照自变量的取值是否连续可分为连续时间信号和离散时间信号。对信号进行时域分析,首先需要将信号随时间变化的规律用二维曲线表示出来。对于简单信号可以通过手工绘制其波形,但对于复杂的信号,手工绘制信号波形显得十分困难,且难以绘制精确的曲线。 在MATLAB中通常用三种方法来产生并表示信号,即(1)用MATLAB软件的funtool符合计算方
38、法(图示化函数计算器)来产生并表示信号;(2)用MATLAB软件的信号处理工具箱(Signal Processing Toolbox)来产生并表示信号;(3)用MATLAB软件的仿真工具箱Simulink中的信号源模块。 (一) 用MATLAB软件的funtool符合计算方法(图示化函数计算器)来产生并表示信号 在MATLAB环境下输入指令funtool,则回产生三个视窗。即 figure No.1:可轮流激活,显示figure No.3的计算结果。 figure No.2:可轮流激活,显示figure No.3的计算结果。 figure No.3:函数运算器,其功能有:f,g可输入函数表达式
39、;x是自变量,在缺省时在2pi,2pi的范围内;自由参数是a;在分别输入完毕后,按下面四排的任一运算操作键,则可在figure No.1或figure No.2产生相应的波形。 练习产生以下信号波形 3sin(x)、5exp(-x)、sin(x)/x、12abs(x)/2、sqrt(3*x) (二) 用MATLAB软件的信号处理工具箱(Signal Processing Toolbox)来产生并表示信号 一种是用向量来表示信号,另一种则是用符合运算的方法来表示信号。用适当的MATLAB语句表示信号后,可以利用MATLAB的绘图命令绘制出直观的信号波形。 1 向量表示法 对于连续时间信号f(t)
40、,可以用两个行向量f和t来表示,其中向量t是形如t=t1:p:t2的MATLAB命令定义的时间范围向量,t1为信号起始时间,t2为信号终止时间,p为时间间隔。向量f为连续信号f(t)在向量t所定义的时间点上的样值。 下面分析连续时间信号f(t)Sa(t)=sin(t)/t,可用如下的两个变量表示: t= -10:1.5:10 f=sin(t)/t 命令运行结果为: t=Columns 1 through 8 -10.0000 -8.5000 -7.0000 -5.5000 -4.0000 -2.5000 -1.0000 0.5000 Columns 9 through 14 2.0000 3.
41、5000 5.0000 6.5000 8.0000 9.5000 f = Columns 1 through 7 -0.0544 0.0939 0.0939 -0.1283 -0.1892 0.2394 0.8415 0.9589 Columns 8 through 14 0.4546 -0.1002 -0.1918 0.0331 0.1237 -0.0079 用上述向量对连续信号进行表示后,就可以用plot命令来绘制出信号的时域波形。plot命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的波形就成了光滑的曲线。 MATLAB命令如下: t= -10:1.5:10f=sin(t)./
42、tplot(t,f);title('f(t)=Sa(t)');xlabel('t');axis(-10,10,-0.4,1.1);绘出的信号波形如图1(左图)所示。图1-1 Sa(t)的近似波形当把时间间隔p取得更小(例如为0.02)时,就可得到Sa(t)较好的近似波形,如图1所示(右图)。 1用以下程序可产生单位阶跃信号 需要在自己的工作目录work下创建Heaviside的M文件,该文件如下: function f=Heaviside(t)f=(t>0);正确定义出该函数并保存运行后,就可以调用该函数了t=-1:0.01:3;f=Heaviside(t
43、)plot(t,f);axis(-1,3,-0.2,1.2);图1-2 单位阶跃信号2.用以下程序可产生单位冲激信号d(t) 严格来说,MATLAB是不能表示单位冲激信号的,但我们可用时间宽度为dt,高度为1/dt的矩形脉冲来近似地表示冲激信号。当dt趋近于零时,就较好地近似出冲激信号的实际波形。下面是绘制单位冲激信号及其在时间轴上的平移信号的MATLAB子程序,其中t1,t2表示信号的起始时刻,t0表示信号沿坐标的平移量,t0>0时向左平移,t0<0时向右平移。绘图命令用stairs,该命令一般用于绘制类似楼梯形状的步进图形,在这里使用该命令是因为显示连续信号中的不连续点用sta
44、irs命令绘图效果较好。定义冲激函数function chongji(t1,t2,t0)dt=0.01; %信号时间间隔t=t1:dt:t2; %信号时间样本点向量n=length(t); %时间样本点向量长度x=zeros(1,n); %各样本点信号值赋值为零x(1,(-t0-t1)/dt+1)=1/dt; %在时间t=-t0处,给样本点赋值为1/dtstairs(t,x);axis(t1,t2,0,1.2/dt)title('单位冲激信号(t)')调用chongji(-1,5,0),得到波形如下图所示;可以试着给别的t1,t2,t0.图1-3 单位冲激信号3用以下程序可产生
45、正弦波: t=0:0.001:50; y=sin(2*pi*50*t); plot(t(1:50),y(1:50); 4.用以下程序可产生加入随机噪声的正弦波: t=0:0.001:50; y=sin(2*pi*50*t); s=y+randn(size(t); plot(t(1:50),s(1:50); 5.用以下程序可产生周期方波: t=0:0.001:2.5; y=square(2*pi*30*t); plot(t(1:50),y(1:50); 6.用以下程序可产生周期锯齿波: t=0:0.001:2.5; y=sawtooth(2*pi*30*t); plot(t,y); axis(0
46、 0.2 -1 1); 学生实验内容:运行以上代码并记录运行结果(三) 用MATLAB软件的仿真工具箱Simulink中的信号源模块 在MATLAB的命令视窗下输入simulink指令,则会打开untitled和library simulink两个视窗(若没有弹出untitled视窗,则可在library simulink视窗中点击“创建新模型”)。其中library simulink库如图所示:弹出图1-4 library simulinklibrary simulink有7个子库,其中source是信号源子库,sinks是显示器子库。图1-5 library simulink子库从子库中可
47、以选择信号和显示的种类,用鼠标把模块拖入untitled窗中形成最简单的仿真系统,子库中的任何模块都可以拖动到untitled视窗中,用鼠标把模块用连线按输入输出关系连接起来,就构成了仿真系统。图1-6 仿真示例在untitled视窗的菜单选simulation中的start,开始进行仿真,仿真执行完毕后,示波器上会显示出信号波形。 四、离散时间序列波形产生并绘制 一般来说,离散时间信号用f(k)表示,其中变量k为整数,代表离散的采样时间点,f(k)可表示为:f(k)=f(-2),f(-1),f(0),f(1),f(2)。在用MATLAB绘制离散时间信号波形时,要使用专门绘制离散数据的stem
48、命令,而不用plot命令。 如序列 f(k)=1,2,-1,3,2,4,-1 k=0 在MATLAB中应表示为: k=-3,-2,-1,0,1,2,3或是k= -3:3; f=1,2,-1,3,2,4,-1; 1. 用以下程序可产生单位阶跃序列e(k): 定义阶跃序列function jyxulie(k1,k2,k0) k=k1:-k0-1; kk=-k0:k2; n=length(k); nn=length(kk); u=zeros(1,n); %k0前信号赋值为0 uu=ones(1,nn); %k0后信号赋值为1 stem(kk,uu,'filled') hold on
49、stem(k,u,'filled') hold off title('单位阶跃序列') axis(k1 k2 0 1.5)调用阶跃序列函数jyxulie(-2,6,0),得到波形如下图所示:图1-7 单位阶跃序列2. 用以下程序可产生单位脉冲序列d(k):定义单位序列函数function dwxulie(k1,k2,k0)k=k1:k2;n=length(k);f=zeros(1,n);f(1,-k0-k1+1)=1;stem(k,f,filled)axis(k1,k2,0,1.5)title(单位序列d(k)调用单位序列函数dwxulie(-3,5,0)图1-
50、8 单位脉冲序列学生实验内容: 1.试用MATLAB绘制两正弦序列f1(k)=cos(k/8),f2(k)=cos(2k)的时域波形,观察它们的周期性,并验证是否与理论分析结果相符?(提示:并非所有的离散时间正弦序列信号都是周期的,不同于连续时间正弦信号) 三、连续时间信号的运算信号运算主要包括:信号的移位(时移或延时)、反褶、尺度倍乘以及信号的相加、相乘。1、移位运算对于连续信号,将更换为,则相当于在时间轴上整体移动,当时左移,当时右移。可用下面的命令实现连续时间信号的移位及其结果可视化,其中是用符号表达式表示的连续时间信号,是符号变量,subs命令则将连续时间信号中的时间变量用替换。y=s
51、ubs(f,t-t0);ezplot(y)2、反褶运算信号反褶表示将的自变量更换为,此时的波形相当于将以为轴反褶过来。可用下面的命令实现连续时间信号的反褶及其结果可视化,其中是用符号表达式表示的连续时间信号,是符号变量,subs命令则将连续时间信号中的时间变量用替换。y=subs(f,-t);ezplot(y)3、尺度倍乘 连续时间信号的尺度倍乘,是指将信号的横坐标进行扩展或压缩,即将信号的自变量更换为,当时,信号以原点为基准,沿时间轴压缩到原来的;当时,信号沿时间轴扩展至原来的倍。用下面的命令实现连续时间信号的尺度倍乘及其结果可视化,其中是用符号表达式表示的连续时间信号,是符号变量,subs
52、命令则将连续时间信号中的时间变量用替换。y=subs(f,a*t);ezplot(y)4、信号相加连续信号的相加,是指两信号的对应时刻值相加,即利用以下命令实现两信号相加及其可视化,其中是两个用符号表达式表示的连续信号,s为相加得到的和信号的符号表达式。s=symadd(f1,f2); 或s=f1+f2;ezplot(s)5、信号相乘连续信号的相乘,是指两信号的对应时刻值相乘,即利用以下命令实现两信号相乘及其可视化,其中是两个用符号表达式表示的连续信号,w为相乘得到的和信号的符号表达式。w=symmul(f1,f2); 或w=f1*f2;ezplot(w)例:已知,用MATLAB绘出代码如下:
53、syms tf1=sym('(-t+4)*(u(t)-u(t-4)');subplot(1,2,1);ezplot(f1);y1=subs(f1,t,-t);f3=f1+y1;subplot(1,2,2);ezplot(f3);其中,u(t)子程序定义为function f=u(t)f=(t>0);程序运行结果如下图所示。图1-9 信号波形6、学生实验内容利用上述信号的运算方法,完成如下实验内容:1.已知及信号,用MATLAB绘出满足下列要求的信号波形。 (1) (2) (3) (4)2.绘制f(t)= e-0.1sin(23t)的时域图实验二 连续时间信号卷积及MATL
54、AB实现一、实验目的:熟悉使用MATLAB软件来分析连续时间信号的卷积积分运算并用图形可视化相关结果。二、实验原理:1卷积积分卷积积分在信号与线形系统分析中具有非常重要的意义,是信号与系统分析的基本方法之一。连续时间信号f1(t)和f2(t)的卷积积分(简称为卷积)f(t)定义为:由此可得到两个与卷积相关的重要结论,即是:(1),即连续信号可分解为一系列幅度由f(t)决定的冲激信号及其平移信号之和; (2)线形时不变连续系统,设其输入信号为f(t),单位响应为h(t),其零状态响应为y(t),则有:。可见,连续信号卷积的计算对我们进行连续信号与系统的分析具有重要的意义。用MATLAB实现连续信
55、号与卷积的过程如下:(1)将连续信号与以时间间隔进行取样,得到离散序列和;(2)构造与和相对应的时间向量和;(3)调用conv()函数计算卷积积分的近似向量f(n);(4)构造f(n)对应的时间向量k。下面即是利用MATLAB实现连续时间卷积的通用函数sconv(),该程序在计算出卷积积分的数值近似的同时,还绘出f(t)的时域波形图。需要注意的是,程序中是如何构造f(t)的对应时间向量k的?另外,程序在绘制f(t)波形图时采用的是plot命令而不是stem命令。function f,k=sconv(f1,f2,k1,k2,p)%计算连续信号卷积积分f(t)=f1(t)*f2(t)% f: 卷积
56、积分f(t)对应的非零样值向量% k:f(t)的对应时间向量% f1: f1(t)非零样值向量% f2: f2(t)的非零样值向量% k1: f1(t)的对应时间向量% k2: f2(t)的对应时间向量% p:取样时间间隔 6f=conv(f1,f2) %计算序列f1与f2的卷积和ff=f*pk0=k1(1)+k2(1) %计算序列f非零样值的起点位置k3=(length(f1)+length(f2)-2)*p %计算卷积和f的非零样值的宽度k=k0:p:(k3+k0) %确定卷积和f非零样值的时间向量subplot(2,2,1)plot(k1,f1) %在子图1绘f1(t)时域波形图titl
57、e('f1(t)')xlabel('t')ylabel('f1(t)')subplot(2,2,2)plot(k2,f2) %在子图2绘f2(t)时波形图title('f2(t)')xlabel('t')ylabel('f2(t)')subplot(2,2,3)plot(k,f); %画卷积f(t)的时域波形h=get(gca,'position');h(3)=2.5*h(3);set(gca,'position',h) %将第三个子图的横坐标范围扩为原来的2.5倍t
58、itle('f(t)=f1(t)*f2(t)')xlabel('t')ylabel('f(t)')例:已知两连续时间信号如下图所示,试用MATLAB求f(t)=,并绘出f(t)的时域波形图。(设定取样时间间隔为p) 参考程序:p=0.5;k1=0:p:2;f1=0.5*k1;k2=k1;f2=f1;f,k=sconv(f1,f2,k1,k2,p)【思考】:通过不断改变p的取值并对比所得到的实验效果,观察当取样时间p为多大时,函数sconv()的计算结果就是连续时间卷积f(t)=的较好近似结果? 学生实验部分:已知两连续时间信号如下图所示,试用MA
59、TLAB求f(t)=,并绘出f(t)的时域波形图。(设定取样时间间隔为p)实验三 系统时域特性的仿真分析实验 一、实验目的:通过使用MATLAB仿真软件对LTI系统的时域特性进行仿真分析,。 二、实验原理: 对于LTI连续系统,求解系统的冲激响应h(t)和阶跃响应g(t)对我们进行连续系统的分析具有非常重要的意义。MATLAB为用户提供了专门用于求连续系统冲激响应和阶跃响应并绘制其时域波形的函数impulse()和step()。 在调用impulse()和step()函数时,我们需要用向量来对连续系统进行分析。 设描述连续系统的微分方程为: 则我们可用向量a和b来表示该系统,即: a=aN,a
60、N-1,a1,a0 b=bN,bN-1,b1,b0 注意,向量a和b的元素一定要以微分方程中时间求导的降幂次序来排列,且缺项要用0来补齐。例如,对微分方程 y(t)+3y(t)+2y(t)=f(t)+f(t),则表示该系统的对应向量应为 a=1 3 2,b=1 0 1。 1 impulse()函数 函数impulse()将绘出由向量a和b表示的连续系统在指定时间范围内的冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。impulse()函数有如下几种调用格式: (1)impulse(b,a):该调用格式以默认方式绘出向量a和b定义的连续系统的冲激响应的时域波形。例如描述连续
61、系统的微分方程为y(t)+5y(t)+6y(t)=3f(t)+2f(t),运行如下MATLAB命令: a=1 5 6; b=3 2; impulse(b,a); 则绘出系统的冲激响应波形,如图3-1所示。 图3-1 连续系统的冲激响应(2) impulse(b,a,t):绘出系统在0t时间范围内冲激响应的时域波形。对上例,若运行命令impulse(b,a,10),则绘出系统在010秒范围内冲激响应的时域波形,如图3-2所示 如图3-2 连续系统的冲激响应(3)impulse(b,a,t1:p:t2):绘出在t1t2时间范围内,且以时间间隔p均匀取样的冲激响应波形。对上例,若运行命令impuls
62、e(b,a,1:0.1:2),则绘出12秒内,每隔0.1秒取样的冲激响应的时域波形,如图3-3所示图3-3 连续系统的冲激响应(4) y=impulse(b,a,t1:p:t2):不绘出波形,而是求出系统冲激响应的数值解。对上例,若运行命令y=impulse(b,a,0:0.2:2),则运行结果为: y = 3.0000 1.1604 0.3110 -0.0477 -0.1726 -0.1928 -0.1716 -0.1383 -0.1054 -0.0777 -0.0559 2 step()函数:可绘出连续系统的阶跃响应g(t)在指定时间范围的时域波形并能求出其数值解,和impulse()函数
63、一样,也有四种调用格式。 step(b,a)step(b,a,t)step(b,a,t1:p:t2)y=step(b,a,t1:p:t2)上述调用格式的功能和impulse()函数完全相同,所不同的是命令绘制的是系统的阶跃响应g(t)的曲线而不是冲激响应h(t)的曲线。学生实验内容: 已知描述某连续系统的微分方程为: 2y(t)+y(t)+8y(t)=f(t), 试用MATLAB:(1)绘出该系统在030秒范围内,并以时间间隔0.01秒取样的冲激响应和阶跃响应的时域波形; 三、离散系统的单位脉冲响应及MATLAB实现 1求解离散系统的单位脉冲响应h(k)对我们进行离散时间系统的分析具有重要意义
64、; 2MATLAB为用户提供专门求离散系统单位脉冲响应h(k)的函数,即impz( )。调用impz( )函数时,类似连续系统,也需要用向量来对离散系统进行表示。 设描述离散系统的差分方程为: 则可以用向量a和b表示该系统,即: a=a0,a1,aN-1,aN b=b0,b1,bM-1,bM 在用向量来表示差分方程描述的离散系统时,缺项要用0来补齐。 函数impz( )能绘出向量a和b定义的离散系统在指定时间范围内单位脉冲响应h(k)的时域波形,并能求出系统单位脉冲响应h(k)在指定时间范围内的数值解。 impz( )函数有如下几种调用格式: ·impz(b,a) 以默认方式绘出向量
65、a和b定义的离散系统h(k)的时域波形; 例:若描述某离散系统的差分方程为运行如下MATLAB命令:a=1 -1 0.9b=1impz(b,a)则绘出该离散系统的单位响应的时域波形,如图3-4所示图3-4 单位响应的时域波形·impz(b,a,n) 绘出向量a和b定义的离散系统在0n(n必须为整数)离散时间范围内单位脉冲响应h(k)的时域波形; ·impz(b,a,n1:n2) 绘出向量a和b定义的离散系统在n1n2(n1、n2必须为整数,且n1<n2)离散时间范围内单位脉冲响应h(k)的时域波形; ·y=impz(b,a,n1:n2) 不绘出系统的h(k)
66、的时域波形,而是求出向量a和b定义的离散系统在n1n2(n1、n2必须为整数,且n1<n2)离散时间范围内单位脉冲响应h(k)的数值解。 学生实验内容: 已知某离散系统的差分方程为 y(k)-y(k-1)+0.9y(k-3)=f(k),试作出:(1)以默认方式绘出系统h(k)的时域波形;(2)绘出系统在060取样点范围内h(k)的时域波形;(3)绘出系统在1040离散时间范围内h(k)的时域波形; 四、利用MATLAB中的Simulink进行系统时域特性仿真 (一)仿真系统的冲激响应 求解出系统传输函数H(s),分子和分母都写出多项式的形式,例如: 在continuous的子库中选择传输
67、函数(Transfer Fcn)子库,用鼠标把传输函数模块拖动untitled视窗中,置于激励信号源和示波器之间,然后用鼠标拖出的连线将信号源、传输函数模块和示波器等按照系统的要求连接起来即可。 如果需要对传输函数的参数进行设置,则可通过双击传输函数模块打开它的设置环境窗,可以分别设置分子、分母多项式的系数和阶数等。 在untitled窗口的菜单中选simulation的start功能则可执行仿真,待仿真完毕后,则可通过激活示波器观察到激励信号和响应信号的波形。 由于source库中没有单位冲激信号模块,所以由阶跃信号模块经过微分来产生。 (二)仿真系统在任意激励下的零状态响应 采用的方法类似
68、(一)中仿真系统的冲激响应,只是输入是任意波形例如周期的矩形波等。 学生实验内容: 对如下连续时间系统 通过仿真分别观察其单位冲激响应波形和在周期矩形信号作用下的零状态响应波形。实验四 连续时间信号的频域特性仿真实验 一、目的(1)掌握连续信号傅立叶变换与逆变换的计算方法(2)掌握利用MATLAB实现连续时间信号傅立叶变换的方法 二、用MATLAB函数实现连续信号的频域分析 MATLAB的Symbolic Math Toolbox 提供了能直接求解傅立叶变换及其逆变换的函数fourier( )和ifourier( )。 两者的调用格式如下:(1) Fourier函数 ·F=fouri
69、er(f)是符号函数f的Fourier变换,默认返回是关于的函数。 ·F=fourier(f,v)返回函数F是关于符号对象的函数,而不是默认的。 ·F=fourier(f,u,v)对关于u的函数f进行变换,返回函数F是关于v的函数。 (2) Fourier逆变换 ·f=ifourier(F)是函数F的Fourier逆变换,默认的独立变量是,默认返回是关于x的函数。·f=ifourier(F,u)返回函数f是u的函数,而不是默认的x的函数。 ·f=ifourier(F,v,u)对关于v的函数F进行变换,返回关于u的函数。 注意:在调用函数fourier( )和ifourier( )之前,需用syms命令对所用到的变量进行说明,即要将这些变量说明成符号变量。对fourier( )中的函数f及ifourier( )的函数F,也要用符号定义符sym将f或F说明为符号表达式;若f或F是MATLAB中的通用函数表达式,则不必用sym加以说明。·采用fourier( )和ifourier()得到的返回函数,仍然是符号表达式。如需对返回的函数作图,则应用ezplot()绘图命令而不是用plot()命令。如果返回函数中含有诸如狄拉克函数(t)等的项,则用ezplot()也无法作图。 (3) 应用举例: 例1 试绘出连续时间信号的时域波
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高级审计师全景式备考2024年试题及答案
- 2025【原创协议范本】城乡商铺租赁合同
- 无人机飞行安全知识试题及答案
- 2025果园转让合同范本
- 高二地理段考试卷及答案
- 阜南一中周考试卷及答案
- 逐步完善中级会计学习的试题及答案
- 消防安全法律责任与道德伦理的关系试题及答案
- 提升能力中级审计师考试试题及答案
- DB43-T 3066-2024 既有桥梁防船撞性能评估与提升设计标准
- 公司劳务管理综合考评表
- 变更户主情况登记表(填写样式)
- 山东省医院护理服务质量评价细则简介
- 辽宁本溪国家地质公园环境保护自查报告
- 手卫生相关知识考核试题与答案
- 中国工农红军长征教学课件
- “钓鱼法”钢管桩沉桩施工
- 喷(烤)漆房VOCs治理设施日常运行台账
- 南方测绘_平差易2005说明书
- 动静脉内瘘的穿刺与护理-PPT课件
- 开姆洛克指南
评论
0/150
提交评论