📄 pzplot.m
字号:
function pzplot(num,den)
%绘制系统函数的零极点图
%
%pzplot(num,den)
%num为系统函数分子多项式的系数向量
%den为系统函数分母多项式的系数向量
%
hold on
axis('square');
%
%绘制单位元
%
x=-1:0.01:1;
y=(1-x.^2).^0.5;
y1=-(1-x.^2).^0.5;
plot(x,y,'k',x,y1,'k');
%
%求取系统的零极点
%
Lnum=length(num);
Lden=length(den);
if(Lnum>1)
z=roots(num);
%roots多项式根
else
z=0;
end
if(Lden>1)
p=roots(den);
else
p=0;
end
%
%判断绘图范围
%
if(Lnum>1&Lden>1)
realmaxz=max(abs(real(z)));
imagmaxz=max(abs(imag(z)));
axismaxz=max(realmaxz,imagmaxz);
realmaxp=max(abs(real(p)));
imagmaxp=max(abs(imag(p)));
axismaxp=max(realmaxp,imagmaxp);
axismax=max(axismaxz,axismaxp);
elseif(Lnum>1)
realmaxz=max(abs(real(z)));
imagmaxz=max(abs(imag(z)));
axismax=max(realmaxz,imagmaxz);
else
realmaxp=max(abs(real(p)));
imagmaxp=max(abs(imag(p)));
axismax=max(realmaxp,imagmaxp);
end
%
%确定绘图范围,并绘制出轴线和边框线
%
axis([-axismax axismax -axismax axismax]);
%axis([xmin xmax ymin ymax])自定义图形坐标尺
plot([-axismax axismax],[0 0],'k');
plot([0 0],[-axismax axismax],'k');
plot([-axismax axismax],[axismax axismax],'k');
plot([axismax axismax],[-axismax axismax],'k');
%
%绘制出零极点
%
Lz=length(z);
for i=1:Lz
plot(real(z(i)),imag(z(i)),'ko');
end
LP=length(p);
for j=1:LP
plot(real(p(j)),imag(p(j)),'kx');
end
title('The zeros-pole plot');
xlabel('Real');
ylabel('Imag');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -