信号与系统实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 常见信号的MATLAB 表示及运算

一、实验目的

1.熟悉常见信号的意义、特性及波形

2.学会使用MATLAB 表示信号的方法并绘制信号波形 3. 掌握使用MATLAB 进行信号基本运算的指令 4. 熟悉用MATLAB 实现卷积积分的方法

二、实验原理

根据MATLAB 的数值计算功能和符号运算功能,在MA TLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。在采用适当的MA TLAB 语句表示出信号后,就可以利用MA TLAB 中的绘图命令绘制出直观的信号波形了。

1.连续时间信号

从严格意义上讲,MATLAB 并不能处理连续信号。在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB 中连续信号可用向量或符号运算功能来表示。 ⑴ 向量表示法

对于连续时间信号()f t ,可以用两个行向量f 和t 来表示,其中向量t 是用形如12::t t p t =的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。向量f 为连续信号()f t 在向量t 所定义的时间点上的样值。

⑵ 符号运算表示法

如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot()等函数来绘出信号的波形。 ⑶ 常见信号的MATLAB 表示 单位阶跃信号

单位阶跃信号的定义为:10()0

t u t t >⎧=⎨

<⎩

方法一: 调用Heaviside(t)函数

首先定义函数Heaviside(t) 的m 函数文件,该文件名应与函数名同名即Heaviside.m 。

%定义函数文件,函数名为Heaviside,输入变量为x,输出变量为y function y= Heaviside(t)

y=(t>0); %定义函数体,即函数所执行指令

%此处定义t>0时y=1,t<=0时y=0,注意与实际的阶跃信号定义的区别。

方法二:数值计算法

在MATLAB 中,有一个专门用于表示单位阶跃信号的函数,即stepfun( )函数,它是用数值计算法表示的单位阶跃函数()u t 。其调用格式为:

stepfun(t,t0)

其中,t 是以向量形式表示的变量,t0表示信号发生突变的时刻,在t0以前,函数值小于零,t0以后函数值大于零。有趣的是它同时还可以表示单位阶跃序列()u k ,这只要将自变量以及取样间隔设定为整数即可。 符号函数

符号函数的定义为:10sgn()1

t t t >⎧=⎨

-<⎩

在MA TLAB 中有专门用于表示符号函数的函数sign() ,由于单位阶跃信号 (t)和符号函数

两者之间存在以下关系:1122()sgn()t t ε=+,因此,利用这个函数就可以很容易地生成单

位阶跃信号。

2.离散时间信号

离散时间信号又叫离散时间序列,一般用()f k 表示,其中变量k 为整数,代表离散的采样时间点(采样次数)。

在MATLAB 中,离散信号的表示方法与连续信号不同,它无法用符号运算法来表示,而只能采用数值计算法表示,由于MATLAB 中元素的个数是有限的,因此,MATLAB 无法表示无限序列;另外,在绘制离散信号时必须使用专门绘制离散数据的命令,即stem()函数,而不能用plot()函数。 单位序列

()k δ

单位序列()k δ)的定义为10()0

k k k δ=⎧=⎨≠⎩

单位阶跃序列()u k

单位阶跃序列()u k 的定义为10()0

k u k k ≥⎧=⎨<⎩

3.卷积积分

两个信号的卷积定义为:

1212()()()()()y t f t f t f f t d τττ∞

-∞

=*∆-⎰

MATLAB 中是利用conv 函数来实现卷积的。

功能:实现两个函数1()f t 和2()f t 的卷积。

格式:g=conv(f1,f2)

说明:f1=f 1(t),f2=f 2(t) 表示两个函数,g=g(t)表示两个函数的卷积结果。

三、实验内容

1.分别用MATLAB 的向量表示法和符号运算功能,表示并绘出下列连续时间信号的波形: ⑴ 2()(2)()t

f t e u t -=- ⑵ []()cos(

)()(4)2

t

f t u t u t π=--

(1) t=-1:0.01:10;

t1=-1:0.01:-0.01; t2=0:0.01:10;

f1=[zeros(1,length(t1)),ones(1,length(t2))]; f=(2-exp(-2*t)).*f1; plot(t,f)

axis([-1,10,0,2.1])

syms t;

f=sym('(2-exp(-2*t))*heaviside(t)'); ezplot(f,[-1,10]);

(2)

t=-2:0.01:8;

f=0.*(t<0)+cos(pi*t/2).*(t>0&t<4)+0.*(t>4); plot(t,f)

syms t;

f=sym('cos(pi*t/2)*[heaviside(t)-heaviside(t-4)] '); ezplot(f,[-2,8]);

2.分别用MATLAB 表示并绘出下列离散时间信号的波形: ⑵ []()()(8)f t k u k u k =-- ⑶ ()sin()()4

k f k u k π

= (2) t=0:8; t1=-10:15;

f=[zeros(1,10),t,zeros(1,7)]; stem(t1,f)

axis([-10,15,0,10]);

相关文档
最新文档