MATLAB教程

Download Report

Transcript MATLAB教程

信号与系统实验四
连续时间信号的复频域分析
1
主要内容

4.1拉普拉斯变换和反变换及其可视化

4.2系统函数的零、极点分布

4.3 系统冲激响应
2
4.1 拉普拉斯变换和反变换
利用MATLAB符号运算功能实现拉普拉斯变换及其
逆变换,可直接调用指令 laplace 和ilaplace
调用格式:
L=laplace(F)
F=ilaplace(L)
3
例1:用MATLAB求单边余弦信号f(t)=cos(2t)(t)的拉普
拉斯变换的数值解。
命令代码如下:
syms t;
%定义时间符号变量
F=cos(2*t);
%定义信号的符号表达式
L=laplace(F) %计算其拉氏变换符号表达式
运行结果:
L=
s/(s^2+4)
4
例2:用MATLAB求函数 F ( s)  2 4s  5 的拉普拉
s  5s  6
斯变换的数值解。
命令代码如下:
syms s;
%定义复变量
L=(4*s+5)/(s^2+5*s+6);
F=ilaplace(L)
运行结果:
F=
7*exp(-3*t)-3*exp(-2*t)
5
拉普拉斯变换的可视化
1. 定义两个向量x和y来确定绘制曲面图的复平面横
座标和纵座标的范围。
2. 调用meshgrid函数产生包含绘制曲面图的s平面
区域所有等间隔取样点的复矩阵。
3. 计算复矩阵s定义的各样点处信号拉氏变换F(s)的
函数值,并调用abs函数求其模。
4. 调用mesh函数绘出其幅度曲面图。
6
例3:绘制单边指数信号 f (t )  e  (t )拉氏变换的幅度曲面图。
命令代码如下:
x=-1:0.1:0.5;
%定义绘制曲面图的横坐标范围
y=-5:0.1:5;
%定义绘制曲面图的纵坐标范围
[x,y]=meshgrid(x,y);
s=x+i*y;
%产生绘制曲面图范围的复矩阵
F=abs(1./(s+2));
%求单边指数信号的拉普拉斯变换幅度值
mesh(x,y,F);
%绘制拉普拉斯变换幅度曲面图
surf(x,y,F)
colormap(hsv);
%绘图修饰
title('单边指数信号拉普拉斯变换幅度曲面图');
%设置文本标题
xlabel('实轴')
%设置横坐标标题
ylabel('虚轴')
%设置纵坐标标题
2t
7
4.2 系统函数的零、极点分布
1. 系统函数H(s)的零极点分布完全决定了系统
的特性。系统函数的零点和极点位置可以用
matlab的多项式求根函数roots()来求得。用
roots()函数求得系统函数H(s)的零极点后,就可
以用plot命令在复平面上绘制出系统函数的零极
点图。
8
例4:已知连续时间系统的系统函数如下所示,
试用MATLAB绘出系统的零极点分布图,并判
断系统是否稳定。
s2  4
H ( s)  4
s  7 s 3  17 s 2  17 s  6
9
代码如下:
A=[1 7 17 17 6]
B=[1 0 -4]
p=roots(A)
q=roots(B)
p=p'
q=q'
x=max(abs([p q]))
x=x+0.1
y=x
clf
hold on
axis([-x x -y y])
axis('square')
plot([-x x],[0 0])
plot([-0 0],[-y y])
plot(real(p),imag(p),'x')
plot(real(q),imag(q),'o')
title('连续时间系统的零极点图')
text(0.2,x-0.2,'虚轴')
text(y-0.2,0.2,'实轴')
周期性矩形波
2. 用函数residue()求出H(s)部分分式展开的系数后,
便可根据其极点位置分布直接求出H(s)的拉氏反变
换h(t)。利用impulse(),将系统冲激响应 h(t)的时
域波形绘制出来。
调用格式:
[r,p,k] = residue(b,a)
(关于residue的用法,请参阅matlab help)
11
例5:求下列系统函数的冲激响应和阶跃响应
2 s 2  5s  1
H ( s)  2
2s  2s  3
代码
b=[2 5 1];
a=[1 2 3];
[r,p,k]=residue(b,a)
impulse(b,a) %冲激响应
step(b,a)
%阶跃响应
12
3.利用tf()函数、pole()函数、zero()函数和pzmap()
函数,能方便地求出系统函数的零极点,并绘出
其零极点分布图。
调用格式:
sys=tf(b,a); %b为系统函数分子多项式系数构成的
行向量;a为分母多项式系数构成的行向量;sys
为系统函数对象。
p=pole(sys); %输出参量p为返回包含系统函数所有
极点位置的列向量。
z=zero(sys);
pzmap(sys);%用于绘制系统函数零极点分布图和计
算系统函数的零极点位置
例6:
b=[2 5 1];
a=[1 2 3];
sys=tf(b,a)
p=pole(sys)
z=zero(sys)
subplot(211)
pzmap(sys)
subplot(212)
impulse(b,a)
14
作业
求以下系统函数的零极点并画出零极点图,并求
阶跃响应和冲击响应
s2
H (s)  2
s  4s  5
15