概述
本人找到一个绘制零极点图的程序(如下),但是实际调用中发现老提示55行有错误,本人是个菜鸟,希望大虾给我帮助,另外如果可以的话希望各位给我提供点最小相位滤波器设计的资料
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);
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)));
axismaxz=max(realmaxz,imagmaxz);
else
realmaxp=max(abs(real(p)));
imagmaxp=max(abs(imag(p)));
axismaxp=max(realmaxp,imagmaxp);
end
%
%确定绘图范围,并绘制出轴线和边框线
%
axis([ -axismax axismax -axismax axismax]);
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');
[本帖最后由 mooni 于 2009-4-5 15:31 编辑]
最后
以上就是冷傲火车为你收集整理的matlab零极点图程序,Matlab绘制数字滤波器零极点图的全部内容,希望文章能够帮你解决matlab零极点图程序,Matlab绘制数字滤波器零极点图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复