猿问

以下内容是关于在matlab中filter函数的用法,麻烦大佬帮忙看看~

离散系统的差分方程为
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的值没有对上,这个无关紧要,主要是函数的用法

慕哥6287543
浏览 530回答 2
2回答

幕布斯7119047

conv是卷积,比如说conv(a,b)就是说a卷积b;filter是设计滤波器的一种函数,y=filter(b,a,x)表示的是y(n)=b(1)*x(n)+b(2)*x(n-1)+...+b(nb+1)*x(n-nb)-a(2)*y(n-1)-...-a(na+1)*y(n-na) 

一只斗牛犬

先从简单的说起: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)=1y[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]之前的状态都为0y[1]=1/2*(2*x[1])=0y[2]=1/2*(2*x[2]-x[1]+y[1])=0........显示的数为差分方程的输出y这个函数和还有其它的用法,再次我就不说了matlab的帮助中说的比较详细,你可以自己看一下
随时随地看视频慕课网APP

相关分类

Python
Java
我要回答