信号与系统实验.docx
- 文档编号:2070404
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:51
- 大小:545.20KB
信号与系统实验.docx
《信号与系统实验.docx》由会员分享,可在线阅读,更多相关《信号与系统实验.docx(51页珍藏版)》请在冰点文库上搜索。
信号与系统实验
《信号与系统》实验报告
学院:
数理与信息工程学院
班级:
电子信息工程091班
姓名:
甘延磊
学号:
09220425
教师:
汪金山
实验3连续时间信号的时域基本运算
1、验证性实验(直接利用符号法进行编程)
1)相加
MATLAB程序:
clearall;
t=0:
0.0001:
3;b=3;t0=1;
u=stepfun(t,t0);n=length(t);
fori=1:
n
u(i)=b*u(i)*(t(i)-t0);
end
y=sin(2*pi*t);f=y+u;plot(t,f);
xlabel('时间(t)');ylabel('幅值f(t)');title('连续信号相加');
两个连续信号的相加结果如图3.1所示:
图3.1连个连续信号的相加
2)相乘
MATLAB程序:
clearall;t=0:
0.0001:
5;b=3;t0=1;u=stepfun(t,t0);n=length(t);
fori=1:
n;u(i)=b*u(i)*(t(i)-t0);end
y=sin(2*pi*t);f=y.*u;plot(t,f);
xlabel('时间(t)');ylabel('幅值f(t)');title('连续信号的相乘');
两个连续信号的相乘结果如图3.2所示:
图3.2两个连续信号的相乘结果
3)移位
MATLAB程序:
clearall;
t=0:
0.0001:
2;
y=sin(2*pi*(t));
yl=sin(2*pi*(t-0.2));
plot(t,y,'-',t,yl,'--');
ylabel('f(t)');xlabel('t');title('信号的移位');
信号及其移位结果如图3.3所示:
图3.3信号及其移位
4)翻转
MATLAB程序:
clearall;
t=0:
0.02:
1;t1=-1:
0.02:
0;
g1=3*t;g2=3*(-t1);
gridon;plot(t,g1,'--',t1,g2);
xlabel('t');ylabel('g(t)');
title('信号的反折');
信号及其翻转结果如图3.4所示:
图3.4信号及其翻转
5)尺度变换
MATLAB程序:
clearall;
t=0:
0.001:
1;a=2;
y=sin(2*pi*t);
y1=sin(2*a*pi*t);
subplot(211);plot(t,y);
ylabel('y(t)');xlabel('t');
title('尺度变换');
subplot(212);plot(t,y1);
ylabel('y1(t)');xlabel('t');
信号及其尺度变换结果如图3.5所示:
图3.5信号及其尺度变换
6)倒相
MATLAB程序:
clearall;
t=-1:
0.02:
1;g1=3.*t.*t;
g2=-3.*t.*t;gridon;plot(t,g1,'-',t,g2,'--');
xlabel('t');ylabel('g(t)');title('倒相');
信号及其倒相结果如图3.6所示:
图3.6信号及其倒相
7)微分
MATLAB程序:
clearall;
t=-1:
0.02:
1;g=t.*t;d=diff(g);
subplot(211);plot(t,g,'-');
xlabel('t');ylabel('g(t)');title('微分');subplot(212)
plot(d,'--');xlabel('t');ylabel('d(t)');
信号及其微分结果如图3.7所示:
图3.7信号及其微分
8)积分
MATLAB程序:
clearall;
t=-1:
0.2:
1;symst;g=t*t;d=int(g);
subplot(211);ezplot(g);
xlabel('t');ylabel('g(t)');title('积分');
subplot(212);
ezplot(d);xlabel('t');ylabel('d(t)');
信号及其积分结果如图3.8所示:
图3.8信号及其积分
9)综合
MATLAB程序:
symst
f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t-2))');
subplot(2,3,1);ezplot(f,[-3,3]);
y1=subs(f,t,t+2);subplot(2,3,2);ezplot(y1,[-5,1]);
y2=subs(f,t,t-2);subplot(2,3,3);ezplot(y2,[-1,5]);
y3=subs(f,t,-t);subplot(2,3,4);ezplot(y3,[-3,3]);
y4=subs(f,t,2*t);subplot(2,3,5);ezplot(y4,[-2,2]);
y5=-f;subplot(2,3,6);ezplot(y5,[-3,3]);
在运行以上程序前先建立Hesviside的M文件。
Heaviside的函数M文件如下:
functionf=Heaviside(t)
f=(t>0);
各个信号的波形如图3.9所示:
图3.9各个信号的波形
2、程序设计实验
1)MATLAB程序:
symst
f1=sym('(-t+4)*(Heaviside(t)-Heaviside(t-4))');
f2=sin(2*pi*t);
y1=subs(f1,t,-t);
f3=f1+y1;subplot(2,2,1);ezplot(f3,[-pi,pi]);title('f3');
f4=-f3;subplot(2,2,2);ezplot(f4,[-pi,pi]);title('f4');
f5=f2.*f3;subplot(2,2,3);ezplot(f5,[-pi,pi]);title('f5');
f6=f1.*f2;subplot(2,2,4);ezplot(f6,[-pi,pi]);title('f6');
在运行以上程序前先建立Hesviside的M文件。
Heaviside的函数M文件如下:
functionf=Heaviside(t)
f=(t>0);
各个信号的波形如图3.10所示:
图3.10各个信号的波形
2)MATLAB程序:
symst
f=sym('(2/3)*(-t+1)*(Heaviside(t+2)-Heaviside(t-1))');
f1=subs(f,t,-t);subplot(3,3,1);ezplot(f1,[-5,5]);title('f(-t)');
f2=subs(f,t,-t+2);subplot(3,3,2);ezplot(f2,[-5,5]);title('f(-t+2)');
f3=subs(f,t,-t-2);subplot(3,3,3);ezplot(f3,[-5,5]);title('f(-t-2)');
f4=subs(f,t,2*t);subplot(3,3,4);ezplot(f4,[-pi,pi]);title('f(2t)');
f5=subs(f,t,t/2);subplot(3,3,5);ezplot(f5,[-5,5]);title('f(1/2t)');
f6=subs(f,t,t-2);subplot(3,3,6);ezplot(f6,[-5,5]);title('f(t-2)');
f7=subs(f,t,1-t/2);subplot(3,3,7);ezplot(f7,[-8,8]);title('f(-0.5t+1)');
f8=sym('-2/3*(heaviside(t+6)-heaviside(t))');subplot(3,3,8);ezplot(f8,[-8,2]);title('微分');
f9=sym('2/3*t*(t-1)*(heaviside(t-1)-heaviside(t-4))');subplot(3,3,9);ezplot(f9,[0,5]);title('积分');
各个信号的波形如图3.11所示:
图3.11各个信号的波形
实验6连续LTI系统的时域分析
1、验证性实验
(1)MATLAB程序:
%求系统的冲击响应
b=[39];a=[168];
sys=tf(b,a);t=0:
0.1:
10;
y=impulse(sys,t);plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('单位冲激响应');
系统的冲击响应如图6.1所示:
图6.1系统的冲激响应曲线
Matlab程序:
%求系统的阶跃响应
b=[39];a=[168];
sys=tf(b,a);t=0:
0.1:
10;y=step(sys,t);plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('单位阶跃响应');
系统的阶跃响应如图6.2所示:
图6.2系统的阶跃响应曲线
(2)Matlab程序:
%求系统在正弦激励下的零状态响应
b=[1];a=[101];
sys=tf(b,a);t=0:
0.1:
10;
x=cos(t);y=lsim(sys,x,t);plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('零状态响应');
系统的零状态响应如图6.3所示:
图6.3系统的零状态响应曲线
Matlab程序:
%求系统的全响应
b=[1];a=[101];
[ABCD]=tf2ss(b,a);t=0:
0.1:
10;
x=cos(t);zi=[-10];
y=lsim(sys,x,t,zi);
plot(t,y);
xlabel('时间(t)');ylabel('y(t)');title('系统的全响应');
系统的全响应如图6.4所示:
图6.4系统全响应曲线
(3)MATLAB程序:
clearall;
T=0.1;t=0:
T:
10;f=3*t.*sin(t);
h=t.*exp(-2*t).*Heaviside(t);Lf=length(f);Lh=length(h)
fork=1:
Lf+Lh-1
y(k)=0;
fori=max(1,k-(Lh-1)):
min(k,Lf)
y(k)=y(k)+f(i)*h(k-i+1);
end
yzsapper(k)=T*y(k);
end
subplot(3,1,1);%f(t)的波形
plot(t,f);title('f(t)');
subplot(3,1,2);%h(t)的波形
plot(t,h);title('h(t)');
subplot(3,1,3);%零状态响应近似结果的波形
plot(t,yzsapper(1:
length(t)));title('零状态响应近似结果');xlabel('时间');
系统响应如图6.5所示:
图6.5系统的响应曲线
2、程序设计实验
(1)MATLAB程序:
clf;
a=[10.99646397.8121318.11];b=[1.65-0.331-57690.619080];
sys=tf(b,a);s=0:
0.0005:
2;
x=exp(s);y=lsim(sys,x,s);plot(s,y);
xlabel('s');ylabel('H(s)');title('零状态响应');
该系统在指数函数激励下的零状态响应如图6.6所示:
图6.6系统的零状态响应曲线
(2)Matlab程序:
clf;
b=[-0.475-0.248-0.1189-0.0564];
a=[10.63630.93960.51230.0037];
sys=tf(b,a);t=1:
0.0005:
10;
y1=impulse(sys,t);subplot(2,2,1);plot(t,y1);title('冲激响应');
y2=step(sys,t);subplot(2,2,2);plot(t,y2);title('阶越响应');
b=3;t0=1;u=stepfun(t,t0);n=length(t)
fori=1:
n
u(i)=b*u(i)*(t(i)-t0);
end
x=sin(t);y3=lsim(sys,u,t);subplot(2,2,3);plot(t,y3);title('斜坡响应');
y4=lsim(sys,x,t);subplot(2,2,4);plot(t,y4);title('正弦激励响应');
该系统在冲激、阶跃、斜坡和正弦激励下的零状态响应分别如图6.7所示:
图6.7系统的零状态响应曲线
(3)MATLAB程序:
clf;
b=[23];a=[144];
[ABCD]=tf2ss(b,a);
sys=ss(A,B,C,D);
t=1:
0.0005:
10;n=length(t)
fori=1:
n
x(i)=0;
end
zi=[21];y=lsim(sys,x,t,zi);
plot(t,y);
系统的零状态响应如图6.8所示:
图6.8系统的零状态响应曲线
实验10周期信号的合成与分解
1、验证性实验
1)周期信号的分解
MATLAB程序:
clf;%周期信号的分解
t=0:
0.01:
2*pi;
y=zeros(10,max(size(t)));
x=zeros(10,max(size(t)));
fork=1:
2:
9;
x1=sin(k*t)/k;
x(k,:
)=x(k,:
)+x1;
y((k+1)/2,:
)=x(k,:
);
end
subplot(2,1,1);plot(t,y(1:
9,:
));
grid;
line([0,pi+0.5],[pi/4,pi/4]);text(pi+0.5,pi/4,'pi/4');
halft=ceil(length(t)/2);subplot(2,1,2);
mesh(t(1:
halft),[1:
10],y(:
1:
halft));
周期信号的分解如图10.2所示:
图10.2周期信号的分解
2)傅里叶级数逼近
MATLAB程序:
clf;%宽度为1,高度为1,周期为2的正方波,傅里叶级数逼近
t=-2:
0.001:
2;%信号的抽样点
N=20;c0=0.5;
f1=c0*ones(1,length(t));%计算抽样上的直流分量
forn=1:
N%偶次谐波为零
f1=f1+cos(pi*n*t)*sinc(n/2);
end
plot(t,f1);axis([-22-0.20.8]);
方波的傅里叶级数逼近如图10.3所示:
图10.3方波的傅里叶级数逼近
3)用正弦信号的叠加近似合成一频率为50HZ,幅度为3的方波
Matlab程序:
clearall;
fs=10000;t=[0:
1/fs:
0.1];f0=50;sum=0;subplot(211)
forn=1:
2:
9;
plot(t,4/pi*1/n*sin(2*pi*n*f0*t),'k');
title('信号叠加前');holdon;
end
subplot(212)
forn=1:
2:
9;
sum=sum+4/pi*1/n*sin(2*pi*n*f0*t);
end
plot(t,sum,'k');title('信号叠加后');
正弦信号的叠加如图10.4所示:
图10.4正弦信号的叠加
4)Gibbs现象
MATLAB程序:
t=-1.5:
0.01:
1.5;
wo=4,E=1;
N=10;
xN=0;
forn=1:
N
an=(E/(n*pi))*(sin(n*pi/2)-sin(n*3*pi/2))
xN=xN+an.*cos(n*wo*t);
end
subplot(221);plot(t,xN)
xlabel('time');
ylabel('approximationN');
axis([-22-0.70.7]);
吉布斯现象如图10.5所示:
图10.5吉布斯现象曲线
2、程序设计实验:
Matlab程序:
clearall;
fs=1000;
t=[0:
1/fs:
0.1];f0=50;sum=0;subplot(2,1,1);
forn=1:
2:
9;
plot(t,4/pi*1/n*sin(2*pi*f0*t*n),'k');
title('信号叠加前');
holdon;
end
subplot(2,1,2);
forn=1:
2:
9;
sum=sum+3*4/pi*1/n*sin(2*pi*f0*t*n);
end
plot(t,sum,'k');
title('信号叠加后');
方波合成后的结果如图10.6所示:
图10.6方波的合成结果
实验11连续LTI系统的频域分析
1、验证性实验
1)编程实现信号的傅里叶变换和傅里叶逆变换
(1)傅里叶变换。
MATLAB程序:
symst;
f=fourier(exp(-2*abs(t)));
ezplot(f);
信号f(t)的傅里叶变换如图11.4所示:
图11.4信号f(t)的傅里叶变换
MATLAB程序:
symstvwf
f=2/3*exp(-3*t)*sym('Heaviside(t)');
F=fourier(f);
subplot(2,1,1);
ezplot(f);
subplot(2,1,2);
ezplot(abs(F));
f(t)的波形及及幅频特性曲线如图11.5所示:
图11.5信号f(t)的波形及其幅频特性曲线
(2)傅里叶逆变换。
MATLAB程序:
symstm
ifourier(1/(1^2),t)
结果为ans=Dirac(t)
(3)傅里叶变换数值计算。
Matlab程序:
R=0.02;t=-2:
R:
2;
f=stepfun(t,-1)-stepfun(t,1);
W1=2*pi*5;%频率宽度
N=500;%采样数为N
k=0:
N;
W=k*W1/N;%W为频率正半轴的采样点
F=f*exp(-j*t'*W)*R;%求F(jw)
F=real(F);W=[-fliplr(W),W(2:
501)];
F=[fliplr(F),F(2:
501)];
subplot(2,1,1);plot(t,f);
xlabel('t');ylabel('f(t)');axis([-2,2,-0.5,2]);
title('f(t)=u(t+1)-u(t-1)');subplot(2,1,2);plot(W,F);
xlabel('w');ylabel('F(w)');title('f(t)的傅里叶变换');
信号的傅里叶变换如图11.6所示:
图11.6信号的傅里叶变换
(4)连续函数的傅里叶变换。
Matlab程序:
clf;
dt=2*pi/8;w=linspace(-2*pi,2*pi,2000)/dt;
k=-2:
2;f=ones(1,5);F=f*exp(-j*k'*w);
f1=abs(F);plot(w,f1);grid;
连续函数的傅里叶变换如图11.7所示:
图11.7连续函数的傅里叶变换
(5)连续周期信号的傅里叶变换。
Matlab程序:
clf;%计算连续周期信号的傅里叶级数
N=8;n1=-N:
-1;%计算N为负数时的傅里叶级数
c1=-4*j*sin(n1*pi/2)/pi^2./n1.^2;
c0=0;%计算为N为零时的傅里叶级数
n2=1:
N;%计算N为正数时的傅里叶级数
c2=-4*j*sin(n2*pi/2)/pi^2./n2.^2;cn=[c1c0c2];n=-N:
N;
subplot(2,1,1);Stem(n,abs(cn));ylabel('AmofCN');Subplot(2,1,2);
stem(n,angle(cn));ylabel('phaseofCN');xlabel('\omega/\omega0');
连续周期信号的傅里叶级数如图11.8所示:
图11.8连续周期信号的傅里叶级数
2)傅里叶变换的时移特性
(1)MATLAB程序:
r=0.02;t=-5:
r:
5;N=200;W=2*pi;k=-N:
N;w=k*W/N;
f1=1/2*exp(-2*t).*stepfun(t,0);F=r*f1*exp(-j*t'*w);F1=abs(F);
P1=angle(F);subplot(3,1,1);plot(t,f1);gridxlabel('t');ylabel('f(t)');
title('f(t)');subplot(3,1,2)plot(w,F1);xlabel('w');grid;ylabel('F(jw)');subplot(3,1,3)
plot(w,P1*180/pi);grid;xlabel('w');ylabel('相位(度)');
傅里叶变换的时移特性如图11.9所示:
图11.9傅里叶变换的时移特性
(2)f(t-1)的频谱。
Matlab程序:
r=0.02;t=-5:
r:
5;N=200;W=2*pi;k=-N:
N;w=k*W/N;
f1=1/2*exp(-2*(t-1)).*stepfun(t,1);
F=r*f1*exp(-j*t'*w);
F1=abs(F);P1=angle(F);subplot(3,1,1);plot(t,f1);gridon
xlabel('t');ylabel('f(t)');title('f(t-1)');subplot(3,1,2);
plot(w,F1);xlabel('w');gridon;ylabel('F(jw)的模');
subplot(3,1,3);plot(w,P1*180/pi);grid;xlabel('w');ylabel('相位(度)');
傅里叶变换的时移特性如图11.10所示:
图11.10傅里叶变换的时移特性
3)傅里叶变换的频移特性
Matlab程序:
R=0.02;t=-2:
R:
2;f=stepfun(t,-1)-stepfun(t,1);
f1=f.*exp(-j*10*t);f2=f.*exp(j*10*t);W1=2*pi*5;
N=500;k=-N:
N;W=k*W1/N;
F1=f1*exp(-j*t'*W)*R;
F2=f2*exp(-j*t'*W)*R;
F1=real(F1);F2=real(F2);subplot(2,1,1);plot(W,F1);
xlabel('w');ylabel('F1(jw)');title('频谱F1(jw)');
subplo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 系统 实验