matlab 已知y(K)+2y(k-1)+2y(k-2)=f(k)+f(k-1),y(-1)=1,y(-2)=2,f(k)=u(k),求系统的h(k)、g(k)、y(k)
时间: 2023-12-14 11:03:45 浏览: 115
首先,将系统的差分方程表示成矩阵形式:
```
| y(k) | | 2 2 1 | | y(k-1) |
| y(k-1) | = | 1 0 0 | * | y(k-2) |
| y(k-2) | | 0 1 0 | | f(k-1) |
```
将初始条件代入矩阵方程,得到:
```
| y(0) | | 2 2 1 |^0 * | 2 |
| y(-1)| = | 1 0 0 | | 1 |
| y(-2)| | 0 1 0 | | 1 |
```
解出矩阵的幂:
```
| y(k) | | 2 2 1 |^k | 2 | | 1 0 0 | | 2 |
| y(k-1) | = | 1 0 0 | | 1 | = | 2 1 0 | * | 1 |
| y(k-2) | | 0 1 0 | | f(k-1)| | 1 0 1 | | 1 |
```
因此,系统的传递函数为:
```
Y(z) 1
---- = ----- * (z^2 + 2z + 2)
F(z) z^2 + 1
```
可以看出,系统的零点为 z = -1- i 和 z = -1+ i,极点为 z = i 和 z = -i。
接下来,求解系统的 h(k) 和 g(k):
```
h(k) = [ z^k ] Y(z) = [ z^k ] (z^2 + 2z + 2) / (z^2 + 1) = { 2cos(kπ/2) k为偶数
{ 0 k为奇数
g(k) = [ z^k ] H(z) = [ z^k ] (z+1)^2 / (z^2 + 1) = { 1-(-1)^k k为偶数
{ 0 k为奇数
```
最后,求解 y(k):
```
y(k) = h(k) * f(k) + g(k) * u(k)
```
其中,u(k) = f(k)。
综上所述,系统的 h(k)、g(k) 和 y(k) 表示为:
```
h(k) = { 2cos(kπ/2) k为偶数
{ 0 k为奇数
g(k) = { 1-(-1)^k k为偶数
{ 0 k为奇数
y(k) = { 2cos(kπ/2)u(k) + (1-(-1)^k)u(k-1) k为偶数
{ 2cos(kπ/2)u(k) k为奇数
```
阅读全文