《信号与系统》 —实验指导书
编写:李灿苹
信息学院
班级: 姓名: 学号:
目 录
实验一 连续时间信号的MATLAB表示
实验二 实验三 实验四 实验五
连续时间LTI系统的时域分析
连续时间LTI系统的频率特性及频域分析 连续时间LTI系统的零极点分析 典型离散信号及其MATLAB实现
2
实验一 连续时间信号的MATLAB表示
实验目的
1.掌握MATLAB语言的基本操作,学习基本的编程功能; 2.掌握MATLAB产生常用连续时间信号的编程方法; 3.观察并熟悉常用连续时间信号的波形和特性。
实验原理
1. 连续信号MATLAB实现原理
从严格意义上讲,MATLAB数值计算的方法并不能处理连续时间信号。然而,可用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB处理,并且能较好地近似表示连续信号。
MATLAB提供了大量生成基本信号的函数。比如常用的指数信号、正余弦信号等都是MATLAB的内部函数。为了表示连续时间信号,需定义某一时间或自变量的范围和取样时间间隔,然后调用该函数计算这些点的函数值,最后画出其波形图。
2. 典型信号的MATLAB表示
(1) 实指数信号:f(t)?Keat,式中K,a为实数。在MATLAB中可以利用exp()函数实现,其语句格式为:y=K*exp(a*t)。
(2) 正弦信号:f(t)?Ksin(?t??)或f(t)?Kcos(?t??),其中K为振幅,ω是角频率;φ是初相位。在MATLAB中可以利用sin()或cos()函数实现,其语句格式为K*sin(ω*t+phi),K*cos(ω*t+phi)。
(3) 单位阶跃信号:单位阶跃信号定义为?(t)????1??0?t?0?,单位阶跃信号在?t?0?MATLAB中用
“( t >=0)”产生。MATLAB表达式“y = ( t >=0)”的含义就是t ≥ 0时y =1,而当t < 0时y =0。
此外,也可在MATLAB的work目录下创建uCT的M文件,其MATLAB源程序为 function f=uCT(t) f=(t>=0);
保存为uCT.m后,就可以调用该函数。
注意,在此定义的uCT函数是阶跃信号数值表示方法,因此在数值计算中我们将调用uCT函数。而在MATLAB的MAPLE内核中,将Heaviside函数定义为阶跃信号符号表达式,在符号运算过程中,若要调用它必须用sym定义后,才能实现。
(4) 复指数信号:f(t)?Kest?Ke(??j?)t?Ke?tcos(?t)?jKe?tsin(?t),其中,s=σ+jω是复变量;σ、
3
ω为实数。在MATLAB中可以利用exp()函数表示复指数信号,MATLAB中默认变量i为虚部单位,求取实部用real()函数,求取虚部用imag()函数,求取模用abs()函数,求取相角用angle()函数。
(5) 抽样信号:Sa(t)?sin(t)/t,在MATLAB中用与Sa(t)类似的sinc(t)函数表示,定义为sinc(t)?sin(?t)/(?t)。
?1?(6) 矩形脉冲信号:g?(t)????0冲信号,width的默认值为1。
?t??/2?在MATLAB中可用rectpuls()函数产生,其语句格
?t??/2?式为y=rectpuls(t,width),该函数用于产生一个幅度为1、宽度为width,且以t=0为对称轴的矩形脉
周期性矩形波信号或方波在MATLAB中可用square函数产生,其语句格式为square(t,DUTY)。该函数用于产生一个周期为2?、幅值为?1的周期性方波信号,其中,DUTY参数用来表示信号的占空比DUTY%,即在一个周期内脉冲宽度(正值部分)与脉冲周期的比值。占空比默认值为0.5。
(7) 三角波脉冲信号:在MATLAB中可用tripuls()函数产生,其语句格式为y=tripuls(t,width,skew),该函数用于产生一个幅度为1、宽度为width,且以t=0为中心左右各展开width/2大小、斜度为skew的三角波。width的默认值为1,skew的取值范围在-1~+1之间。一般最大幅度1出现在t=(width/2)×skew的横坐标位置,默认时skew=0,此时产生对称三角波。
(8) 下面的函数也可以产生特定的信号 y=fliplr(t)——信号的翻转;
y=sawtooth(t,width)——产生锯齿波信号。
实验内容
1. 实例分析与验证
根据以上典型信号的MATLAB函数,分析与验证下列典型信号MATLAB程序,并实现各信号波形图的显示,连续信号的图形显示使用连续二维图函数plot()。
(1) 正弦信号:用MATLAB命令产生正弦信号2sin(2???/4),并会出时间0≤ t ≤3的波形图。 程序如下:
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('正弦信号')
(2) 抽样信号:用MATLAB中的sinc(t)函数命令产生抽样信号Sa(t),并会出时间为?6??t?6?的波形图。
程序如下:
t=-6*pi:pi/100:6*pi;
4