《信号与系统》实验指导书 下载本文

?1t?0 u(t)???0t?0例6 用MATLAB命令产生单位阶跃信号u(t)。 解:MATLAB源程序为:

clear;clc;

t = -1: 0.01: 5; ft = (t >=0 ); plot(t,ft);grid on axis([-1,5,-0.5,1.5]); title('单位阶跃信号');

图6 单位阶跃信号

此外,也可以在MATLAB的工作目录下创建uCT的M文件,其MATLAB源文件为:

function f = uCT(t) f = (t>=0);

保存后,就可调用该函数,并运用plot命令来绘制单位阶跃信号的波形。例如,图6中波形也可以用如下代码实现:

clear;clc;

t = -1: 0.01: 5; ft = uCT(t); plot(t,ft);grid on axis([-1,5,-0.5,1.5]); title('单位阶跃信号');

注意,在此定义的uCT函数是阶跃信号数值表示方法,因此在数值计算机中

我们将调用uCT函数。而在MATLAB的MAPLE内核中,将Heaviside函数定义为阶跃信号符号表达式,在符号运算过程中,若要调用它必须用sym定义后,才能实现。例如,还可用下面的命令会出阶跃信号,即:

clear;clc;

y=sym('Heaviside(t)'); % 定义符号表达式 ezplot(y,[-1,5]).grid on

在表示分段函数信号、时限信号时,经常用到延时的单位阶跃信号,对于延

10

时T的单位阶跃信号u(t?T),可以用 uCT(t-T)来表示。 例7 用MATLAB命令实现幅度为1、宽度为1的门函数g(t)。

解:MATLAB源程序为:

clear;clc;

t = -1: 0.01: 1;

ft = uCT(t+0.5)-uCT(t-0.5); plot(t,ft);grid on axis([-1,1 -0.2,1.2]); title('门函数');

图 图7 门函数波形

4. 实验内容

4.1 利用MATLAB命令画出下列连续信号的波形图。 (1)2cos(3t??/4) (2)(2?e?t)u(t)

(3)t[u(t)?u(t?1)] (4)[1?cos(?t)][u(t)?u(t?2)]

4.2 利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。T=1;f=1/T=1

4.3 利用MATLAB命令画出如下信号的实部、虚部、模和幅角。

f(t)?jt2?e4?jt?e2? cos(pi/4*t)+jsin(pi/4*t)

5. 问题与思考

阶跃信号函数中语句ft = (t >=0 )的含义。

11

实验3 连续时间信号在MATLAB中的运算

1. 实验目的

学会运用MATLAB进行连续信号的时移、反折和尺度变换;学会运用MATLAB进行连续信号的相加、相乘运算;学会运用MATLAB数值计算方法求连续信号的卷积。

2. 实验原理

2.1信号的时移、反折和尺度变换

信号的时移、反折和尺度变换是针对自变量时间而言的,其数学表达式与波

形变换之间存在一定的变换规律。

信号f(t)的时移就是将信号数学表达式中的t用t?t0替换,其中t0为正实数。

因此,波形的时移变换是将原来的f(t)波形在时间轴上向左或者向右移动。

f(t?t0)为f(t)波形向左移动t0;f(t?t0)为f(t)波形向右移动t0。信号f(t)的反折就是将表达式中的自变量t用?t替换,即变换后的波形是原波形的y轴镜像。信号f(t)的尺度变换就是将表达式中的自变量t用at替换,其中,a为正实数。对应于波形的变换,则是将原来的f(t)的波形以原点为基准压缩(a?1)至原来的1/a,或者扩展(0?a?1)至原来的1/a。

上述可以推广到f(at?t0)的情况。

2.2 MATLAB数值计算法求连续时间信号的卷积

用MATLAB分析连续时间信号,可以通过时间间隔取足够小的离散时间信

号的数值计算方法来实现。可调用MATLAB中的conv( )函数近似地数值求解连续信号的卷积积分。如果对连续时间信号f1(t)和f2(t)进行等时间间隔?t(足够小)均匀抽样,则f1(t)和f2(t)分别变为离散序列f1(m?t)和f2(m?t)。其中m为

整数。当?t足够小时,f1(m?t)和f2(m?t)即为连续时间信号f1(t)和f2(t)。因此

12

连续信号的卷积积分运算转化为:

f(t)?f1(t)*f2(t)??f1(?)f2(t??)d?

????lim?t?0m?????f1(m?t)?f2(t?m?t)??t

采用数值计算法,只求当t?n?t时卷积积分f(t)的值f(n?t),其中,n为整数,即

f(n?t)?m??????f1(m?t)?f2(n?t?m?t)??t

??t?m????f1(m?t)?f2[(n?m)?t]

其中,

m????f1(m?t)?f2[(n?m)?t]实际就是离散序列f1(m?t)和f2(m?t)的卷积和。当

?t足够小时,f(n?t)就是卷积积分的结果,从而连续时间信号

f(t)?f(n?t)??[f1(n)*f2(n)]

上式表明通过MATLAB实现连续信号f1(t)和f2(t)的卷积,可以利用各自抽

样后的离散时间序列的卷积再乘上抽样间隔?t。抽样间隔?t越小,误差也就越小。

3. 实例分析

例1 已知信号f(t)?u(t?2)?u(t)?(?t?1)[u(t?1)?u(t)],试用MATLAB命令画出f(t?2)、f(3t)、f(?t)、f(?3t?2)的波形图。

解:根据已知信号,先建立f(t)函数文件,即在MATLAB的工作目录下创建funct1.m文件,MATLAB源程序为:

function f = funct1(t)

f=uCT(t+2)-uCT(t)+(-t+1).*(uCT(t)-uCT(t-1));

然后,可以调用上述函数来绘制所求的信号波形。程序运行完,产生如图1所示的波形。MATLAB源程序为:

13