matlab中filter函数的用法

来源:百度知道 编辑:UC知道 时间:2024/05/31 00:39:11
离散系统的差分方程为
2y[k]-y[-1]-3y[k-2]=2x[k]-x[k-1]
x[k]=(0.5^k)u[k] y[-1]=1 y[-2]=3
用filter求零输入响应 零状态响应
我不知道filter函数是怎么用的,我的做法是:
k=-100:100;
>> uk=[zeros(1,100),ones(1,101)];
>> a=[1 -5 6];
>> b=[2 -1];
>> x=uk;
>> y=filter(b,a,x)

然后出现一堆数据,不知道是什么,高手指教一下这个函数应该怎么用,不会的别瞎说,别到处粘贴,高手指教后我再加100给你,万分感谢
上面a,b的值没有对上,这个无关紧要,主要是函数的用法

看楼主的意思主要是想实现差分方程
先从简单的说起:
filter([1,2],1,[1,2,3,4,5])
实现 y[k]=x[k]+2*x[k-1]
y[1]=x[1]+2*0 %(x[1]之前状态都用0)
=1
y[2]=x[2]+2*x[1]=2+2*1=4
...

然后说你感兴趣的filter(b,a,x)
这里a,b都是矢量
你提到输入[zeros(1,100),ones(1,101)]

差分方程 2y[k]-y[k-1]-3y[k-2]=2x[k]-x[k-1]
往里面代
[1]之前的状态都为0
y[1]=1/2*(2*x[1])=0
y[2]=1/2*(2*x[2]-x[1]+y[1])=0
........
显示的数为差分方程的输出y
这个函数和还有其它的用法,再次我就不说了
matlab的帮助中说的比较详细,你可以自己看一下

楼主,你能看懂他说的啥?

求解零状态响应的filter的调用形式为:y=filter(b,a,x);
其中 b , a 是差分方程系数矩阵,x 是输入序列(输入响应)。y是输出序列(零状态响应),由一个矩阵表示。可以用stem(k,y)画出零状态响应图.