当前位置:首页 > 用Matlab实现差分方程
(1) 用Matlab实现差分方程
(i) y(n)=0.6y(n-1)- 0.08y(n-2)+x(n);
(ii) y(n)=0.7y(n-1)- 0.1y(n-2)+2x(n)-x(n-2);
程序如下:
B1=1; A1=[1,0.6,0.08]; xn=[1, zeros(1, 30)]; xi=filtic(B1,A1,xn);
hn1=filter(B1,A1,xn,xi); n=0:length(hn1)-1;
subplot(3,2,1);stem(n,hn1,'.') title('a');
xlabel('n');ylabel('h(n)') xn=ones(1,30);
sn1=filter(B1,A1,xn,xi); n=0:length(sn1)-1;
subplot(3,2,2);stem(n,sn1,'.') title('b');
xlabel('n');ylabel('s(n)') 系统2:
B2=[2,0,-1]; A2=[1, -0.7,0.1]; xn=[1, zeros(1, 30)]; xi=filtic(B2,A2,xn);
hn2=filter(B2,A2,xn,xi); n=0:length(hn1)-1;
subplot(3,2,3);stem(n,hn2,'.') title('c');
xlabel('n');ylabel('h(n)') xn=ones(1,30);
sn2=filter(B1,A1,xn,xi); n=0:length(sn1)-1;
subplot(3,2,2);stem(n,sn2,'.') title('d');
xlabel('n');ylabel('s(n)')
(2) 设3项滑动平均滤波器的输入信号为sin(n?/6)u(n),画出该滤波器的输入和输出
的前15个序列值。
程序如下:
B=[1,1,1]/3; A=1; n=0:30; xn=sin(n*pi/6); yn=filter(B,A,xn);
subplot(3,2,1);stem(n, xn,'.') ; ylabel('x(n)');
subplot(3,2,3);stem(n, yn,'.') ; xlabel('n');ylabel('y(n)');
共分享92篇相关文档