我是靠谱客的博主 冷傲火车,最近开发中收集的这篇文章主要介绍matlab零极点图程序,Matlab绘制数字滤波器零极点图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本人找到一个绘制零极点图的程序(如下),但是实际调用中发现老提示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绘制数字滤波器零极点图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部