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

幕布斯7119047
TA贡献1794条经验 获得超8个赞
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)

一只斗牛犬
TA贡献1784条经验 获得超2个赞
先从简单的说起:
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的帮助中说的比较详细,你可以自己看一下
添加回答
举报
0/150
提交
取消