| 查看: 224 | 回复: 0 | ||
[求助]
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('巴特沃斯极点分布'); 这是仿真程序 哪里有问题呢?各位大神帮帮忙 |
» 猜你喜欢
【长期招聘】复旦大学 AI 制药实验室 博士后招聘
已经有11人回复
2027博士申请-临床检验诊断学、病原生物学、微生物方向
已经有5人回复
各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧
已经有4人回复










回复此楼