信号与系统复频域分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 为零。

例7-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)可展开为 210.536()13F s s s s --=++++所以,F(s)的反变换为 32

11()()326t 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 函数。例7-2 已知系统函数为 321221s 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 为符号数字或变量。例7-3 试分别用Laplace 和ilaplace 函数求(1)的Laplace 变换;()sin()()t

f t e at u t -=(2)的Laplace 反变换。22()1s F s s =+解:(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 00)

()(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

hold on

axis([-x x -y y])

%确定坐标轴显示范围w=0:pi/300:2*pi ;

t=exp(i*w);

plot(t)

%画单位园axis('square')

plot([-x x],[0 0])

%画横坐标轴plot([0 0],[-y y])%画纵坐标轴

text(0.1,x,'jIm[z]')

text(y,1/10,'Re[z]')

plot(real(p),imag(p),'x')%画极点

plot(real(q),imag(q),'o')%画零点

title('pole-zero diagram for discrete system')%标注标题

hold off

相关文档
最新文档