实验六 信号与系统复频域分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六 信号与系统复频域分析
一、实验目的
1.学会用MATLAB 进行部分分式展开;
2.学会用MATLAB 分析LTI 系统的特性;
3.学会用MATLAB 进行Laplace 正、反变换。
4.学会用MATLAB 画离散系统零极点图;
5.学会用MATLAB 分析离散系统的频率特性;
二、实验原理及内容
1.用MATLAB 进行部分分式展开
用MATLAB 函数residue 可以得到复杂有理分式F(s)的部分分式展开式,其调用格式为
[],,(,)r p k residue num den =
其中,num,den 分别为F(s)的分子和分母多项式的系数向量,r 为部分分式的系数,p 为极点,k 为F(s)中整式部分的系数,若F(s)为有理真分式,则k 为零。
例6-1 用部分分式展开法求F(s)的反变换 322
()43s F s s s s
+=
++
解:其MATLAB 程序为
format rat; num=[1,2]; den=[1,4,3,0]; [r,p]=residue(num,den)
程序中format rat 是将结果数据以分数形式显示 F(s)可展开为
2
1
0.536()13
F s s s s --=++++
所以,F(s)的反变换为
321
1()()
32
6t t f t e e u t --⎡⎤=--⎢⎥⎣⎦ 2.用MATLAB 分析LTI 系统的特性
系统函数H (s )通常是一个有理分式,其分子和分母均为多项式。计算H (s )的零极点可以应用MATLAB 中的roots 函数,求出分子和分母多项式的根,然后用plot 命令画图。
在MATLAB 中还有一种更简便的方法画系统函数H (s )的零极点分布图,即用pzmap 函数画图。其调用格式为
pzmap(sys)
sys 表示LTI 系统的模型,要借助tf 函数获得,其调用格式为
sys=tf(b,a)
式中,b 和a 分别为系统函数H (s )的分子和分母多项式的系数向量。
如果已知系统函数H (s ),求系统的单位冲激响应h(t)和频
率响应H ω(j )可以用以前介绍过的impulse 和freqs 函数。
例6-2 已知系统函数为
32
1
221
s s s +++H(s)=
试画出其零极点分布图,求系统的单位冲激响应h(t)和频率
响应H ω(j ),并判断系统是否稳定。
解:其MATLAB 程序如下: num=[1]; den=[1,2,2,1]; sys=tf(num,den); figure(1);pzmap(sys); t=0:0.02:10;
h=impulse(num,den,t); figure(2);plot(t,h) title('Impulse Response') [H,w]=freqs(num,den); figure(3);plot(w,abs(H)) xlabel('\omega')
title('Magnitude Response')
3.用MATLAB 进行Laplace 正、反变换
MATLAB 的符号数学工具箱提供了计算Laplace 正、反变换的函数Laplace 和ilaplace,其调用格式为
()
()
F laplace f f ilaplace F ==
上述两式右端的f 和F 分别为时域表示式和s 域表示式的符号表示,可以应用函数sym 实现,其调用格式为
S=sym(A)
式中,A 为待分析表示式的字符串,S 为符号数字或变量。 例6-3 试分别用Laplace 和ilaplace 函数求 (1)()sin()()t f t e at u t -=的Laplace 变换;
(2)2
2()1
s F s s =+的
Laplace 反变换。
解:(1)其程序为 f=sym('exp(-t)*sin(a*t)'); F=laplace(f) 或 syms a t
F=laplace(exp(-t)*sin(a*t)) (2)其程序为 F=sym('s^2/(s^2+1)'); ft=ilaplace(F) 或 syms s
ft= ilaplace(s^2/(s^2+1)) 4.离散系统零极点图
离散系统可以用下述差分方程描述:
∑∑==-=-M
m m
N
i i m k f b
i k y a 0
)()(
Z
变换后可得系统函数:N
N M
M z a z a a z b z b b z F z Y z H ----++++++=
=......)()()(110110
用MATLAB 提供的root 函数可分别求零点和极点,调用格式是
p=[a0,a1…an],q=[b0,b1…bm,0,0…0], 补0使二者维数一样。画零极点图的方法有多种,可以用MATLAB 函数[z,p,k]=tf2zp(b,a)和zplane(q,p),也可用plot 命令自编一函数ljdt.m,画图时调用。 function ljdt(A,B)
% The function to draw the pole-zero diagram for discrete system p=roots(A); %求系统极点
q=roots(B); %求系统零点 p=p';
%将极点列向量转
置为行向量 q=q'; %将零点列向量转置
为行向量
x=max(abs([p q 1])); %确定纵坐标范围
x=x+0.1; y=x ; %确定横坐标范围
clf