1、学会运用Matlab表示常用连续时间信号的方法
2、观察并熟悉这些信号的波形和特性.
连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点之外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
在MATLAB可视化绘图中,对于以t为自变量的连续信号,在绘图时统一用plot函数;而对n为自变量的离散序列,在绘图时统一用stem函数。
对于连续时间信号f(t),可用f、t两个行向量来表示。
例:t=-10:1.5:10;
f=sin(t)./ t ;
可以产生t= -10~10,间隔1.5的序列以及的值。
用命令:plot(t,f)可得如下图形,显然显示效果较差,这是因为t的间隔过大,只要改变为:t=-10:0.5:10;可得图1.2。
图1.1 图1.2
1. 信号的时域表示方法
MATLAB提供了大量用以生成基本信号的函数,比如最常用的指数信号、正弦信号等就是MATLAB的内部函数,即不需要安装任何工具箱就可以调用的函数。
(1)单位阶跃信号u(t)
function y=heaviside(t) %阶跃信号
y = (t>=0);
(2)单位冲激信号δ(t)
f=dirac(t)
或function y = delta(t)
dt = 0.01;
y = (u(t)-u(t-dt))/dt;
(3)指数信号
指数信号在MATLAB中可以用exp函数表示,其调用形式为:
y=A*exp(a*t)
指数衰减信号的MATLAB源程序如下(取A=2,a=-0.4):
A=1;a=-0.4;
t=0:0.01:10;
ft=A*exp(a*t);
plot(t,ft);grid on;
(4)正弦信号
正弦信号和分别用MATLAB的内部函数cos和sin表示,其调用形式为:
MATLAB源程序如下(取A=1,,):
A=1;w0=2*pi;phi=pi/6;
t=0:0.01:8;
ft=A*sin(w0*t+phi);
plot(t,ft);grid on;
单边指数衰减信号 正弦信号
除了内部函数外,在信号处理工具箱(Signal Processing Toolbox)中还提供了诸如抽样
函数、矩形波、三角波、周期性矩形波和周期性三角波等在信号处理中常用的信号。
(5).抽样函数
抽样函数Sa(t)在MATLAB中用sinc表示,其定义为:
其调用形式为:
抽样函数的MATLAB源程序如下:
t=-3*pi:pi/100:3*pi;
ft=sinc(t/pi);
plot(t,ft);grid on;
或者
sym t
Sa=sym(‘sin(t)/t’)
ezplot(Sa,[-10 10])
(6)矩形脉冲信号
矩形脉冲信号在MATLAB中用rectpuls函数来表示,其调用形式为:
用以产生一个幅值为1、宽度为width、相对于t=0点左右对称的矩形波信号。该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围。width的默认值为1。例如图所示以t=2T(即)为对称中心的矩形脉冲信号的MATLAB 源程序如下(取T=1):
t=0:0.001:4;
T=1;
ft=rectpuls(t-2*T,2*T);
plot(t,ft);grid on;axis([0 4 -0.5 1.5]);
抽样函数 矩形波信号
2.连续信号的相加、相乘、时移、反转和尺度变换等基本运算
(1)两个连续信号的相加
在MATLAB中要实现两个连续信号f1(t)、f2(t)的相加,可用如下语句:
x=symadd(f1,f2) 或 x=f1+f2 % x(t)= f1(t)+f2(t)
(2)两个连续信号的相乘
在MATLAB中要实现两个连续信号f1(t)、f2(t)的相乘,可用如下语句:
x=symmul(f1,f2) 或 x=f1*f2 % x(t)= f1(t) f2(t)
(3)连续信号的平移
要实现连续信号f(t)向右平移t0,MATLAB语句格式为:
x=subs(f,t,t-t0) % x(t)= f(t-t0)
(4)连续信号的反转
对一个信号x(t)的反褶运算在数学上表示为:y (t)=x(-t)
使用MATLAB内部函数fliplr()来实现信号的反褶运算。其用法如下:y = fliplr(x):其中x为原信号x(t),而y则为x的时域反褶。而翻转后的信号的坐标则可由-fliplr(t)得到。
(5)连续信号的尺度变换
要实现连续信号f(t)的尺度变换,MATLAB语句格式为:
x=subs(f,t,a*t) % x(t)= f(at)
要实现连续信号f(t)的平移、尺度变换的综合运算,MATLAB语句格式为:
x=subs(f,t,a*t-b) % x(t)= f(at-b)
例1:编制一个m文件,绘出f1(t)=e-0.5t[u(t)-(t-2)]、 f2(t)=sin(5πt)[u(t)-u(t-2)]、f1(-2t+1)、f1(t) f2(t-1)的波形。
解:实现所要求运算的m文件如下,
syms t
f1=sym('exp(-0.5*t)*(heaviside(t)-heaviside(t-2))');
f2=sym('sin(5*pi*t)*(heaviside(t)-heaviside(t-2))');
subplot(2,2,2), ezplot(f2);title('f2');
f3=subs(f1,t,-2*t+1);
subplot(2,2,3);ezplot(f3);title('f3');
f4=f1*subs(f2,t,t-1);
subplot(2,2,4);ezplot(f4);title('f4');
运算结果如图1-11所示。其中,图1-11(a)、(b)、(c)、(d)分别为f1(t)、f2(t) 、f1(-t+1) 、f1(t) f2(t-1)的波形。
1、用MATLAB画出上述(1)-(6)信号的波形。
2、编制一个m文件,绘出f1(t)及f1(-3t+1)的波形。
3 试用Matlab绘制出如下连续时间信号的时域波形,并观察信号是否为周期信号。若是周期信号,周期是多少?
(a)
(b)
1.实验目的。
2.实验内容与步骤,MATLAB语言编程完成序列的表示及运算,并附上仿真后波形。
3.简要回答思考题。
4.记录调试运行情况及所遇问题的解决方法。
本文来源:https://www.2haoxitong.net/k/doc/66785309e009581b6ad9eb26.html
文档为doc格式