数字滤波器分析---零极点分析

数字滤波器分析---零极点分析

       在数字信号处理中有提到过极点主要影响频率响应的峰值,极点愈靠近单位圆,峰值愈尖锐,零点主要影响频率特性的谷值,零点愈靠近单位圆,谷值愈深

  • 1、零点控制幅频响应的峰谷,零点越接近于单位圆,峰谷值越小,当零点在单位圆上时,n对应点幅频特性值为零。
  • 2、极点控制幅频特性的峰值,极点越接近于单位圆,峰值越大,极点在单位圆上时,系统不稳定。
  • 3、在原点处的零极点不改变系统的幅频特性。

       零点减小系统阻尼,使峰值时间提前,超调量增大;极点增大系统阻尼,使峰值之间迟后,超调量减小,它们的作用,随着它们本身接近坐标原点的程度而增强。

zplane 函数绘制线性系统的极点和零点。

例如,在 -1/2 处为零且在 0.9e−j2π0.3 和 0.9ej2π0.3 处有一对复极点的简单滤波器为

zer = -0.5; 
pol = 0.9*exp(j*2*pi*[-0.3 0.3]');

要查看该滤波器的零极点图,您可以使用 zplane。当系统是零极点形式时,请提供列向量参数。

zplane(zer,pol)
Figure contains an axes object. The axes object with title Pole-Zero Plot, xlabel Real Part, ylabel Imaginary Part contains 3 objects of type line. One or more of the lines displays its values using only markers

要访问更多工具,请使用 fvtool。首先将极点和零点转换为传递函数形式,然后调用 fvtool

[b,a] = zp2tf(zer,pol,1);
fvtool(b,a)
Figure Figure 1: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains an object of type line.

点击极点/零点图工具栏按钮,从菜单中选择分析 > 极点/零点图,或键入以下代码查看图。

fvtool(b,a,'Analysis','polezero')
Figure Figure 2: Pole-Zero Plot contains an axes object. The axes object with title Pole-Zero Plot, xlabel Real Part, ylabel Imaginary Part contains 3 objects of type line. One or more of the lines displays its values using only markers

要对传递函数形式的系统使用 zplane,请提供行向量参数。

在本例中,zplane 使用 roots 函数求得分子和分母的根,并绘制所得的零点和极点。

zplane(b,a)
Figure contains an axes object. The axes object with title Pole-Zero Plot, xlabel Real Part, ylabel Imaginary Part contains 3 objects of type line. One or more of the lines displays its values using only markers

有关系统零极点和传递函数表示的详细信息,请参阅离散时间系统模型-CSDN博客

示例:

改变零极点的位置,观察阶跃响应。

% % ========================================================================== % % 
% % 设计一个截止频率为300Hz的6阶低通巴特沃斯滤波器,对于1000hz采样的数据,其对应于0.6π rad/sample。绘制其幅值和相位响应。用它来过滤1000个样本的随机信号。
% fc = 300; %截止频率为300Hz
% fs = 1000;%采样频率1000hz
% % 计算滤波器的分子分母系数.
% [b,a] = butter(6,fc/(fs/2));
% % 幅频响应
% freqz(b,a,[],fs)
% subplot(2,1,1)
% ylim([-100 20])
% dataIn = randn(1000,1);
% dataOut = filter(b,a,dataIn);
% t = (0:length(dataIn)-1)/fs;
% figure
% plot(t,dataIn)
% hold on
% plot(t,dataOut)
% legend('Input Data','Filtered Data')

% % ========================================================================== % % 
% 设计一个归一化截止频率为0.4π rad/sample的三阶巴特沃斯滤波器。找出滤波器的极点、零点和增益。
[b,a] = butter(3,.4);
[z,p,k] = tf2zpk(b,a);
% z=[-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i]
% p=[0.209428042240884 + 0.558199478050223i;0.209428042240884 - 0.558199478050223i;0.158384440324536 + 0.000000000000000i] 
% k=0.098531160923927
% 绘制极点和零点,以验证它们是否在预期的位置。(稳定值1.0,超调13.07%)
fvtool(b,a,'polezero')

% 第三个极点实部增大.(让极点远离虚轴)
z1 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i];
p1 = [0.209428042240884 + 0.558199478050223i;0.209428042240884 - 0.558199478050223i;0.358384440324536 + 0.000000000000000i];
[b1,a1] = zp2tf(z1,p1,k);
fvtool(b1,a1,'polezero')
% 极点离虚轴越远,幅值变大,超调减小,振荡减小.(稳定值1.31,超调5.68%)

% 第一二个极点实部增大.(让共轭极点远离虚轴)
z2 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i];
p2 = [0.409428042240884 + 0.558199478050223i;0.409428042240884 - 0.558199478050223i;0.158384440324536 + 0.000000000000000i];
[b2,a2] = zp2tf(z2,p2,k);
fvtool(b2,a2,'polezero')
% 极点离虚轴越远,幅值变大,超调变大.(稳定值1.42,超调19.5%)

% 第一二个极点虚部增大.(让共轭极点远离实轴)
z3 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i];
p3 = [0.209428042240884 + 0.858199478050223i;0.209428042240884 - 0.858199478050223i;0.158384440324536 + 0.000000000000000i];
[b3,a3] = zp2tf(z3,p3,k);
fvtool(b3,a3,'polezero')
% 幅值变小,超调变大,振荡越厉害.(稳定值0.687,超调33.71%)

