实验七 由系统函数零、极点分布决定时域、频域特性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七由系统函数零、极点分布决定时
域、频域特性
一、实验目的
用MATLAB模拟系统函数零、极点分布决定时域、频域特性的过程
二、实验原理
计算零、极点可以用roots函数,若参数为传统函数H(s)的分子多项式系数b,则得到零点;若为分母多项式系数a,则得到极点。

MATLAB还提供了zero(sys)和pole(sys)函数直接计算零、极点,其中sys表示系统传递函数。

另外,【p,z】=pzmap(sys)函数也具有计算极点p和零点z的功能。

不带返回值的pzmap(sys)则绘制出系统的零、极点分布图。

零极点和传递函数的多项式系数一样,可以作为LTI系统的描述方法。

MATLAB提供了(b,a)=zp2tf(z,p,k)和【z,p,k】=tf2zp(b,a)两个函数用于在上述两种描述方法之间进行转换,其中k为用零、极点表示传函数时的系统增益。

MATLAB提供了freqs(b,a)函数用来绘制系统的频率响应,包括幅度响应和相位响应,其中b和a分别对应传递函数的分子和分母多项式系数。

如果将调用方式改为H=freqs(b,a,omega),则不绘图输出,而是计算抽样点omega 处的频响并传递到H中。

三、实验过程
1.当F(s)极点(一阶)落于图所示s屏幕图中的各方框所处位置时,画出对应的f(t)波形填入方框中。

解:clear all,
t = [0:.1:40]';figure, id = 1;
for omega = .5:-.25:0
for sigma = -.06:.03:.06
p = sigma + j*omega;
if omega ~= 0
p = [p;p'];
end
[b a] = zp2tf([],p,1);
subplot(3,5,id);
impulse(b,a,t);
set(gca,'YLim',[-20,20]);
end
end
输出结果如下图所示,可见随着极点从虚轴左侧移动到右侧,其冲激响应有衰减变为发散;随着极点由实轴向上、下两侧移动,冲激响应由单调变化
转为振荡变化,且振荡周期逐渐减小。

MATLAB知识点----虚数单位i,j以及常量恢复
和数学公式中经常以i、j作为下标一样,包括Fortran和C语言在内的打部分机器语言教科书都习惯的把这两个字符作为循环变量使用,但在MATLAB中i和j被默认为定义为表示
虚数单位的常量。

虽然用户还可以将其自定义成任意类型变量或者数据结构,但这样的很容易带来混乱。

请看下面的命令和输出:
Clear all
a=1+2*i
a=
1.0000+
2.0000i
i=1;
b=1+2*i
b=
3
Sqrt(-1)
ans=
0+1.0000i
C=1+2i
C=
1.0000+
2.0000i
可见MATLAB除了把i定义为表示虚数单位的数值,在解释表达式时还将其理解为表示虚数单位的符号,所以把i和j被用户定义使用并不影响复数的表达。

但为了避免混淆,还是建议调整自己的编程习惯,不再使用i和j作为循环变量。

MATLAB提供了freqs(b,a)函数用来绘制系统的频率响应,包括幅度响应和相位响应,其中b和a分别对应传递函数的分子和分母多项式系数。

如果将调用方式改为H=freqs(b,a,omega),则不绘图输出,而是计算抽样点omega处得频响并传递到H中。

2.若H(s)的零极点分布如图,试讨论它们分别是哪种滤波网络(低通、高通、带通、带阻)。

解:clear all
data = struct('title',{'(a)','(b)','(c)','(d)',...
'(e)','(f)','(g)','(h)'},'zeros',{[],[0],[0;0],...
[-0.5],[0],[1.2j;-1.2j],[0;0],[1.2j;-1.2j]},...
'poles',{[-2;-1],[-2;-1],[-2;-1],[-2;-1],...
[-1+j;-1-j],[-1+j;-1-j],[-1+j;-1-j],[j;-j]});
omega = [0.01:0.01:6]';
figure;
for id = 1:8
[b,a] = zp2tf(data(id).zeros,data(id).poles,1);
H = freqs(b,a,omega);
subplot(4,2,id);
plot(omega,abs(H));
set(gca,'YScale','log','FontSize',16);
title(data(id).title);
xlabel('\omega');
ylabel('H(\omega');
end
输出结果如下所示,可见八个系统分别是:低通、带通、高通、带通、带通、带阻、高通、和带通-带阻。

相关文档
最新文档