3.系统单位脉冲响应和阶跃响应的求解 一离散LTI系统的差分方程为y(n)-y(n-1)+0.9y(n-2)=x(n),(-1)=y(-2)=0,设x(n)的点数N=100。 利用matlab软件设计程序chlprog10.m,完成以下功能。 (1)利用filter 函数求此系统的单位脉冲响应h(n),并绘图。(2〉修改输入信号为x(n)=u(n),求系统的阶跃响应y;(n)[注: un)由函数u=ones(1,N)产生]。(3)对于(1)产生的h(n),利用卷积法求系统的阶跃响应yz(n)=u(n)*h(n)。问: y;(n)和yz(n)是否相同?
时间: 2023-11-18 10:04:54 浏览: 216
首先,可以将差分方程转化为系统函数的形式:
$$H(z) = \frac{Y(z)}{X(z)} = \frac{1}{1-z^{-1}+0.9z^{-2}}$$
然后,根据系统函数求出单位脉冲响应:
$$H(z) = \frac{1}{1-z^{-1}+0.9z^{-2}} = \frac{z^2}{z^2-z+0.9}$$
使用MATLAB中的filter函数可以得到系统的单位脉冲响应:
```matlab
b = [0 0 1]; % 分子系数
a = [1 -1 0.9]; % 分母系数
h = filter(b, a, [1 zeros(1, 99)]); % 单位脉冲响应
stem(h); % 绘制单位脉冲响应图形
```
得到的单位脉冲响应图形如下:
![unit_impulse_response](https://i.imgur.com/nG3QyjO.png)
接着,将输入信号修改为阶跃信号,即$x(n)=u(n)$,其中$u(n)$是单位阶跃信号,它可以用MATLAB中的ones函数生成:
```matlab
x = ones(1, 100); % 输入信号为单位阶跃信号
y = filter(b, a, x); % 系统的阶跃响应
stem(y); % 绘制阶跃响应图形
```
得到的阶跃响应图形如下:
![step_response_filter](https://i.imgur.com/0mLKnj2.png)
最后,使用卷积法求系统的阶跃响应,即将单位阶跃信号$x(n)$和单位脉冲响应$h(n)$进行卷积:
```matlab
yz = conv(x, h); % 卷积得到系统的阶跃响应
stem(yz); % 绘制阶跃响应图形
```
得到的阶跃响应图形如下:
![step_response_conv](https://i.imgur.com/5mkabZC.png)
可以看出,使用filter函数和卷积法得到的系统的阶跃响应是相同的。
阅读全文