MATLAB filtic函数使用详解

MATLAB filtic函数使用详解


提示:以下是本篇文章正文内容,转载请附上链接!

一、filtic函数输入输出说明

           \;\;\;\;\; filtic函数的调用格式为z = filtic(b,a,y,x)。其中
向量b是差分方程分子的系数;
向量a是差分方程分母的系数;
向量y是输出在0时刻之前的初始条件,即
y = [ y ( − 1 ) ,   y ( − 2 ) ,   y ( − 3 ) ,   . . .   ,   y ( − m ) ] y = [ y(-1),\ y(-2),\ y(-3),\ ...\ ,\ y(-m)] y=[y(1), y(2), y(3), ... , y(m)]
向量x是输出在0时刻之前的初始条件,即
x = [ x ( − 1 ) ,   x ( − 2 ) ,   x ( − 3 ) ,   . . .   ,   x ( − n ) ] x = [ x(-1),\ x(-2),\ x(-3),\ ...\ ,\ x(-n)] x=[x(1), x(2), x(3), ... , x(n)]
向量z是系统的初始状态,长度是向量x和向量y中长度的最大值。
           \;\;\;\;\; 如果系统是因果系统,则向量x显然为0,此时可省略x,直接用z = filtic(b,a,y)。

二、数值计算例子

           \;\;\;\;\; 假设现在有一个差分方程:
u ( n ) = − u ( n − 1 ) − 2 u ( n − 2 ) + v ( n ) + v ( n − 1 ) u(n) = -u(n-1)-2u(n-2)+v(n)+v(n-1) u(n)=u(n1)2u(n2)+v(n)+v(n1)
初始条件为:
u ( − 1 ) = u ( − 2 ) = v ( − 1 ) = 1 u(-1)=u(-2)=v(-1)=1 u(1)=u(2)=v(1)=1
假设激励全为1,现在求全响应,则我们可以写出下面这些式子:
{ u ( 0 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( 0 ) + v ( − 1 ) = − 1 u ( 1 ) = − u ( 0 ) − 2 u ( − 1 ) + v ( 1 ) + v ( 0 ) = 1 u ( 2 ) = − u ( 1 ) − 2 u ( 0 ) + v ( 2 ) + v ( 1 ) = 3 . . . \left\{ \begin{aligned} &u(0) = -u(-1)-2u(-2)+v(0)+v(-1) = -1&& \\ &u(1) = -u(0)-2u(-1)+v(1)+v(0) = 1 &&\\ &u(2) = -u(1)-2u(0)+v(2)+v(1) = 3 &&\\ &... &&\\ \end{aligned} \right. u(0)=u(1)2u(2)+v(0)+v(1)=1u(1)=u(0)2u(1)+v(1)+v(0)=1u(2)=u(1)2u(0)+v(2)+v(1)=3...
假设激励全为1,现在求零状态响应( u ( − 1 ) = u ( − 2 ) = v ( − 1 ) = 0 u(-1)=u(-2)=v(-1)=0 u(1)=u(2)=v(1)=0 ),则我们可以写出下面这些式子:
{ u ( 0 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( 0 ) + v ( − 1 ) = 1 u ( 1 ) = − u ( 0 ) − 2 u ( − 1 ) + v ( 1 ) + v ( 0 ) = 1 u ( 2 ) = − u ( 1 ) − 2 u ( 0 ) + v ( 2 ) + v ( 1 ) = − 1 . . . \left\{ \begin{aligned} &u(0) = -u(-1)-2u(-2)+v(0)+v(-1) = 1&& \\ &u(1) = -u(0)-2u(-1)+v(1)+v(0) = 1 &&\\ &u(2) = -u(1)-2u(0)+v(2)+v(1) = -1 &&\\ &... &&\\ \end{aligned} \right. u(0)=u(1)2u(2)+v(0)+v(1)=1u(1)=u(0)2u(1)+v(1)+v(0)=1u(2)=u(1)2u(0)+v(2)+v(1)=1...
filtic函数求得的初始状态为:
{ i n i t i a l ( 1 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( − 1 ) = − 2 i n i t i a l ( 2 ) = − 2 u ( − 1 ) = − 2 \left\{ \begin{aligned} &initial(1) = -u(-1)-2u(-2)+v(-1) = -2&& \\ &initial(2) = -2u(-1) = -2 &&\\ \end{aligned} \right. {initial(1)=u(1)2u(2)+v(1)=2initial(2)=2u(1)=2
u ( − 1 ) = u ( − 2 ) = v ( − 1 ) = 0 u(-1)=u(-2)=v(-1)=0 u(1)=u(2)=v(1)=0 的条件下,我们现在来求零输入响应(激励全为0,由起始状态带来的响应),则为:
{ u ( 0 ) = − u ( − 1 ) − 2 u ( − 2 ) + v ( 0 ) + v ( − 1 ) = i n i t i a l ( 1 ) + v ( 0 ) = − 2 u ( 1 ) = − u ( 0 ) − 2 u ( − 1 ) + v ( 1 ) + v ( 0 ) = i n i t i a l ( 2 ) − u ( 0 ) + v ( 1 ) + v ( 0 ) = − 2 − ( − 2 ) + 0 + 0 = 0 u ( 2 ) = − u ( 1 ) − 2 u ( 0 ) + v ( 2 ) + v ( 1 ) = − 0 − 2 ∗ ( − 2 ) + 0 + 0 = 4 . . . \left\{ \begin{aligned} &u(0) = -u(-1)-2u(-2)+v(0)+v(-1) = initial(1)+v(0) = -2&& \\ &u(1) = -u(0)-2u(-1)+v(1)+v(0) = initial(2)-u(0)+v(1)+v(0)=-2-(-2)+0+0 = 0 &&\\ &u(2) = -u(1)-2u(0)+v(2)+v(1) = -0-2*(-2)+0+0 = 4 &&\\ &... &&\\ \end{aligned} \right. u(0)=u(1)2u(2)+v(0)+v(1)=initial(1)+v(0)=2u(1)=u(0)2u(1)+v(1)+v(0)=initial(2)u(0)+v(1)+v(0)=2(2)+0+0=0u(2)=u(1)2u(0)+v(2)+v(1)=02(2)+0+0=4...
以上就是数值计算例子,另外显然有全响应 = 零输入响应+零状态响应,上面的计算就能看出来。

三、MATLAB验证

以上面数值计算例子的差分方程为例,假设激励为全1,则有:
在这里插入图片描述
显然有:全响应 = 零输入响应+零状态响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA与信号处理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值