logo资料库

信号与系统仿真实验指导书 附matlab代码.doc

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
实验1 MATLAB基本操作
实验2 连续时间信号的产生与运算
实验3 连续LTI系统的时域分析
实验4 连续系统的频域分析
实验5 连续系统的复频域分析
实 验 指 导 书 1
实验 1 MATLAB 基本操作 一、实验目的 1.熟悉 MATLAB 实验环境,练习 MATLAB 命令、m 文件、Simulink 的基 本操作。 2.利用 MATLAB 编写程序进行矩阵运算、图形绘制、数据处理等。 3.利用 Simulink 建立系统的数学模型并仿真求解。 二、实验原理 MATLAB 环境是一种为数值计算、数据分析和图形显示服务的交互式的 环境。MATLAB 有 3 种窗口,即:命令窗口(The Command Window)、m-文 件编辑窗口(The Edit Window)和图形窗口(The Figure Window)。Simulink 是 MATLAB 的一个部件,它为 MATLAB 用户提供了一种有效的对反馈控制系 统进行建模、仿真和分析的方式。而 Simulink 另外又有 Simulink 模型编 辑窗口。 1.命令窗口(The Command Window) 当 MATLAB 启动后,出现的最大的窗口就是命令窗口。用户可以在提示 符“>>”后面输入交互的命令,这些命令就立即被执行。 在 MATLAB 中,一连串命令可以放置在一个文件中,不必把它们直接在 命令窗口内输入。在命令窗口中输入该文件名,这一连串命令就被执行了。 因为这样的文件都是以“.m”为后缀,所以称为 m 文件。 2.m 文件编辑窗口(The Edit Window) 我们可以用 m 文件编辑窗口来产生新的 m 文件,或者编辑已经存在的 m 文件。在 MATLAB 主界面上选择菜单“File/New/M-file”就打开了一个 新的 m 文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的 m 文件,并且可以在这个窗口中编辑这个 m 文件。 3.图形窗口(The Figure Window) 图形窗口用来显示 MATLAB 程序产生的图形。图形可以是 2 维的、3 维 的数据图形,也可以是照片等。 4.Simulink 的启动方式: 启动运行 Simulink 有两种方式:(1)在 Command window 中,键入 simulink,回车。(2)单击工具栏上 Simulink 图标。启动 Simulink 后, 2
即打开了 Simulink 库浏览器(Simulink library browser)。在该浏览器 的窗口中单击“Create a new model(创建新模型)”图标,这样就打开一 个尚未命名的模型窗口。把 Simulink 库浏览器中的单元拖拽进入这个模型 窗口,构造自己需要的模型。对各个单元部件的参数进行设定,可以双击 该单元部件的图标,在弹出的对话框中设置参数。 三、实验内容与方法 1.输入命令,计算以下问题: (1)已知矩阵 a  1 32   654     ,   21 i b 72  i ,利用 MATLAB 进行 矩阵计算:a*b (2)多项式计算:求[12+2×(7-4)]÷32 的算数计算结果。 a./b a.\b a.*b a/b a\b a^3 a.^3 2.编写 M 文件绘制函数的图形。 【例 1-1】:绘制下面函数在[0 3]区间的图形。 0  x  3 x  sin , x x   0 , x   ,6 x   )( xy  3 MATLAB 程序: x=-6:0.1:6; leng=length(x); for m=1:leng if x(m)<=0 y(m)=sin(x(m)); elseif x(m)<=3 y(m)=x(m); else end y(m)=-x(m)+6; end plot(x,y,'*'),grid; 练习:绘制下面的图形:(1)sin(1/t),-1
练习:(1)应用 Simulink 建立系统模型,并对系统的阶跃响应进行仿 真。 )( sG  1 4 s  8 2 s  (2)建立一个简单的模型,用信号发生器产生一个幅值为 2V, 频率为 0.5Hz 的正弦波,并叠加一个 0.1V 的噪声信号,将叠加后的信号显 示在示波器上。 四、实验报告 1.写出实验步骤 1 的计算结果。 2.编写 M 文件,写出程序清单,并绘出实验步骤 2 的图形曲线。 3.画出建立的模型,输出实验结果。 4
实验 2 连续时间信号的产生与运算 一、实验目的 1.熟悉 MATLAB 软件的使用。 2.掌握连续时间信号表示方法与基本运算的实现。 3.掌握用 MATLAB 常用函数来产生信号并实现信号的可视化方法。 二、实验原理 时域信号是指将信号表示成时间的函数 f(t),信号的时间特性是指信 号的波形出现的先后、持续时间的长短、随时间变化的快慢等。 信号按照特性的不同,分为确定信号、周期信号、能量信号等。 常用的连续信号有直流信号、正弦信号、单位阶跃信号、单位门信号、 单位冲激信号、符号函数、单位斜坡函数、单位衰减指数信号、采样信号、 随机信号等。 信号的运算包括:信号的基本运算,包括加、减、乘、除等;信号的 时域变换,包括信号的平移、翻转、尺度变换等;两个信号的卷积运算等。 三、实验内容与方法 从严格意义上讲,MATLAB 并不能处理连续信号。在 MATLAB 中是用连 续信号在等间隔时间的样值来近似表示连续信号的。当取样时间间隔足够 小时,这些离散的样点就能够很好地近似出连续信号。 MATLAB 提供了许多函数用于常用函数的产生,如阶跃信号、脉冲信号、 指数信号、正弦信号和周期方波等,这些函数都是信号处理的基础。 1.连续信号的生成与可视化 f (1)正弦交流信号 )2 t  sin( 实现  f )( t )( t  sin( )   t ,MATLAB 程序如下: t=-0:0.001:1; y=sin(2*pi*t); plot(t,y,'k'); xlabel('时间(t)');ylabel('幅值(f)');title('正弦交流信号'); (2)单位阶跃信号 f )( t  )( t 5
MATLAB 程序如下: t=-2:0.01:6; u=(t>=0); plot(t,u); axis([-2,6,0,1.2]) xlabel('时间(t)');ylabel('幅值(f)');title('单位阶跃信号'); (3)复指数信号 f )( t 4 jt e 3 t  MATLAB 程序如下: t=0:0.01:3; a=-3;b=4; z=exp((a+i*b)*t); subplot(221); plot(t,imag(z)),title('实部');xlabel('时间');ylabel('幅值'); subplot(222); plot(t,real(z)),title('虚部');xlabel('时间');ylabel('幅值'); subplot(223); plot(t,abs(z)),title('模');xlabel('时间');ylabel('幅值'); subplot(224); plot(t,angle(z)),title('相角');xlabel('时间');ylabel('幅值'); 2.连续时间信号的基本运算 (1)加(减)、乘运算 实现两个信号的加法和乘法运算:要求两个信号运算的时间序列长度 相同。 MATLAB 程序如下: t=0:0.01:2; f1=exp(-3*t); f2=0.2*sin(4*pi*t); f3=f1+f2; f4=f1.*f2; subplot(221);plot(t,f1);title('f1(t)'); subplot(222);plot(t,f2);title('f2(t)'); subplot(223);plot(t,f3);title('f1+f2'); subplot(224);plot(t,f4);title('f1*f2'); (2)信号的反褶、移位、尺度变换 6
由 )(t f 到 f ( at  )( ab  )0 步骤: f )( t 移位   f ( bt   尺度 ) f a( bt   反褶 ) f a( bt  ) 【例 2-1】已知 f )(  t sin( t /) t 。试通过反褶、移位、尺度变换由 )(t f 的波形得到 f 2(  t )3 的波形。 MATLAB 程序如下 syms t; f=sym(‘sin(t)/t’); f1=subs(f,t,t+3); f2=subs(f1,t,2*t); f3=sub(f2,t,-t); subplot(2,2,1);ezplot(f,[-8,8]);grid on; subplot(2,2,2);ezplot(f1,[-8,8]);grid on; subplot(2,2,3);ezplot(f2,[-8,8]);grid on; subplot(2,2,4);ezplot(f3,[-8,8]);grid on; (3)连续信号的卷积运算 y  ),( hx conv 用于实现 x、h 两个序列的卷积,假定都是从 n=0 开始。 Y 序列的长度为 x、h 序列的长度之和再减 1. 【例 2-2】求两个方波信号的卷积。 MATLAB 程序如下: y1=[ones(1,20),zeros(1,20)]; y2=[ones(1,10),zeros(1,20)]; y=conv(y1,y2); n1=1:length(y1); n2=1:length(y2); L=length(y); subplot(3,1,1);plot(n1,y1);axis([1 L 0 2]); subplot(3,1,2);plot(n2,y2);axis([1 L 0 2]); n=1:L; subplot(3,1,3);plot(n,y),axis([1 L 0 20]); 【例 2-3】求两个指数信号的卷积。 7
MATLAB 程序如下: t=0:0.01:1; y1=exp(-6*t); y2=exp(-3*t); y=conv(y1,y2); L1=length(y1); L2=length(y2); L=length(y); subplot(3,1,1);plot(t,y1); subplot(3,1,2);plot(t,y2); t1=0:0.01:2; subplot(3,1,3);plot(t1,y); 四、程序设计实验 1.编制程序,生成如下连续信号: ( t  ),3 cos 3 t  2sin t 。 2.设计一个程序,选择一个信号 f(t),完成信号 f(t)到 f(2t+2)的转 化。 3.若 积满足: f f )( t  1 [*)( t 1 sin( f 2 t ), )( t f  2 f )( t  ( t )] 3 ), ( t  f  1 3 f )( t )( t  * f )( t  )( t 2   ( t  f 1  )( t )4 * ,证明卷 f )( t 3 五、实验预习要求 1.预习实验原理。 2.熟悉实验程序。 3.思考程序设计实验部分程序的编写。 六、实验报告要求 1.在 MATLAB 中输入程序,验证试验结果,并将实验结果存入指定存储 区域。 2.对于程序设计实验,要求通过对验证性实验的练习,自行编制完整 的实验程序,实现对信号的模拟,并得出实验结果。 3.在实验报告中写出完整的自编程序,并给出实验结果。 8
分享到:
收藏