信号与系统MATLAB实验课后习题答案.docx
《信号与系统MATLAB实验课后习题答案.docx》由会员分享,可在线阅读,更多相关《信号与系统MATLAB实验课后习题答案.docx(13页珍藏版)》请在冰豆网上搜索。
信号与系统MATLAB实验课后习题答案
第三章练习题
1、
a=[1,1,1];
b=[1,1];
sys=tf(b,a);
t=[0:
0.01:
10];
figure;
subplot(2,2,1);
step(sys);
subplot(2,2,2);
x_step=zeros(size(t));
x_step(t>0)=1;
x_step(t==0)=1/2;
lsim(sys,x_step,t);
subplot(2,2,3);
impulse(sys,t);
title('ImpulseResponse');
xlabel('Time(sec)');
ylabel('Amplitude');
subplot(2,2,4);
x_delta=zeros(size(t));
x_delta(t==0)=100;
[y1,t]=lsim(sys,x_delta,t);
y2=y1;
plot(t,y2);
title('ImpulseResponse');
xlabel('Time(sec)');
ylabel('Amplitude');
2、
函数int1如下:
function[F,tF]=int1(f,tf,a)
T=tf
(2)-tf
(1);
F=zeros(size(tf));
tF=zeros(size(tf));
tF=tf;
forn=1:
length(tf)-1;
F(n+1)=F(n)+T*f(n);
end
验证如下:
t=[-1:
0.01:
4];
e=zeros(size(t));
e=(t>-1/2&t<1);
[z,zz]=intl(e,t,-1);
figure;
plot(zz,z);
第四章练习题
1、
T1=1;
N1=10000;
t1=linspace(0,T1-T1/N1,N1)';
f1=1-2*t1;
OMG=32*pi;
K1=100;
omg=linspace(-OMG/2,OMG/2-OMG/K1,K1)';
X1=T1/N1*exp(-j*kron(omg,t1.'))*f1;
fs1=OMG/2/pi/K1*exp(j*kron(t1,omg.'))*X1;
T2=5;
N2=10000;
t2=linspace(0,T2-T2/N2,N2)';
fs2=0*t2;
f2=sawtooth(t2*2*pi,0);
X2=T2/N2*exp(-j*kron(omg,t2.'))*f2;fs2=fs2+OMG/2/pi/K1*exp(j*kron(t2,omg.'))*X2;
figure;
subplot(2,2,1);
plot(omg,abs(X1),'r');
xlabel('Frequency'),ylabel('Amplitude')
title('单个锯齿周期幅频特性曲线');
subplot(2,2,2);
plot(t1,fs1,'r');
xlabel('Time'),ylabel('Amplitude')
title('Functionafterrecovered');
subplot(2,2,3);
plot(omg,abs(X2),'r');
xlabel('Frequency'),ylabel('Amplitude')
title('五个锯齿周期幅频特性曲线');
subplot(2,2,4);
plot(t2,fs2,'r');
xlabel('Time'),ylabel('Functionafterrecovered')
title('Functionafterrecovered');
2、
fsana函数如下:
functionF=fsana(t,f,N);
omg1=2*pi/(max(t)-min(t));
k=[-N:
N]';
F=1/length(t)*exp(-j*kron(k*omg1,t.'))*f;
fssyn函数如下:
functionf=fssyn(F,t)
omg1=2*pi/(max(t)-min(t));
N=floor(length(F)/2);
k=[-N:
N];
f=exp(j*kron(t,k*omg1))*F;
验证如下:
clc
clear
closeall
T1=1;
N1=256;
t=linspace(0,T1-T1/N1,N1)';
f=1-2*t;
subplot(3,1,1);
plot(t,f);
title('验证原函数')
N=25;
F1=fsana(t,f,N);
subplot(3,1,2);
stem(abs(F1),'s');
title('前N项傅立叶级数系数幅度曲线')
f2=fssyn(F1,t);
subplot(3,1,3);
plot(t,f2);
xlabel('time[s]'),ylabel('Amplitude');
title('傅立叶逆变换后时域函数');
第五章练习题
1、
(a)Residue计算
a1=[1,5,6];
b1=[4,5];
[r1,p1,k1]=residue(b1,a1);
t=[0:
0.01:
10];
e1=zeros(size(t));
forn=1:
size(r1);
e1=e1+r1(n)*exp(p1(n)*t);
end;
figure;
subplot(1,2,1);
plot(t,e1);
title('residue计算');
xlabel('t/s');
ylabel('u/v');
lism仿真
sys1=tf([4,5],[1,5,6]);
t=[0:
0.01:
10];
delta=zeros(size(t));
delta(t==0)=100;
h1=lsim(sys1,delta,t);
subplot(1,2,2);
plot(t,h1);
title('lism仿真');
xlabel('t/s');
ylabel('u/v');
Residue计算和lism仿真结果相同
(b)Residue计算
t=[0,0.01,10];
delta=zeros(size(t));
delta(t==0)=100;
e2=sin(t);
figure;
subplot(2,1,1);
plot(t,e2);
title('residue计算');
xlabel('t/s');
ylabel('u/v');
lism仿真
sys1=tf([1,0,2],[1,0,1]);
t=[0:
0.01:
10];
delta=zeros(size(t));
delta(t==0)=100;
h2=lism(sys1,delta,t);
subplot(2,1,2);
plot(h,t2);
axis([0,10,-1,1]);
title('lism仿真');
xlabel('t/s');
ylabel('u/v');
Residue计算和lism仿真结果相同
2、
S=isstable(sys)函数:
Functions=isstable(sys);
X=ploe(sys);
S=1;
Forn=1:
Size(x)
Ifx(n)>0
S=0;break;
End;
End;
稳定系统:
Sys=tf(1,[1,2]);
S=isstable(sys);
S=
1
不稳定系统:
Sys=tf(1,[1,-2]);
S=isstable(sys);
S=
0
第七章练习题
1、
a=[1,0.5,-0.2,-0.1];
b=[1,-0.3];
n=[0:
10]';
[hi,t]=impz(b,a,n);
subplot(1,2,1);
stem(n,hi);
u=(n>=0);
hn=filter(b,a,u);
subplot(1,2,2);
stem(n,hn);
2、
n1=[0:
9]';
n2=[10:
19]';
x1=(n1>=0);
x2=-(n2>=10);
a1=[1,-0.2,-0.1];
a2=[1,-0.2,0.5];
b=[1,0.01];
[y1,wf1]=filter(b,a1,x1,[0,1]);
[y2,wf2]=filter(b,a2,x2,wf1);
stem(n1,y1);
holdon;
stem(n2,y2);