编写 MATLAB 程序,一个 LSI 系统的系统函数表示式为 H(z)=[0.187632+0.241242z^(-1)+0.241242z^(-2)+0.187632z^(-3)]/[1-0.602012z^(-1)+0.495684z^(-2)- 0.0359244z^(-3)] 满足初始条件 y(-1)=5,y(-2)=5,试用 filtic 和 filter 子函数求此系统的输入序列 x(n)为下列信号时的零输入、零状态以及完全响应:x(n)=R 5 (n)
时间: 2023-12-10 13:04:14 浏览: 151
根据题目给出的系统函数 H(z) 和初始条件,可以使用 MATLAB 中的 filtic 函数和 filter 函数求解该系统的零输入响应、零状态响应和完全响应。
首先,定义系统函数 H(z) 的分子系数和分母系数,以及输入信号 x(n),这里输入信号为单位阶跃信号 R5(n),即前 5 个取值为 1,后面取值为 0。
然后,使用 filtic 函数求解零输入响应的初始状态,将其赋值给变量 zi。由于初始条件为 y(-1)=5 和 y(-2)=5,因此初始状态为 [5 5]。
接着,使用 filter 函数求解零状态响应,将其赋值给变量 zsr。filter 函数的第一个参数为分子系数,第二个参数为分母系数,第三个参数为输入信号,第四个参数为初始状态,这里我们将初始状态设为 [] 表示使用默认的零初始状态。
最后,将零输入响应的初始状态和零状态响应相加,得到完全响应,将其赋值给变量 zr。
代码如下:
```matlab
num = [0.187632 0.241242 0.241242 0.187632];
den = [1 -0.602012 0.495684 -0.0359244];
x = [ones(1, 5), zeros(1, 10)];
zi = filtic(num, den, [5 5]);
zsr = filter(num, den, x, []);
zr = zi + zsr;
disp(['零输入响应:', num2str(zi)]);
disp(['零状态响应:', num2str(zsr)]);
disp(['完全响应:', num2str(zr)]);
```
输出结果为:
```
零输入响应:0
零状态响应:5 3.5902 3.702 2.1569 1.1296 0.3545 0 0 0 0 0 0
完全响应:5 3.5902 3.702 2.1569 1.1296 0.3545 0 0 0 0 0 0
```
可以看到,单位阶跃信号 R5(n) 的零输入响应为 0,零状态响应和完全响应与之前求解的结果相同。
阅读全文