使用matlab求H(z) = (b0 + b1z^(-1) + b2z^(-2) + b3z^(-3)) / (1 + a1z^(-1) + a2z^(-2) + a3z^(-3))的差分方程
时间: 2023-10-07 18:13:00 浏览: 109
可以通过多种方法求解H(z)的差分方程,其中一种比较简单的方法是使用部分分式分解和反变换。具体步骤如下:
1. 对于分母1 + a1z^(-1) + a2z^(-2) + a3z^(-3),先求出其根:
z1 = a1
z2,3 = (-a1 ± sqrt(a1^2 - 4a2)) / 2
z4,5 = (-a1 ± sqrt(a1^2 - 4a3)) / 2
2. 根据根的个数和性质,将H(z)分解成多个部分分式:
H(z) = [A/(1-z1z^(-1))] + [B/(1-z2z^(-1))] + [C/(1-z3z^(-1))] + [D/(1-z4z^(-1))] + [E/(1-z5z^(-1))]
其中A、B、C、D、E是待求系数。
3. 将每个部分分式展开,得到:
H(z) = [A/(1-z1z^(-1))] + [B/(1-z2z^(-1))] + [C/(1-z3z^(-1))] + [D/(1-z4z^(-1))] + [E/(1-z5z^(-1))]
= A[1 + z1^(-1)z^(-1) + z1^(-2)z^(-2) + ...] + B[1 + z2^(-1)z^(-1) + z2^(-2)z^(-2) + ...] +
C[1 + z3^(-1)z^(-1) + z3^(-2)z^(-2) + ...] + D[1 + z4^(-1)z^(-1) + z4^(-2)z^(-2) + ...] +
E[1 + z5^(-1)z^(-1) + z5^(-2)z^(-2) + ...]
4. 对于每一项,提取其系数,得到:
A = b0 + b1z1^(-1) + b2z1^(-2) + b3z1^(-3)
B = b0 + b1z2^(-1) + b2z2^(-2) + b3z2^(-3)
C = b0 + b1z3^(-1) + b2z3^(-2) + b3z3^(-3)
D = b0 + b1z4^(-1) + b2z4^(-2) + b3z4^(-3)
E = b0 + b1z5^(-1) + b2z5^(-2) + b3z5^(-3)
5. 将每个系数代回到部分分式展开式中,得到:
H(z) = [b0 + b1z1^(-1) + b2z1^(-2) + b3z1^(-3)] / [1 - z1z^(-1)] +
[b0 + b1z2^(-1) + b2z2^(-2) + b3z2^(-3)] / [1 - z2z^(-1)] +
[b0 + b1z3^(-1) + b2z3^(-2) + b3z3^(-3)] / [1 - z3z^(-1)] +
[b0 + b1z4^(-1) + b2z4^(-2) + b3z4^(-3)] / [1 - z4z^(-1)] +
[b0 + b1z5^(-1) + b2z5^(-2) + b3z5^(-3)] / [1 - z5z^(-1)]
6. 对于每一项,可以使用Z变换的反变换求得其差分方程,例如:
[b0 + b1z1^(-1) + b2z1^(-2) + b3z1^(-3)] / [1 - z1z^(-1)] = B(z) / A(z)
其中A(z) = 1 - z1z^(-1),B(z) = b0 + b1z1^(-1) + b2z1^(-2) + b3z1^(-3)
对A(z)做Z变换,得到:
A(z) = 1 - z1z^(-1)
= z^(-3) - z2z^(-4) - z3z^(-4) + z4z^(-5) + z5z^(-5)
对B(z)做Z变换,得到:
B(z) = b0 + b1z1^(-1) + b2z1^(-2) + b3z1^(-3)
= b0 + b1z^(-1) + b2z^(-2) + b3z^(-3) / z1^3
根据线性时不变系统的性质,可以将系统的差分方程表示为:
y(n) = b0x(n) + b1x(n-1) + b2x(n-2) + b3x(n-3) - a1y(n-1) - a2y(n-2) - a3y(n-3)
其中x(n)表示输入信号,y(n)表示输出信号,a1、a2、a3、b0、b1、b2、b3是待求系数。
将Z变换的结果反变换回时域,得到:
A(z)y(z) = B(z)x(z)
y(n) - z2y(n-1) - z3y(n-2) + z4y(n-3) + z5y(n-4) = b0x(n) + b1x(n-1) + b2x(n-2) + b3x(n-3)
这就是H(z)的差分方程。
阅读全文