信号与系统实验教程只有答案.docx
《信号与系统实验教程只有答案.docx》由会员分享,可在线阅读,更多相关《信号与系统实验教程只有答案.docx(55页珍藏版)》请在冰豆网上搜索。
![信号与系统实验教程只有答案.docx](https://file1.bdocx.com/fileroot1/2022-9/30/0578e22c-c415-4964-a823-0e0d0b4c29a8/0578e22c-c415-4964-a823-0e0d0b4c29a81.gif)
信号与系统实验教程只有答案
信号与系统
实验教程(只有答案)
(实验报告)
这么玩!
实验一信号与系统的时域分析
三、实验内容及步骤
实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。
实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。
并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。
实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。
Q1-1:
修改程序Program1_1,将dt改为0.2,再执行该程序,保存图形,看看所得图形的效果如何?
dt=0.01时的信号波形dt=0.2时的信号波形
这两幅图形有什么区别,哪一幅图形看起来与实际信号波形更像?
答:
Q1-2:
修改程序Program1_1,并以Q1_2为文件名存盘,产生实指数信号x(t)=e-0.5t。
要求在图形中加上网格线,并使用函数axis()控制图形的时间范围在0~2秒之间。
然后执行该程序,保存所的图形。
修改Program1_1后得到的程序Q1_2如下:
信号x(t)=e-0.5t的波形图
clear,%Clearallvariables
closeall,%Closeallfigurewindows
dt=0.2;%Specifythestepoftimevariable
t=-2:
dt:
2;%Specifytheintervaloftime
x=exp(-0.5*t);%Generatethesignal
plot(t,x)
gridon;
axis([0201])
title('Sinusoidalsignalx(t)')
xlabel('Timet(sec)')
Q1-3:
修改程序Program1_1,并以Q1_3为文件名存盘,使之能够仿真从键盘上任意输入的一个连续时间信号,并利用该程序仿真信号x(t)=e-2t。
修改Program1_1后得到的程序Q1_3如下:
信号x(t)=e-2t的波形图
clear,
closeall,
dt=0.2;
t=-2:
dt:
2;
x=input('Inputx(t):
');
plot(t,x)
gridon;
axis([02-11])
title('Sinusoidalsignalx(t)')
xlabel('Timet(sec)')
Q1-4:
将实验原理中所给的单位冲激信号和单位阶跃信号的函数文件在MATLAB文件编辑器中编写好,并分别以文件名delta和u存入work文件夹中以便于使用。
抄写函数文件delta如下:
抄写函数文件u如下:
functiony=delta(t)%Unitstepfunction
dt=0.01;functiony=u(t)
y=(u(t)-u(t-dt))/dt;y=(t>=0);%y=1fort>0,elsey=0
Q1-5:
修改程序Program1_4,并以Q1_5为文件名存盘,利用axis()函数,将图形窗口的横坐标范围改为-2≤n≤5,纵坐标范围改为-1.5≤x≤1.5。
修改Program1_4后得到的程序Q1_5如下:
信号的波形图
clear,
closeall,
n=-5:
5;
x=[zeros(1,4),0.1,1.1,-1.2,0,1.3,zeros(1,2)];
stem(n,x,'.')
gridon,
axis([-25-1.51.5]);
title('Adiscrete-timesequencex[n]')
xlabel('Timeindexn')
Q1-6:
仿照前面的示例程序的编写方法,编写一个MATLAB程序,以Q1_6为文件名存盘,使之能够在同一个图形窗口中的两个子图中分别绘制信号x[n]=0.5|n|和x(t)=cos(2πt)[u(t)-u(t-3)]。
要求选择的时间窗能够表现出信号的主要部分(或特征)。
编写的程序Q1_6如下:
信号x[n]=0.5|n|的波形图和信号x(t)=cos(2πt)[u(t)-u(t-3)]的波形图
clear,closeall,
t=-1:
0.01:
4;
xt=cos(2*pi*t).*(u(t)-u(t-3));
n=-5:
5;
xn=(0.5).^abs(n);
subplot(211)
plot(t,xt)
gridon,
title('Originalsignalx(t)')
subplot(212)
stem(n,xn,'.')
gridon,
title('Originalsignalx(n)')
xlabel('Timet(sec)')
Q1-7:
根据示例程序的编程方法,编写一个MATLAB程序,以Q1_7为文件名存盘,由给定信号x(t)=e-0.5tu(t)求信号y(t)=x(1.5t+3),并绘制出x(t)和y(t)的图形。
编写的程序Q1_7如下:
编写产生x(t)的函数文件x.m
functiony=x(t)
y=exp(-0.5*t).*u(t);
clear,closeall,
t=-3:
0.01:
4;
xt=x(t);%Generatetheoriginalsignalx(t)
yt=x(1.5*t+3);
subplot(211)
plot(t,xt)%Plotx(t)
gridon,
title('Originalsignalx(t)')
subplot(212)
plot(t,yt)%Plotx(t)
gridon,
title('Originalsignaly(t)')
xlabel('Timet(sec)')
信号x(t)的波形图信号y(t)=x(1.5t+3)的波形图
Q1-8:
给定一个离散时间信号x[n]=u[n]–u[n-8],仿照示例程序Program1_5,编写程序Q1_8,产生x[n]的左移序列x1[n]=x[n+6]和右移序列x2[n]=x[n-6],并在同一个图形窗口的三个子图中分别绘制这三个序列的图形。
编写的程序Q1_8如下:
编写产生x(t)的函数文件xx.m
functiony=xx(n)
y=u(n)-u(n-8);
clear,closeall,
n=-10:
15;
x=xx(n);%Generatetheoriginalsignalx(n)
x1=xx(n+6);%Shiftx(t)totheleftby2secondtogetx1(n+6)
x2=xx(n-6);%Shiftx(t)totherightby2secondtogetx2(n-6)
subplot(311)
stem(n,x,'.')%Plotx(t)
gridon,
title('Originalsignalx(n)')
subplot(312)
stem(n,x1,'.')%Plotx1(t)
gridon,
title('Leftshiftedversionofx(n)')
subplot(313)
stem(n,x2,'.')%Plotx2(t)
gridon,
title('Rightshiftedversionofx(n)')
xlabel('Timet(sec)')
信号波形图
Q1-9:
编写程序Q1_9,使之能够接受以键盘方式输入的定义在不同时间段的两个不同连续时间信号并完成卷积运算,分别绘制这两个信号及其卷积的结果的图形,图形按照22分割成四个子图。
编写的程序Q1_9如下:
clear;closeall;
dt=0.01;
t0=input('Inputfirstsignalt0:
');t1=input('Inputfirstfirstsignalt1:
');
tx=t0:
dt:
t1;
x=input('Inputfirstsignalvariable(tx):
');
t2=input('Inputsecondsignalt0:
');t3=input('Inputsecondsignalt1:
');
th=t2:
dt:
t3;
h=input('Inputsecondsignalvariable(th):
')
y=dt*conv(x,h);%Computetheconvolutionofx(t)andh(t)
subplot(221)
plot(tx,x),gridon,title('Signalx(t)')
xlabel('Timetsec')
subplot(222)
plot(th,h),gridon,title('Signalh(t)')
xlabel('Timetsec')
subplot(313)
plot(y),gridon,title('Theconvolutionofx(t)andh(t)')
xlabel('Timetsec')信号x(t)、h(t)和x(t)*h(t)的波形图
Q1-10:
给定两个离散时间序列
x[n]=0.5n{u[n]-u[n-8]}
h[n]=u[n]-u[n-8]
编写程序Q1_10,计算它们的卷积,并分别绘制x[n]、h[n]和它们的卷积y[n]的图形。
编写的程序Q1_10如下:
n=0:
10;
x=(0.5).^n.*(u(n)-u(n-8));
h=u(n)-u(n-8);
y=conv(x,h);%Computetheconvolutionofx(t)andh(t)
subplot(221)
stem(n,x,'.'),gridon,title('Signalx(n)')
subplot(222)
stem(n,h,'.'),gridon,title('Signalh(n)')
subplot(212)
stem(y),gridon,title('Theconvolutionofx(n)andh(n)'),
xlabel('Timetsec');
信号x[n]、h[n]和y[n]的波形图
Q1-11已知一个序列为
编写MATLAB程序Q1_11,能够将x[n]以N=8为周期进行周期延拓得到一个周期为N=8的周期序列y[n],并分别绘制x[n]和y[n]图形。
编写的程序Q1_11如下:
U4.m
functiony=u4(n)
y=n.*(u(n)-u(n-5));
Q1——11.m
clear,closeall;
n=-16:
32
x=u4(n);
T=8;y=0;
fork=-2:
4;
y=y+u4(n-k*T);
end
subplot(211)
stem(n,x,'.');
gridon,
title('Originalsignalx(n)')
x