微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 如何应用zplane来plot零极点图

如何应用zplane来plot零极点图

时间:12-12 整理:3721RD 点击:
我想plot函数 h(z)=(1+z^(-1))/z^(-2), 我写了如下语句:
%%%%%%%%%% z-domain plot
%%%%%%%%%% h(f)=(1+z^(-1))/z^(-2)
clear all;
b=[1,1,0];
a=[0,0,1];
[h,w]=freqz(b,a);    %frequency responce
subplot(3,1,1);
zplane(b,a);         % zero-pole diagram
title('zero-pole diagram');
subplot(3,1,2);
plot(w/pi,abs(h));
grid;
title('amplitude responce')
ylabel('Amplitude');xlabel('w/pi');
subplot(3,1,3);
plot(w/pi,angle(h));
grid;
title('Phase responce')
ylabel('Phase');xlabel('w/pi');
问题如下:
系统提示我:Denominator must have non-zero leading coeffecient
1. 但我把b=[1,1]; a=[1]; 又不是我要的函数。请问怎么正确表达b,a呢?
2. 同理,怎么正确plot h(z)=(1-z^(-1))^2 / z^(-1) 呢,怎么正确表达a呢? 谢谢!

你这是一个非因果的系统函数,何必拿来调戏matlab

这是个FIR滤波器,只有零点没有极点。有个函数tf2zp你可以试试

那我再想想

Matlab本身就有分析这种线性系统的函数啊,不用自己写

h(f) = (1+z^(-1))/z^(-2)
     = z^2 * (1+z^(-1))
前面代表两个单位超前,后面代表FIR。你干嘛非得把超前单元扔到分母上去看呢

h(f) = (1+z^(-1))/z^(-2)  
      = z^2 * (1+z^(-1))
这压根是个低通滤波器好不好,不要再说是个带阻滤波器了,醒一醒。
你要看的是Nyquist Bandwidth内的频响,也就是0 ~ fs/2之间的值,fs/2 ~ fs是0 ~ fs/2之间的值的镜像!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top