% 第一二个极点实部减小.(让共轭极点极点靠近虚轴)
z4 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i];
p4 = [0.109428042240884 + 0.558199478050223i;0.109428042240884 - 0.558199478050223i;0.158384440324536 + 0.000000000000000i];
[b4,a4] = zp2tf(z4,p4,k);
fvtool(b4,a4,'polezero')
% 极点离虚轴越近,幅值变小,超调减小.(稳定值0.85,超调9.95%)

% 第三个极点实部减小.(让极点靠近虚轴)
z5 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i];
p5 = [0.209428042240884 + 0.558199478050223i;0.209428042240884 - 0.558199478050223i;0.058384440324536 + 0.000000000000000i];
[b5,a5] = zp2tf(z5,p5,k);
fvtool(b5,a5,'polezero')
% 极点离虚轴越近,幅值变小,超调变大.(稳定值0.89,超调16.06%)

% 第三个零点移到原点.()
z6 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-0.000006569518257 + 0.000000000000000i];
p6 = [0.209428042240884 + 0.558199478050223i;0.209428042240884 - 0.558199478050223i;0.158384440324536 + 0.000000000000000i];
[b6,a6] = zp2tf(z6,p6,k);
fvtool(b6,a6,'polezero')
% 幅值变小,超调变大.(稳定值0.50,超调14.39%)

% 增加一个靠近虚轴的极点.(极点靠近虚轴)
z7 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i];
p7 = [0.209428042240884 + 0.558199478050223i;0.209428042240884 - 0.558199478050223i;0.158384440324536 + 0.000000000000000i;0.078384440324536 + 0.000000000000000i];
[b7,a7] = zp2tf(z7,p7,k);
fvtool(b7,a7,'polezero')
% 增加一个靠近虚轴的极点,幅值变大,超调减小.(稳定值1.09,超调10.77%)

% 增加一个远离虚轴的极点.(极点远离虚轴)
z8 = [-0.999996715240871 + 0.000005689374168i;-0.999996715240871 - 0.000005689374168i;-1.000006569518257 + 0.000000000000000i];
p8 = [0.209428042240884 + 0.558199478050223i;0.209428042240884 - 0.558199478050223i;0.158384440324536 + 0.000000000000000i;0.288384440324536 + 0.000000000000000i];
[b8,a8] = zp2tf(z8,p8,k);
fvtool(b8,a8,'polezero')
% 增加一个远离虚轴的极点,幅值变大,超调减小.(稳定值1.40,超调6.43%)

结论:

% 原数据:(稳定值1.0,超调13.07%)

% % 极点离虚轴越远,幅值变大,超调减小,振荡减小.(稳定值1.31,超调5.68%)

% % 共轭极点离虚轴越远,幅值变大,超调变大,振荡变大.(稳定值1.42,超调19.5%)

% % 共轭极点远离实轴,幅值变小,超调变大,振荡越厉害.(稳定值0.687,超调33.71%)

% % 共轭极点极点离虚轴越近,幅值变小,超调减小.(稳定值0.85,超调9.95%)

% % 极点离虚轴越近,幅值变小,超调变大.(稳定值0.89,超调16.06%)

% % 零点移到原点.幅值变小,超调变大.(稳定值0.50,超调14.39%)

% % 增加一个靠近虚轴的极点,幅值变大,超调减小,振荡减小.(稳定值1.09,超调10.77%)

% % 增加一个远离虚轴的极点,幅值变大,超调减小,振荡减小.(稳定值1.40,超调6.43%)

下面这篇文章写得还可以,简单明了:

=============以下内容来自:https://zhuanlan.zhihu.com/p/11113131=============

古典控制理论(五)分析系统阶跃响应和零、极点的关系 - 知乎 (zhihu.com)

古典控制理论(五)分析系统阶跃响应和零、极点的关系

1 稳定系统[1]

  系统的所有闭环极点都具有负实部,所有的闭环极点都位于s平面的左半部分。那么随着时间的增长,响应中所有的指数项和阻尼正弦项都会趋于0,这样的系统是稳定的。
  稳态输出为

2 闭环零点

  闭环零点会影响留数的大小和正负,决定了各函数项在动态响应中占的“比重”,因此闭环零点会影响动态响应的形状。

3 闭环极点

  动态响应的类型取决于闭环极点。各函数项是按照指数规律衰减的,极点与虚轴的距离越远,其对应的响应分量衰减得越快,而且只对响应曲线的初始阶段产生影响。

4 零极点分布

(1)若一个闭环极点远离原点,则响应的比重较小(衰减很快)。

(2)若一个闭环极点接近一个闭环零点,而有远离其他极点和零点,则响应的比重较小(零极点相消)。

(3)若一个闭环极点远离零点,而接近原点或者其他极点,则响应的比重较大,起主导作用。

5 闭环主导极点

(1)在左半平面上,距离虚轴最近且附近没有其他的闭环极点和零点。

(2)极点实部长度与其他的极点实部长度相差5倍以上。

6 偶极子

  当一个极点和一个零点距离很近时,他们对应暂态分量的幅值很小,对响应的影响可忽略不计。

7 仿真示意图

(1)含有一对主导极点,距离虚轴较近时,欠阻尼,响应快,且有震荡

(2)极点距离虚轴较远时,响应速度快

(3)极点距离虚轴较近时,响应速度慢

(4)阻尼越小,响应速度越快,震荡越厉害

8 总结

  在分析系统阻尼比大小和是否震荡时,可以舍掉实数极点,只分析一对共轭极点的二阶系统。

参考

  1. ^李素玲,胡健,季画,等.自动控制理论[M].机械工业出版社:北京,2012:54-99.

=============以上内容来自:https://zhuanlan.zhihu.com/p/11113131=============

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值