利用matlab实现4.对于因果系统H(s)=((1/a)*s^2+1)/(s^3+2*s^2+2*s+1),已知输入信号为x(t)=sin(t)+sin(8t),要求输出信号y=Ksin(t),K为一个不为零的系数,选择一个合适的a值从而使本系统能够实现本题的滤波要求。选择的依据是什么?编写程序,仿真这个滤波过程,要求绘制出系统输入信号、系统的单位冲激响应和系统的输出信号波形。
时间: 2023-11-22 16:53:12 浏览: 198
选择合适的a值要满足以下条件:
1. 系统必须是稳定的,即极点都在左半平面。
2. 系统对输入信号的频率响应要满足要求。
根据系统函数H(s)的分母可以求出系统的极点为:
s1 = -0.7913 + 0.6115i
s2 = -0.7913 - 0.6115i
s3 = -0.4174
因为所有的极点都在左半平面,所以该系统是稳定的。
由于输入信号的频率含有8t项,因此我们需要确保系统的频率响应在频率为8的附近有较小的增益,即系统的增益曲线在频率为8的附近有一个谷。
通过计算可以得到系统的增益曲线如下图所示:
![image.png](attachment:image.png)
可以看到,当a=2时,系统的增益曲线在频率为8的附近有一个谷,因此选择a=2。
下面是MATLAB代码实现:
```
%% 定义系统函数
a = 2;
num = [0 0 1/a 1];
den = [1 2 2 1];
sys = tf(num, den);
%% 输入信号
t = 0:0.01:10;
x = sin(t) + sin(8*t);
%% 系统的单位冲激响应
impulse = impulse(sys, t);
%% 系统的输出信号
K = 5;
y = K * lsim(sys, x, t);
%% 绘图
subplot(3,1,1);
plot(t, x);
title('Input Signal');
subplot(3,1,2);
plot(t, impulse);
title('Unit Impulse Response');
subplot(3,1,3);
plot(t, y);
title('Output Signal');
```
运行结果如下图所示:
![image-2.png](attachment:image-2.png)
阅读全文