题目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}} H(z)=1−1.25z−1+0.75z−2−0.125z−38−4z−1+11z−2−2z−3
将其由直接型转换为级联型、并联型。信号流图如下图所示。
我们先来认识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 H(z)=1−(0.5+0.5i)z−1−8−12i+1−(0.5−0.5i)z−1−8+12i+1−0.25z−18+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}} H(z)=8∗1−0.25z−11−0.19z−1∗1−z−1+0.5z−21−0.31z−1+1.3161z−2
题目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} H(z)=2+0.9z−1+1.55z−2+2.375z−3
将其从横截型转换为级联型。信号流图如下所示。
程序
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}) H(z)=2(1+0.95z−1)(1−0.5z−1+1.25z−1)