西工大信号系统上机实验二

上机实验二

1)    验证性实验

(1)求系统的冲激响应和阶跃响应

b=[3 9];

a=[1 6 8];

sys=tf(b,a);

t=0:0.1:10;

y1=impulse(sys,t);

subplot(2,1,1);

plot(t,y1);

title('单位冲激响应');

y2=step(sys,t);

subplot(2,1,2);

plot(t,y2);

title('单位阶跃响应');

(2) 求系统的全响应

b=[1];

a=[1 0 1];

sys=tf(b,a);

t=0:0.1:10;x=cos(t);

y1=lsim(sys,x,t);

subplot(2,1,1);

plot(t,y1);

title('零状态响应');

[A B C D]=tf2ss(b,a);

sys2=ss(A,B,C,D);

zi=[-1 0];y2=lsim(sys2,x,t,zi);

subplot(2,1,2);

plot(t,y2);

title('系统的全响应');

(3)已知某系统激励为f1=sin(t)U(t),单位冲激响应h(t)=texp(-2t)U(t),求系统零状态响应数学表达式

clear all;

T=0.1;

t=0:T:10;f=3.*t.*sin(t);

h=t.*exp(-2*t);

Lf=length(f);

Lh=length(h);

for k=1:Lf+Lh+1

   y(k)=0;

   for i=max(1,k-(Lh-1)):min(k,Lf)

      y(k)=y(k)+f(i)*h(k-i+1);

   end

   yzsappr(k)=T*y(k);

end

subplot(3,1,1);

plot(t,f);

subplot(3,1,2);

plot(t,h);

subplot(3,1,3);

plot(t,yzsappr(1:length(t)));

2)    程序设计实验

(1)计算系统在指数函数激励下的零状态响应

b=[1.65 -0.331 -576 90.6 19080];

a=[1 0.996 463 97.8 12131 8.11 0];

sys=tf(b,a);

t=0:0.01:10;

x=exp(-10*t);

y=lsim(sys,x,t);

plot(t,y);

title('零状态响应');

(2)计算系统在冲激、阶跃、斜坡、和正弦激励下的零状态响应

b=[-0.475 -0.248 -0.1189 -0.0564];

a=[1 0.6363 0.9396 0.5123 0.0037];

sys=tf(b,a);

t=0:0.001:10;

x1=stepfun(t,-0.001)-stepfun(t,0.001);

x2=stepfun(t,0);

x3=t.*x2;

x4=sin(2*pi*t);

y1=lsim(sys,x1,t);subplot(2,2,1);plot(t,y1);title('冲激激励零状态响应');

y2=lsim(sys,x2,t);subplot(2,2,2);plot(t,y2);title('阶跃激励零状态响应');

y3=lsim(sys,x3,t);subplot(2,2,3);plot(t,y3);title('斜坡激励零状态响应');

y4=lsim(sys,x4,t);subplot(2,2,4);plot(t,y4);title('正弦激励零状态响应');

(3)求线性时不变系统的零输入响应

b=[1 3];a=[1 3 2];zi=[2 1];
sys=tf(b,a);

sys1=ss(sys);

t=0:0.01:5;

u=0*t;

y=lsim(sys1,u,t,zi);

plot(t,y);title('零输入响应');

 

第二篇:西工大信号系统上机实验八

1.       验证性实验

syms n z;

display('运行后命令窗口显示:');

f1=3^n;

f1_z=ztrans(f1)

f2=cos(2*n);

f2_z=ztrans(f2)

1.由Z反变换求系统零状态响应

syms k z;

f=(-1)^k;

f_z=ztrans(f);

h=1/3*(-1)^k+2/3*3^k;

h_z=ztrans(h);

yf_z=f_z*h_z;

display('运行后命令窗口显示:');

yf=iztrans(yf_z)

2.计算的反变换

num=[0 1];

den=poly([-5,1,1]);

display('运行后命令窗口显示:');

[r,p,k]=residuez(num,den)

所以反变换结果为

num=[1,0 ,1];

den=[1 ,0, -0.81];

printsys(fliplr(num),fliplr(den),'1/z')

subplot(2,2,1);

dimpulse(num,den,40);

subplot(2,2,2);

dstep(num,den,40);

 [h,w]=freqz(num,den,1000,'whole');

subplot(2,2,3);

plot(w/pi,abs(h));

subplot(2,2,4);plot(w/pi,angle(h));

b=[1 2 1];

a=[1 -0.5 -0.005 0.3];

subplot(3,1,1);

zplane(b,a);

num=[0 1 2 1];

den=[1 -0.5 -0.005 0.3];

h=impz(num,den);

subplot(3,1,2);

stem(h);

xlabel('k');

ylabel('h(k)');

[H,w]=freqz(num,den);

subplot(3,1,3);

plot(w/pi,abs(H));

xlabel('\omega');

ylabel('abs(H)');

num=[1 -0.1 -0.3 -0.3 -0.2];

den=[1 0.1 0.2 0.2 0.5];

[z,p,k]=tf2zp(num,den);

m=abs(p);

disp('零点');

disp(z);

disp('极点');

disp(p);

disp('增益系数');

disp(k);

sos=zp2sos(z,p,k);

disp('二阶节');

disp(real(sos));

zplane(num,den)

相关推荐