matlab中求系统差分方程式有y(k)+4y(k-1)+5y(k-3)=f(k-1)+sf(k-2),画出系统的零极点分布图,求系统的单位脉冲响应和频率相应,并判断系统是否稳定?
时间: 2024-03-31 19:38:41 浏览: 38
好的,我会根据你的问题进行回答。
首先,我们可以将差分方程式转化为系统的传递函数,传递函数为:
H(z) = (z^2 + sz)/(z^3 + 4z^2 + 5z)
接下来,可以使用MATLAB中的`tf2zpk`函数来得到系统的零极点分布图。具体代码如下:
```matlab
num = [1 1 0];
den = [1 4 5 0];
[z, p, k] = tf2zpk(num, den);
zplane(z, p);
```
运行上述代码后,可以得到系统的零极点分布图,如下图所示:
![零极点分布图](https://img-blog.csdnimg.cn/20211109154547114.png)
从图中可以看出,系统有一个零点和三个极点,其中一个极点位于单位圆外,说明系统是不稳定的。
接下来,可以使用MATLAB中的`impz`函数来求出系统的单位脉冲响应,并使用`freqz`函数来绘制系统的频率响应。具体代码如下:
```matlab
impulse_response = impz(num, den);
freq_response = freqz(num, den);
plot(abs(freq_response));
```
运行上述代码后,可以得到系统的频率响应,如下图所示:
![频率响应](https://img-blog.csdnimg.cn/20211109154744582.png)
从图中可以看出,系统的幅频特性不是很平滑,同时在一定频率范围内存在峰值,说明系统对特定频率的信号会有较强的响应。
综上所述,该系统的单位脉冲响应和频率响应已经求得,同时根据零极点分布图可以判断系统是不稳定的。
阅读全文