MATLAB信号处理——信号与系统的分析基础(5)

1-6 LTI(线性时不变系统)的时域分析

       LTI具有4个基本性质:1.线性;2.时不变性;3.微分性;4.积分性,它可以用下面的线性常微分方程来描述。https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E6%97%B6%E4%B8%8D%E5%8F%98%E7%B3%BB%E7%BB%9F/2474061

a{_{n}}^{}y{_{}}^{(n)}(t)+a{_{n-1}}^{}y{_{}}^{(n-1)}(t)+\cdot \cdot \cdot +a{_{1}}^{}y{}'(t)+a{_{0}}^{}y(t)=b{_{m}}^{}f{_{}}^{(m)}(t)+\cdot \cdot \cdot +b{_{1}}^{}f{}'(t)+b{_{0}}^{}f(t)

       要求为n\geqm,系统的初始条件为y(0),y{}'(0),y{}''(0),\cdot \cdot \cdot y^{(n-1)}(0)

   1)零状态响应和零输入响应的求解分析

       零状态响应就是当前的输入值所产生的影响,而零输入响应则是历史输入产生的影响。可以联系电路中的零状态响应和零输入响应。

       一般情况下,遇到应该是全状态响应,零状态响应和零输入响应共同作用。对于这种情况,我们将LTI用常系数微分方程来描述,并使用MATLAB中的的dsolve函数来求解。用法为dsolve('eq1,eq2,···','cond1,cond2,···','v'),其中,微分和导数的输入是使用Dy,D2y,D3y,····Dny,cond表示初始条件,v为自变量。

例1-6-1)

syms x(t) y(t) t;
eqn=[diff(x)==y,diff(y)==-x,x(0)==-1,y(0)==2];
s=dsolve(eqn,t);
ezplot(s.x)
hold on;
ezplot(s.y)

   2)LTI数值求解

       在MATLAB中,我们可以使用lsim函数来求解LTI的初始条件 ,使用方法为y = lsim(sys,f,t),t为计算系统响应的采样点向量,f是系统输入信号向量,sys是系统模型,表示微分方程、差分方程、状态方程,sys = tf(b,a),b、a分别是微分方程的左右边系数向量,如b = [b4,b3,b2,b1,b0],值得注意的是0不能省略。

例1-6-2)系统用微分方程描述为y''(t)+2y'(t)+100y(t) = 10cos2πt,求系统的零状态响应

clear all
t = 0:0.01:5;
sys = tf([1],[1 2 200]);
f = 10*cos(2*pi*t);
y = lsim(sys,f,t);
plot(t,y);
ylabel('y(t)');
xlabel('t/s');
grid on;

   3)LTI冲激响应和阶跃响应分析

       MATALB提供了impulse函数和step函数来分别求解冲激响应和阶跃响应。

       y = impulse(sys,t) y = step(sys,t)

例1-6-3)绘制出冲激响应和阶跃响应

clear all
t = 0:0.01:4;
sys = tf([1,32],[1,4,64]);
h = impulse(sys,t);
g = step(sys,t);
subplot(211);
plot(t,h);
title('冲激响应');
grid on
subplot(212);
plot(t,g);
title('阶跃响应');
grid on

4)LTI卷积运算 

      连续信号的卷积运算定义为f(t) = f{_{1}}^{}(t)*f{_{2}}^{}(t) = \int_{}^{}f{_{1}}^{}(\tau )f{_{2}}^{}(t-\tau )d\tau,使用前面提到的conv函数即可。

例1-6-4)用数值计算f{_{1}}^{}(t) = u(t-1)+\sqrt{3}u(t+1)f{_{2}}^{}(t) = e^{-t}u(t)的卷积

clear all
t = -2:0.01:2;
f1 = heaviside(t-1)+sqrt(3)*heaviside(t+1);
f2 = exp(-1*t).*heaviside(t);
f = conv(f1,f2)*0.01;
subplot(221)
plot(t,f1);
grid on;
axis([-2 2 0 3])
title('f1')
subplot(222)
plot(t,f2);
grid on;
axis([-2 2 0 2])
title('f2')
subplot(212)
n =length(f);
t2 = (0:n-1)*0.01-2;
plot(t2,f);
grid on;
axis([-2 6 0 2.5])
title('f')

参考资料——《MATLAB信号处理》 沈再阳

                        matlab帮助文档

                        百度百科

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值