实验三 常见连续信号的MATLAB表示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 常见连续信号的MATLAB 表示
一、实验目的
1、熟悉常见连续时间信号的意义、特性及波形;
2、学会使用MATLAB 表示连续时间信号的方法;
3、学会使用MATLAB 绘制连续时间信号的波形。
二、实验原理
信号一般是随时间而变化的某些物理量。
按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用()t f 和()n f 来表示。
若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。
MA TLAB 强大的图形处理功能及符号运算功能,为我们实现信号的可视化及其时域分析提供了强有力的工具。
根据MA TLAB 的数值计算功能和符号运算功能,在MATLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。
在采用适当的MATLAB 语句表示出信号后,就可以利用MA TLAB 中的绘图命令绘制出直观的信号波形了。
下面我们将介绍连续时间信号的MATLAB 表示及其波形绘制方法。
所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。
从严格意义上讲,MA TLAB 并不能处理连续信号。
在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。
在MA TLAB 中连续信号可用向量或符号运算功能来表示。
1、向量表示法
对于连续时间信号()t f ,可以用两个行向量f 和t 来表示,其中向量t 是用形如
21::t p t t =的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。
向量f 为连续信号()t f 在向量t 所定义的时间点上的样值。
例1 对于连续信号()()()t
t t Sa t f sin == ,将它表示成行向量形式,同时用绘图命令plot( )函数绘制其波形。
MATLAB 程序如下: t1=-10:0.5:10;
%定义时间t 的取值范围及取样间隔(p=0.5),则t1是一个%维数为41的行向量 f1=sin(t1)./t1; %定义信号表达式,求出对应采样点上的样值
%同时生成与向量t1维数相同的行向量f1
figure(1) %打开图形窗口1
plot(t1,f1) %以t1为横坐标,f1为纵坐标绘制f1的波形
xlabel('取样间隔p=0.5');
title('f(t)=Sa(t)=sin(t)/t');
t2=-10:0.1:10;
%定义时间t的取值范围及取样间隔(p=0.1),则t2是一个%维数为201的行向量f2=sin(t2)./t2; %定义信号表达式,求出对应采样点上的样值
%同时生成与向量t2维数相同的行向量f2
figure(2) %打开图形窗口2
plot(t2,f2) %以t2为横坐标,f2为纵坐标绘制f2的波形
xlabel('取样间隔p=0.1');
title('f(t)=Sa(t)=sin(t)/t');
运行结果如下:
图3-1
图3-2
【说明】
◆plot是常用的绘制连续信号波形的函数。
◆严格说来,MATLAB不能表示连续信号,所以,在用plot( )命令绘制波形时,要对自变量
t进行取值,MA TLAB会分别计算对应点上的函数值,然后将各个数据点通过折线连接起来绘制图形,从而形成连续的曲线。
因此,绘制的只是近似波形,而且,其精度取决于t的取样间隔。
t的取样间隔越小,即点与点之间的距离越小,则近似程度越好,曲线越光滑。
例如:图3-1是在取样间隔为p=0.5时绘制的波形,而图3-2是在取样间隔p=0.1时绘制的波形,两相对照,可以看出图3-2要比图3-1光滑得多。
◆在上面的f=sin(t). /t语句中,必须用点除符号,以表示是两个函数对应点上的值相除。
2、符号运算表示法
如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot( )等函数来绘出信号的波形。
例2对于连续信号()()() t t
t
Sa t
f
sin =
=,用符号表达式来表示它,同时用ezplot( )命令绘出其波形。
MATLAB程序如下:
syms t %符号变量说明
f=sin(t)/t ; %定义函数表达式
ezplot(f,[-10,10]) %绘制波形,并且设置坐标轴显示范围
运行结果如下:
图3-3
【说明】ezplot( )命令用来画三维图或平面图。
3、常见信号的MATLAB 表示
对于普通的信号,应用以上介绍的两种方法即可完成计算函数值或绘制波形,但是对于一些比较特殊的信号,比如单位阶跃信号()t u 、符号函数()t sgn 等,在MATLAB 中这些信号都有专门的表示方法。
(1)单位阶跃信号
单位阶跃信号的定义为:
()⎩⎨
⎧<>=0
00
1t t t u 单位阶跃信号是信号分析的基本信号之一,在信号与系统分析中有着非常重要的作用,通常,我们用它来表示信号的定义域,简化信号的时域表示形式。
例如:可以用两个不同延时的单位阶跃信号来表示一个矩形门信号,即:()()()112--+=t u t u t G
在MATLAB 中,有一个专门用于表示单位阶跃信号的函数,即stepfun( )函数,它是用数值计算法表示的单位阶跃函数()t u 。
其调用格式为:
stepfun(t,t0)
其中:t 是以向量形式表示的变量;
t0表示信号发生突变的时刻,在t0以前,函数值小于零,t0以后函数值大于零。
下面通过一个例子来说明如何调用stepfun( )函数来表示单位阶跃函数。
例3 用stepfun( )函数表示单位阶跃信号,并绘出其波形。
MATLAB 程序如下:
t=-1:0.01:4; %定义时间样本向量 t0=0; %指定信号发生突变的时刻 ut=stepfun(t,t0); %产生单位阶跃信号 plot(t,ut) %绘制波形 axis([-1,4,-0.5,1.5]) %设定坐标轴范围 运行结果如下:
图3-4
例4 绘出门函数()()()22--+=t u t u t f 的波形。
MATLAB 程序如下:
t=-4:0.01:4; %定义时间样本向量 t1=-2; %指定信号发生突变的时刻 u1=stepfun(t,t1); %产生左移位的阶跃信号()2+t u t2=2; %指定信号发生突变的时刻 u2=stepfun(t,t2); %产生右移位的阶跃信号()2-t u g=u1-u2; %表示门函数 plot(t,g) %绘制门函数的波形
axis([-4,4,-0.5,1.5]) %设定坐标轴范围-4<x<4 ,-0.5<y<1.5 运行结果如下:
图3-5
(2)符号函数
符号函数的定义为:()⎩⎨
⎧<->=0
10
1sgn t t t
在MATLAB 中有专门用于表示符号函数的函数sign( ) ,由于单位阶跃信号()t u 和符号函数两者之间存在以下关系:()()t t u sgn 2
1
21+=。
因此,利用这个函数就可以很容易地生成单位阶跃信号。
下面举个例子来说明如何利用sign( )函数生成单位阶跃信号,并同时绘制其波形。
例5 利用sign( )函数生成单位阶跃信号,并分别绘出两者的波形。
MATLAB 程序如下:
t=-5:0.01:5; %定义自变量取值范围及间隔,生成行向量t f=sign(t); %定义符号信号表达式,生成行向量f figure(1); plot(t,f); %打开图形窗口1,绘制符号函数的波形 axis([-5,5,-1.5,1.5]) %定义坐标轴显示范围 s=1/2+1/2*f; %生成单位阶跃信号
figure(2); plot(t,s) ; %打开图形窗口2,绘制符号函数的波形 axis([-5,5,-0.5,1.5]) %定义坐标轴显示范围 运行结果如下:
图3-6
三、实验内容
1、运行以上5个例题的程序,保存运行结果。
2、已知信号()t f 的波形如下图所示,试用MATLAB 绘出满足下列要求的信号波形。
(1)()t f -; (2) ()2-t f ;
(3)()at f (其中a 的值分别为2
1
=
a 和2=a ); (4)⎪⎭
⎫ ⎝⎛+121t f 。