当前位置:文档之家› 信号与系统仿真实验指导书

信号与系统仿真实验指导书

实验指导书实验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后,即打开了Simulink 库浏览器(Simulink library browser )。

在该浏览器的窗口中单击“Create a new model (创建新模型)”图标,这样就打开一个尚未命名的模型窗口。

把Simulink 库浏览器中的单元拖拽进入这个模型窗口,构造自己需要的模型。

对各个单元部件的参数进行设定,可以双击该单元部件的图标,在弹出的对话框中设置参数。

三、实验内容与方法1.输入命令,计算以下问题: (1)已知矩阵⎥⎦⎤⎢⎣⎡=654321a ,[]i i b 7221-+=,利用MATLAB 进行矩阵计算:a*b a/b a\b a^3 a.*b a./b a.\b a.^3 (2)多项式计算:求[12+2×(7-4)]÷32的算数计算结果。

2.编写M 文件绘制函数的图形。

【例1-1】:绘制下面函数在[0 3]区间的图形。

⎪⎩⎪⎨⎧>+-≤<≤=3 ,630 ,0,sin )(x x x x x x x yMATLAB 程序: x=-6:0.1:6; leng=length(x); for m=1:leng if x(m)<=0y(m)=sin(x(m)); elseif x(m)<=3 y(m)=x(m); elsey(m)=-x(m)+6; end endplot(x,y,'*'),grid;练习:绘制下面的图形:(1)sin(1/t),-1<t<1 (2)1-cos3(7t) 3.建立Simulink 模型,进行系统仿真。

【例1-2】:信号发生器发出幅值为1,频率为0.2Hz 的正弦信号。

信号分两路输出:一路直接送到示波器,一路扩大5倍送到另外的示波器。

启动Simulink ,建立如图模型,并运行,观察运行结果。

练习:(1)应用Simulink 建立系统模型,并对系统的阶跃响应进行仿真。

841)(2++=s s s G (2)建立一个简单的模型,用信号发生器产生一个幅值为2V ,频率为0.5Hz 的正弦波,并叠加一个0.1V 的噪声信号,将叠加后的信号显示在示波器上。

四、实验报告1.写出实验步骤1的计算结果。

2.编写M 文件,写出程序清单,并绘出实验步骤2的图形曲线。

3.画出建立的模型,输出实验结果。

实验2 连续时间信号的产生与运算一、实验目的1.熟悉MATLAB软件的使用。

2.掌握连续时间信号表示方法与基本运算的实现。

3.掌握用MATLAB常用函数来产生信号并实现信号的可视化方法。

二、实验原理时域信号是指将信号表示成时间的函数f(t),信号的时间特性是指信号的波形出现的先后、持续时间的长短、随时间变化的快慢等。

信号按照特性的不同,分为确定信号、周期信号、能量信号等。

常用的连续信号有直流信号、正弦信号、单位阶跃信号、单位门信号、单位冲激信号、符号函数、单位斜坡函数、单位衰减指数信号、采样信号、随机信号等。

信号的运算包括:信号的基本运算,包括加、减、乘、除等;信号的时域变换,包括信号的平移、翻转、尺度变换等;两个信号的卷积运算等。

三、实验内容与方法从严格意义上讲,MATLAB并不能处理连续信号。

在MATLAB中是用连续信号在等间隔时间的样值来近似表示连续信号的。

当取样时间间隔足够小时,这些离散的样点就能够很好地近似出连续信号。

MATLAB提供了许多函数用于常用函数的产生,如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等,这些函数都是信号处理的基础。

1.连续信号的生成与可视化(1)正弦交流信号)sin()(φω+=ttf实现,MATLAB程序如下:t=-0:0.001:1;y=sin(2*pi*t);plot(t,y,'k');xlabel('时间(t)');ylabel('幅值(f)');title('正弦交流信号');(2)单位阶跃信号)()(t tfε=)2sin()(t tfπ=MATLAB程序如下:t=-2:0.01:6;u=(t>=0);plot(t,u);axis([-2,6,0,1.2])xlabel('时间(t)');ylabel('幅值(f)');title('单位阶跃信号');(3)复指数信号e jt t tf43)(+-=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)信号的反褶、移位、尺度变换由)(t f 到)0)((>+-a b at f 步骤:)a ()a ()()(b t f b t f b t f t f +-−−→−+−−→−+−−→−反褶尺度移位【例2-1】已知t t t f /)sin()(=。

试通过反褶、移位、尺度变换由)(t f 的波形得到)32(+-t f 的波形。

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)连续信号的卷积运算),(h x conv y =用于实现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】求两个指数信号的卷积。

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.编制程序,生成如下连续信号:ttt2sin3cos),3(+-ε。

相关主题