24小时热门版块排行榜    

查看: 165  |  回复: 0

小桥流水ysj

新虫 (初入文坛)

[求助] matlab

为什么用matlab仿真得到的巴特沃斯圆上的极点只有一半  只分布在圆的左半部分   怎么把右的极点补上啊?
n=0:0.01:2;
for N=1:4
[z,p,k] =buttap ( N );        %设计butterworth滤波器
[b,a] = zp2tf(z,p,k);          %将零点、极点、增益的形式转换为传递函数
[H,w] =freqs(b,a,n);         %按n制定的频率点给出频率响应
magH2 = (abs(H)).^2;       %给出传递函数幅度平方
figure(1);
subplot(3,1,1);
plot (w, magH2);         %画幅频曲线图
hold on;
end
xlabel ('w/wc');
ylabel('|H(jw)|^2');
title('Butterworth');
text(1.8,0.28,'n=2');
text(1.6,0.15,'n=10');
text(1.4,0.13,'n=15');
text(1.2,0.18,'n=20');
grid on;
subplot(3,1,2),semilogx(w,angle(H))
grid , xlabel('w'),ylabel('angle(H)');
hold on;
[z,p,k]=butter(N,0.2);   
zr=roots(b);
pk=roots(a);
figure(1);
subplot(3,1,3);
zplane(zr,pk);
hold on;
xlabel('实部');ylabel('虚部');grid on;
title('巴特沃斯极点分布');
这是仿真程序    哪里有问题呢?各位大神帮帮忙
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小桥流水ysj 的主题更新
信息提示
请填处理意见