信号与系统实验指导书

发布时间 : 星期一 文章信号与系统实验指导书更新完毕开始阅读

《信号与系统》实验指导书

实验一 利用MATLAB进行信号的表示及运算

一、实验目的

1、学会用MATLAB表示常用连续或离散信号的方法; 2、学会用MATLAB进行信号基本运算的方法。

二、实验原理及内容

1、连续信号的MATLAB表示

MATLAB提供了大量的生成基本信号的函数。最常用的信号是正(余)弦信号,它是MATLAB的内部函数,即使不安装任何工具箱也可直接调用。

(1)指数信号

指数信号eat在MATLAB中用exp函数表示。首先,按照需要在一定时间范围内生成一些时间点,然后调用该函数计算这些点的函数值,最后画出其波形图即可。其程序及波形如下:

A=1;a=-0.4; t=0:0.001:10; ft=A*exp(a*t); plot(t,ft)

(2)正弦信号

正弦信号的产生方法与指数信号类似,其程序及波形如下: A=1; w0=2*pi; phi=pi/6; t=0:0.001:8; ft=A*sin(w0*t+phi); plot(t,ft)

axis([0,2,-1.2,1.2]); (3)抽样信号

抽样信号Sa(t)在MATLAB中用sinc函数表示,其定义为

sinc(t)?sin(?t)/(?t)

第 1 页 共 32 页

图1-2 正弦信号波形 图1-1 指数信号波形

《信号与系统》实验指导书

其程序及波形如下:

t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft);

axis([-10,10,-0.5,1.2]);

(4)矩形脉冲信号

矩形脉冲信号在MATLAB中可调用rectpuls函数产生,其调用格式为

y?rectpuls(t,width)

图1-3 抽样信号波形

用以产生一个幅度为1,宽度为width且以t=0为对称轴的矩形波。Width的默认值为1。其程序及波形如下:

t=0:0.001:4; T=1;

ft=rectpuls(t-2*T,T); plot(t,ft); axis([0,4,0,1.5])

(5)三角波脉冲信号

三角波脉冲信号在MATLAB中可调用tripuls函数产生,其调用格式为

y?tripuls(t,width,skew)

图1-4 矩形脉冲信号波形

用以产生一个幅度为1,宽度为width的三角波。其程序及波形如下:

t=-3:0.001:3; ft=tripuls(t,4,0.5); plot(t,ft);

第 2 页 共 32 页

图1-5 三角波信号波形

《信号与系统》实验指导书

2、离散信号的MATLAB表示 (1)指数序列

离散指数序列的形式为ak,可以用MATLAB中的数组幂运算a.?k实现。其程序及波形如下:

k=0:10;A=1;a=-0.6; fk=A*a.^k; stem(k,fk,’.’); axis([-1,11,-1,1.2]);

(2)正弦序列

离散正弦序列的MATLAB产生方法与连续信号相同,但图形显示方法不同,是用stem函数画出的。其程序及波形如下:

k=0:39; fk=sin(pi/6*k); stem(k,fk,’.’); axis([-1,40,-1.5,1.5])

(3)单位阶跃序列

单位阶跃序列是时间无限的序列,而计算机只能表示有限的序列,所以MATLAB只能在有限的时间范围内产生近似的单位阶跃序列。其程序及波形如下:

k=-50:50;

uk=[zeros(1,50),ones(1,51)]; stem(k,uk,'.'); axis([-60,60,0,1.5])

第 3 页 共 32 页

图1-8 单位阶跃序列信号波形 图1-7 正弦序列信号波形 图1-6 指数序列信号波形

《信号与系统》实验指导书

3、信号基本运算的MATLAB实现 (1)信号的尺度变换、翻转、平移

信号的尺度变换、翻转、平移运算,实际上是函数自变量的运算。在信号的尺度变换f(at)和f[Mk]中,函数的自变量乘以一个常数,在MATLAB中可用算术运算符“*”来实现。在信号翻转f(?t)和f[?k]运算中,函数的自变量乘以一个负号,在MATLAB中可以直接写出。在信号平移f(t?t0)和f[k?k0]运算中,在MATLAB中可用算术运算符“+”或“-”来实现。对于图1-5所示的三角波,f(2t)和f(2?2t)的程序和波形如下:

t=-3:0.001:3; ft=tripuls(t,4,0.5); subplot(3,1,1); plot(t,ft); title('f(t)');

ft1=tripuls(2*t,4,0.5); subplot(3,1,2); plot(t,ft1); title('f(2t)');

ft2=tripuls(2-2*t,4,0.5); subplot(3,1,3); plot(t,ft2); title('f(2-2t)')

(2)离散序列的差分与求和

离散序列的差分?f[k]?f[k]?f[k?1],在MATLAB中用diff函数来计算。离散序列的求和?f[k]运算与离散序列的相加运算不同,离散序列的相加运算是把不同离散序列进行相加,而离散序列的求和是将某时刻范围内的所有该序列值进行相加,在MATLAB中用sum函数来计算。

例1-1 用MATLAB计算指数信号(?0.6)ku[k](0?k?10)的能量。 解:离散信号的能量定义为

E?lim图1-9 信号的变换

N??k??N?Nf[k]

第 4 页 共 32 页

联系合同范文客服:xxxxx#qq.com(#替换为@)