MATLAB——将直接型转化为并联型和级联型

题目1(IIR):
已知一个系统的传递函数为:
H ( z ) = 8 − 4 z − 1 + 11 z − 2 − 2 z − 3 1 − 1.25 z − 1 + 0.75 z − 2 − 0.125 z − 3 H(z)=\frac{8-4z^{-1}+11z^{-2}-2z^{-3}}{1-1.25z^{-1}+0.75z^{-2}-0.125z^{-3}} Hz=11.25z1+0.75z20.125z384z1+11z22z3

将其由直接型转换为级联型、并联型。信号流图如下图所示。
在这里插入图片描述
我们先来认识MATLAB自带的两个函数。

residuez
residuez 函数用于计算有理多项式函数在复平面内的极点和残差。其输入参数为分子多项式的系数向量 b 和分母多项式的系数向量 a,输出参数包括极点向量 p、残差向量 r 和常数项 k。
tf2sos
tf2sos 函数则将有理分式函数的分子和分母多项式转换为一组二阶段的、单精度二进制浮点数实现的二阶IIR滤波器系数。tf2sos 的输入参数是分子多项式的系数向量 b 和分母多项式的系数向量 a,输出参数是用于实现滤波器的二阶段滤波器系数 sos 和全局增益 g。

在实际应用中,tf2sos 函数通常用于将高阶滤波器分解为多个二阶IIR滤波器级联的形式,以便更容易实现和分析。而 residuez 函数则常用于计算一些特殊类型的系统的响应,如倒数函数、正切函数等。

代码

b=[8,-4,11,-2];
a=[1,-1.25,0.75,-0.125];
[r,p,c]=residuez(b,a)
[sos,g]=tf2sos(b,a)

部分分式,并联型
在这里插入图片描述
H ( z ) = − 8 − 12 i 1 − ( 0.5 + 0.5 i ) z − 1 + − 8 + 12 i 1 − ( 0.5 − 0.5 i ) z − 1 + 8 1 − 0.25 z − 1 + 16 H(z)=\frac{-8-12i}{1-(0.5+0.5i)z^{-1}}+\frac{-8+12i}{1-(0.5-0.5i)z^{-1}}+\frac{8}{1-0.25z^{-1}}+16 Hz=1(0.5+0.5i)z1812i+1(0.50.5i)z18+12i+10.25z18+16

相乘,级联型
在这里插入图片描述
H ( z ) = 8 ∗ 1 − 0.19 z − 1 1 − 0.25 z − 1 ∗ 1 − 0.31 z − 1 + 1.3161 z − 2 1 − z − 1 + 0.5 z − 2 H(z)=8*\frac{1-0.19z^{-1}}{1-0.25z^{-1}}*\frac{1-0.31z^{-1}+1.3161z^{-2}}{1-z^{-1}+0.5z^{-2}} Hz=810.25z110.19z11z1+0.5z210.31z1+1.3161z2

题目2(FIR):
横截型与级联型之间的转换
已知一个FIR系统的传递函数为
H ( z ) = 2 + 0.9 z − 1 + 1.55 z − 2 + 2.375 z − 3 H(z)=2+0.9z^{-1}+1.55z^{-2}+2.375z^{-3} Hz=2+0.9z1+1.55z2+2.375z3
将其从横截型转换为级联型。信号流图如下所示。
在这里插入图片描述
程序

b=[2,0.9,1.55,2.375];
a=[1];
[sos,g]=tf2sos(b,a)

运行结果:
在这里插入图片描述
H ( z ) = 2 ( 1 + 0.95 z − 1 ) ( 1 − 0.5 z − 1 + 1.25 z − 1 ) H(z)=2(1+0.95z^{-1})(1-0.5z^{-1}+1.25z^{-1}) Hz=2(1+0.95z1)(10.5z1+1.25z1)

猜你喜欢

转载自blog.csdn.net/m0_46155417/article/details/129462898