资源描述
.
实验1 连续时间信号在MATLAB中的表示
1. 实验目的
学会运用MATLAB表示常用连续时间信号的方法;观察并熟悉这些信号的波形和特性。
2. 实验原理
在某一时间区间内,除若干个不连续点外,如果任意时刻都可以给出确定的函数值,则称该信号为连续时间信号,简称为连续信号。从严格意义上讲,MATLAB数值计算的方法并不能处理连续时间信号。然而,可利用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB处理,并且能较好地近似表示连续信号。
MATLAB提供了大量生成基本信号的函数。比如常用的指数信号、正余弦信号等都是MATLAB的内部函数。为了表示连续时间信号,需定义某一时间或自变量的范围和取样时间间隔,然后调用该函数计算这些点的函数值,最后画出其波形图。
3. 实例分析
3.1 典型信号的MATLAB表示
(1)实指数信号
实指数信号的基本形式为。式中,为实数。当时,实指数信号随时间按指数式增长;当时,实指数信号随时间按指数式衰减;当时候,则转化为直流信号。MATLAB中用exp函数来表示实指数信号,其语句格式为:
例1 用MATLAB命令产生单边衰减指数信号,并绘出时间的波形图。
解:MATLAB源程序为:
clear;clc;
K = 2; a = -1.5;
t = 0:0.01:3;
ft = K*exp(a*t);
plot(t,ft);grid on
axis([0,3,0,2.2]);
title('单边指数衰减信号');
(2)正弦信号
正弦信号的基本形式为或者。其中K
是振幅;是角频率;是初相位。这三个参数称为正弦信号的三要素。MATLAB中可用sin或者cos函数来表示正弦信号,其语句格式为:
例2 用MATLAB命令产生正弦信号,并绘出时间的波形图。
解:MATLAB源程序为:
clear;clc;
K = 2; w = 2*pi; phi = pi/4;
t = 0:0.01:3;
ft = K*sin(w*t+phi);
plot(t,ft);grid on
axis([0,3,-2.2,2.2]);
title('正弦信号');
图1 单边指数衰减信号 图2 正弦信号
(3)抽样信号
抽样信号的基本形式为,在MATLAB中用与类似的函数表示,定义为。
可以看出,函数与没有本质的区别,只是在时间尺度上不同而已。
例3 用MATLAB命令产生抽样信号,并绘出时间为的波形图。
精选范本
解:MATLAB源程序为:
clear;clc;
t = -6*pi: pi/100: 6*pi;
ft = sinc(t/pi);
plot(t,ft);grid on
axis([-20,20,-0.5,1.2]);
title('抽样信号');
图3 抽样信号
(4)矩形脉冲信号
矩形脉冲信号在MATLAB中可用rectpuls函数产生,其语句格式为:
该函数用于产生一个幅度为1、宽度为width,且以t=0为对称轴的矩形脉冲信号,width的默认值为1。
例4 用MATLAB命令画出下列矩形脉冲信号的波形图。
解:根据所定义的矩形脉冲信号,定义的矩形脉冲宽度为1,脉冲的中心位置相对于纵轴向右移动了0.5。因此,其MATLAB源程序为:
clear;clc;
t = -0.5: 0.01: 3;
t0 = 0.5; width = 1;
ft = 2* rectpuls(t-t0, width);
plot(t,ft);grid on
axis([-0.5,3,-0.2,2.2]);
title('矩形脉冲信号');
图4 矩形脉冲信号
周期性矩形波信号或方波在MATLAB中可用square函数产生,其语句格式为:
y=square(t,DUTY)
该函数用于产生一个周期为,幅值为的周期性方波信号,其中,DUTY参数用来表示信号的占空比DUTY%,即在一个周期内脉冲宽度(正值部分)与脉冲周期比值。占空比默认值为0.5。
例5 用MATLAB命令产生频率为10Hz,占空比为30%的周期方波信号。
解:MATLAB源程序为:
clear;clc;
t = 0: 0.001: 0.3;
y = square(2*pi*10*t, 30);
plot(t,y);grid on
axis([0,0.3,-1.2,1.2]);
title('周期方波信号');
图5 周期方波信号
还有非周期的三角波脉冲可以用tripuls函数,周期三角波(锯齿波)可以用sawtooth函数实现。同学们可以通过MATLAB help自学,或者上网搜索及其他途径学习。
3.2 单位阶跃信号的MATLAB表示
单位阶跃信号是信号分析中的基本信号之一,在信号与系统分析中有着十分重要的意义,常用于简化信号的时域数学表示。例如,表示分段函数信号、时限信号和因果信号等。单位阶跃信号用符号表示,定义为:
例6 用MATLAB命令产生单位阶跃信号。
解: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
在表示分段函数信号、时限信号时,经常用到延时的单位阶跃信号,对于延时T的单位阶跃信号,可以用 uCT(t-T)来表示。
例7 用MATLAB命令实现幅度为1、宽度为1的门函数。
解: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) (2)
(3) (4)
4.2 利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。
4.3 利用MATLAB命令画出如下信号的实部、虚部、模和幅角。
5. 问题与思考
阶跃信号函数中语句ft = (t >=0 )的含义。
展开阅读全文