matlab计算零极点分布图

最近看书过程中看到一个matlab内容和大家分享分享

 

通过编程来计算单位冲击响应,单位阶跃y(t)和频率响应H(jw)

程序如下

clc%清空命令行
clear%从工作区中删除项目、释放系统内存
clf%清空当前图窗窗口
num=[1];
den=[1 2 2 1];
sys=tf(num,den);%构成传递函数
poles=roots(den);%求极点
subplot(211);%图1
pzmap(sys);%零极点分布图显示
[r,p,k]=residue(num,den)%实现部分分式展开的
t=0:0.02:10;
h1=impulse(num,den,t);%单位冲击响应
subplot(222)
plot(t,h1,'linewidth',4)
title('冲击响应','fontsize',16)
xlabel('时间\t','fontsize',16)
h2=step(num,den,t);%单位阶跃响应
subplot(223)
plot(t,h2,'linewidth',4)
title('阶跃响应','fontsize',16)
xlabel('时间\t','fontsize',16)
[H,w]=freqs(num,den);
subplot(224)
plot(w,abs(H),'linewidth',4)
xlabel('频率\omega','fontsize',16)
title('幅频特性','fontsize',16)
ylabel('幅值H(jw)','fontsize',16)

2、零极点分布图

猜你喜欢

转载自blog.csdn.net/myjy1992/article/details/101291567