ÀëÉ¢LSIϵͳ·ÖÎö ÏÂÔØ±¾ÎÄ

subplot(3,1,1);stem(n,x);axis([-10 20 0 2]);title('Input sequence'); ylabel('x[n]');

subplot(3,1,2);stem(n,h);axis([-10 20 0 6]);title('Inpulse Response'); ylabel('h[n+5]'); %output response [y2,ny]=conv_m(x,n,h,n);

subplot(3,1,3);stem(ny,y2);title('Output Sequence');xlabel('n'); ylabel('y_2[n]'); stepseq.mµÄÔ´³ÌÐòÈçÏ£º

function [x,n]=stepseq(n0,n1,n2); if nargin ~=3

disp('Usage:Y=stepseq(n0,n1,n2)'); elseif((n0n2)|(n1>n2))

error('arguments must satisfy n1<=n0<=2') end n=[n1:n2]; x=[(n-n0)>=0];

conv_m.mµÄÔ´³ÌÐòÈçÏ£º

function[y,cy]=conv_m(x,nx,h,nh) if nargin~=4

disp('Usage:Y=conv_m(x,nx,h,nh)'); return; end;

nyb=nx(1)+nh(1);

nye=nx(length(x))+nh(length(x)); ny=[nyb:nye]; y=conv(x,h);

3.Éèh[n]?(0.9)nu[n],ÊäÈëx[n]?u[n]?u[n?10]£¬ÇóϵͳÊä³öy[n]?x[n]*h[n]:

n=-5:50;

u1=stepseq(0,-5,50);u2=stepseq(10,-5,50);%u1=u[n];u2=u[n-10] %input x[n] x=u1-u2;

%impluse response h[n] h=((0.9).^n).*u1;

subplot(3,1,1);stem(n,x);axis([-5 20 0 2]);title('Input Sequence'); ylabel('x[n]');

subplot(3,1,2);stem(n,h);axis([-5 20 0 6]);title('Inpulse Response'); ylabel('h[n]'); %output response [y,ny]=conv_m(x,n,h,n);

subplot(3,1,3);stem(ny,y);title('Output Sequence');xlabel('n'); ylabel('y[n]');

stepseq.mµÄÔ´³ÌÐòÈçÏ£º

function [x,n]=stepseq(n0,n1,n2); if nargin ~=3

disp('Usage:Y=stepseq(n0,n1,n2)'); elseif((n0n2)|(n1>n2))

error('arguments must satisfy n1<=n0<=2') end n=[n1:n2]; x=[(n-n0)>=0];

conv_m.mµÄÔ´³ÌÐòÈçÏ£º

function[y,cy]=conv_m(x,nx,h,nh) if nargin~=4

disp('Usage:Y=conv_m(x,nx,h,nh)'); return; end;

nyb=nx(1)+nh(1);

nye=nx(length(x))+nh(length(x)); ny=[nyb:nye]; y=conv(x,h);

˼¿¼Ì⣺ÔÚ´ËÎÊÌâÖÐh[n]ΪÎÞÏÞ³¤ÐòÁУ¬ÔÚ¼ÆËã¾í»ýºÍʱӦÈçºÎ´¦Àí£¿ ½â£ºÈ¡¾¡¿ÉÄܶàµÄ°üº¬ÄÜÁ¿·Ö²¼¼¯ÖеľßÓдú±íÐԵĵã

4ijÀëɢʱ¼äÏßÐÔʱ²»±äϵͳµÄ²î·Ö·½³ÌΪ£ºy[n]?0.8[n?1]?x[n] a.¼ÆËãn?[?10:50]ʱµÄϵͳ³å¼¤ÏìÓ¦h[n] b.¼ÆËãn?[?10:50]ʱµÄϵͳ½×Ô¾ÏìÓ¦s[n]

a=[1,-0.8];b=1;n=[-10:50]; x=impseq(0,-10,50);

h=filter(b,a,x);%MATLAB¹ÌÓк¯Êýfilter±íʾϵͳ·½³Ìay=bx£»xÊdzå»÷Ðźţ¬Ôòh¾ÍÊdzå»÷ÏìÓ¦ subplot(2,1,1);stem(n,h);

title('Inpulse Response');xlabel('n');ylabel('h[n]'); x=stepseq(0,-10,50);

s=filter(b,a,x); %xÊǽ×Ô¾Ðźţ¬Ôòs¾ÍÊǽ×Ô¾ÏìÓ¦ subplot(2,1,2);stem(n,s);

title('Step Response');xlabel('n');ylabel('s[n]');

impseq.mµÄÔ´³ÌÐòÈçÏ£º

function[x,n]=impseq(n0,n1,n2)

%Generates x[n]=delta(n-n0)£»n1<=n<=n2,n1<=n0<=n2 %[x,n]=impseq(n0,n1,n2)£§)£» if nargin~=3

disp('Usage:Y=impseq(n0,n1,n2)'); return;

elseif((n0n2)|(n1>n2))

error('arguments must satisfy n1<=n0<=n2') end

n=[n1:n2]; x=[(n-n0)==0];

stepseq.mµÄÔ´³ÌÐòÈçÏ£º

function [x,n]=stepseq(n0,n1,n2); if nargin ~=3

disp('Usage:Y=stepseq(n0,n1,n2)'); elseif((n0n2)|(n1>n2))

error('arguments must satisfy n1<=n0<=2') end n=[n1:n2]; x=[(n-n0)>=0];