脉冲响应不显著怎么办,脉冲响应不变法不适合
利用MATLAB中的系统建模工具,建立热风枪啁啾激励和输出数据的三阶模型,输出模型的离散系统传递函数:tf2。
基于线性调频信号激励的系统数据模型响应曲线
在MATLAB中显示tf2的数据。可以获得对应于离散时间系统函数的有理多项式的分子和分母的系数:
b=[0.0,0.000435,-0.00043]
a=[1.0,-2.911,2.823,-0.9124]
利用MATLAB中的step(tf2)可以得到系统的单位冲击响应,如下图所示,为稳定系统。
但如果使用上述系数A和B的值,直接调用python语音中的系统IIR滤波命令scipy.signal.lfilter来获得系统在单位阶跃信号下的响应,就会发现系统的输出会呈指数发散。
out=scipy.signal.lfilter(b,a,x)
在上面的命令中,x是一个常值为1的序列,表示系统的输入是单位阶跃信号。下图是系统的输出。
为什么同一个系统函数在MATLAB中使用step命令可以获得稳定的输出,而在python中使用lfilter得到的结果却是发散的?
一开始我很疑惑,后来我想,之所以会这样,是因为在MATLAB中,显示系统函数信息时,对于多项式系数显示的小数有效位数太少,导致系数出现微小误差,会使原本稳定的系统变得不稳定。
在MATLAB中,使用format long命令设置显示数字的有效位数增加。
用TF2。分子和TF2。显示tf2的分母。分子,tf2。系统函数的有理分式的分母系数分别为:
a=[
1.0000000000000000-0.91238554044 45608]b=[0 0 . 505065
-0.00042996460727815]利用以上高精度系数,利用Python中的lfilter命令得到系统的单位阶跃响应,是一个稳定的输出。如下图所示:
随着传递函数系数有效数的减少,相应的有理多项式系数发生微小变化,导致系统由原来的稳定变为不稳定。这种现象说明系统有靠近单位圆的极点,轻微的移动就会使这些极点从单位圆内侧移动到单位圆外侧,从而使系统不稳定。
2.在MATLAB中,使用iopzplot命令,可以绘制离散时间系统的零极点分布图。
8数字系统系数精度高时,有三个极点和两个零点,都位于单位圆内。
31零极点分布如下图所示。因为所有的零点和极点都位于单位圆内,所以这个离散时间系统是最小相位稳定系统。
37当局部放大接近(1,0)时,可以看到三个极点的分布,其中两个非常接近单位圆。
16
84当离散系统的传递函数系数的有效位数减小时,对应的极点会发生变化,特别是哪些靠近单位圆的两个极点可能会移出单位圆。
35b=[0.0,0.000435,-0.000429]
70a=[1.0,-2.910,2.823,-0.912]
3下图显示了只有四个有效数字系数时相应系统函数零极点的分布位置。原来两个单位圆内的极点已经移出了单位圆。此时系统是不稳定的,相应系统的输出会呈指数增长。
下图显示了不同有效数字下系统函数对应的零极点的位置变化。当有效数小于或等于4时,一对共轭极点移出单位圆,系统不再稳定。
下图显示了不同有效数字对应系统的单位脉冲响应。当有效数小于或等于4时,原来稳定的系统会变得发散。
-
2.这学期的最后几周快到了,这学期的信号与系统课程也进入了下半学期。下周,我们将开始解释变换域中线性时不变系统的分析。主要内容之一是利用系统函数分析系统的动态和稳态特性。本文中的数字滤波器零极点分析是这部分课程的具体应用。
到这个月底,自动化系的学生就有自己的学生日了。这个学生节的名字是“
07脉冲响应”,很适合自动化系的学科,不知道是谁的脑洞。
40
八
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。