函数b,a = signal.sos2tf(sos)将H(z)=0.75*(1+C0.1z^(-1))/(1-0.6z^(-1) )(1-C*0.1z^(-1)+0.36z^(-2))/(1-0.7z^(-1)+0.49z^(-2) )转换为直接II型的表达式,c=4
时间: 2023-08-25 07:07:45 浏览: 169
根据题意,将H(z)展开得到:
H(z) = 0.75*(1 + 0.1C*z^(-1))/(1 - 0.6*z^(-1))*(1 - 0.1C*z^(-1) + 0.36*z^(-2))/(1 - 0.7*z^(-1) + 0.49*z^(-2))
将H(z)写成二阶段的形式,即:
H(z) = [(0.75*(1 + 0.1C*z^(-1)))/(1 - 0.6*z^(-1))] * [(1 - 0.1C*z^(-1) + 0.36*z^(-2))/(1 - 0.7*z^(-1) + 0.49*z^(-2))]
再将每个二阶段的传输函数转换为直接II型的差分方程:
H1(z) = (b1*z + b0)/(z + a1*z^(-1) + a0)
H2(z) = (b3*z + b2)/(z + a3*z^(-1) + a2)
其中,b1, b0, a1, a0, b3, b2, a3, a2 分别为每个二阶段的系数,可以通过以下代码计算得到:
```
import numpy as np
from scipy import signal
C = 4
sos = np.array([[1, 0.1*C, 1, 1, -0.6, 0], [1, -0.1*C, 0.36, 1, -0.7, 0.49]])
b1, b0, a1, a0, b3, b2, a3, a2 = signal.sos2tf(sos)
```
最终得到的直接II型差分方程为:
y(n) = b0*x(n) + b1*x(n-1) - a0*y(n-1) - a1*y(n-2)
y(n) = b2*x(n) + b3*x(n-1) - a2*y(n-1) - a3*y(n-2)
阅读全文