1、时域响应
当一个系统是线性时不变系统时,则输出可由输入与单位冲激响应卷积来表示,连续LTI系统响应为:
![426741e020f9932ecad87f3340a83200.png](https://i-blog.csdnimg.cn/blog_migrate/c4a911524d577b34fe8e0fa25174e01d.png)
离散LTI系统响应为:
![7036f1f02a2f22f9b0499f4a3c85adc9.png](https://i-blog.csdnimg.cn/blog_migrate/7b7db96a3211e73c54b641b0425c6ea9.png)
然后MATLAB中提供了卷积函数conv。
![b1aff0f969734fc2bd3a3878809a0b8d.png](https://i-blog.csdnimg.cn/blog_migrate/036a587f3f9e6b6150f9050f965c7dfe.png)
clear
clc
dt=input('输入时间间隔 dt=');
x=2*ones(1,fix(10/dt));%fix函数为朝0方向最近值,取整数
h=exp(-0.5*[0:fix(10/dt)]*dt);
y=conv(x,h);
t=dt*([1:length(y)]-1);
plot(t,y)
grid
![e4cf7876549177165b4fa8179af667e1.png](https://i-blog.csdnimg.cn/blog_migrate/d5ea0b0b2404ae3a22a1b6624cf7b110.png)
![70dd9abd6af1f6d628d448d7760f830c.png](https://i-blog.csdnimg.cn/blog_migrate/06ea27a864475ff534cbd55442736585.png)
clear
clc
x=2*ones(1,10);
n=[0:14];
h=2.^n;
y=conv(x,h);
stem(y);
xlabel('n');
ylabel('y[n]');
![b8020e7feb0aa21dff5db08292b9f6a4.png](https://i-blog.csdnimg.cn/blog_migrate/ebffbc52ff8d528f9e425bb74e0795d1.png)
2、连续LTI系统的零输入响应函数initial
格式为:[y,t,x]=initial(a,b,c,d,x0)
计算出连续时间LTI系统由于初始状态x0所引起的零输入响应y,x为状态记录,t为仿真所用的时间间隔。
![03383d10ebc81bc9c7ef9ab5089e7aac.png](https://i-blog.csdnimg.cn/blog_migrate/1331825694ed6a7a0c2d9a04952ba665.png)
clear
clc
a=[-0.6 -0.8;0.9 0];
b=[1;0];
c=[2 7];
d=[0];
x0=[1;0];
t0=0:0.1:20;
initial(a,b,c,d,x0,t0);
grid
title('LTI系统零输入响应曲线');
![a118fd58a58526f287cc3b41c771f681.png](https://i-blog.csdnimg.cn/blog_migrate/024d27cd9ea5b656bc855b21467dcb52.png)
3、离散系统的零输入响应函数dinitial
格式为:[y,x,n]=dinitial(a,b,c,d,x0)
计算出离散时间LTI系统由于初始状态x0所引起的零输入响应y,x为状态响应,n为仿真所用的点数。
![f71dde996becd3c1fb19a487315b954b.png](https://i-blog.csdnimg.cn/blog_migrate/9f67a89ad0f7603c2052e9be9ad0bea2.png)
clear
clc
a=[-0.6 -0.8;0.9 0];
b=[1;0];
c=[2 7];
d=[0];
x0=[1;0];
dinitial(a,b,c,d,x0);
title('离散系统零输入响应曲线');
![8b5cf343565f494a95712a91b88900d4.png](https://i-blog.csdnimg.cn/blog_migrate/772ca90012edd46e128e53fa353d44e8.png)
4、滤波函数filter
从频域角度上来说,无论是连续或离散LTI系统,系统对于输入信号的响应,本质上对输入信号的频谱进行不同选择处理过程,这个过程称为滤波。
格式:y=filter(B,A,x)
对向量x中的数据进行滤波处理,即求解差分方程,产生输出序列向量y。
![daff7d8e4003db95b253352d401caa82.png](https://i-blog.csdnimg.cn/blog_migrate/75b8cb69e5a7484b4468e347788bf0a8.png)
clear
clc
B=1;
A=[1,-0.5];
n=0:31;
x=0.8.^n;
y=filter(B,A,x);
subplot(121);stem(x);
subplot(122);stem(y);
![e57eefe7fe4a878ff19d7a9d9232ab8f.png](https://i-blog.csdnimg.cn/blog_migrate/112eeadad14bb71f924c94acf957c8b6.png)