信号与系统实验Word文档下载推荐.docx
《信号与系统实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《信号与系统实验Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
程序的运行也可以在命令窗口进行。
程序调试的信息显示在命令窗口。
程序文件的产生:
点击菜单file下的New下的M_files,进入编辑器界面,如图2。
图2M文件编辑器
在matlab软件中,在m文件编辑器下键入程序代码,保存程序文件(命名规则同C语言)。
如果所定义的是函数文件,则要求函数名为M文件名。
例如指数函数定义格式[t,y]=exp1_exp(t1,t2,dt,A,a)
(5)程序运行需要给定义的函数参数赋值。
切换到命令窗口下运行
指数函数文件调用方式:
[t,y]=exp1_exp(-10,10,0.1,3,-1,1)
2连续和离散信号的时域表示方法
(1)单边指数信号
;
functiony=exp1_exp(t1,t2,dt,A,a,options)
%指数函数,其中t1,t2,dt分别为起始时间、终止时间和时间间隔
%A,a为常数y(t)=Aexp(a*t)
%options参数等于1时为单边指数函数,其他时为指数函数
%函数调用的格式y=exp1_exp(-10,10,0.1,3,-1,1)
ifoptions==1
t=0:
dt:
t2;
%单边指数函数时间范围
else
t=t1:
%指数函数时间范围
end
y=A*exp(a*t);
%指数函数
plot(t,y)%画图
gridon
xlabel('
t'
)%X轴坐标
ylabel('
y(t)'
)%Y轴坐标
title('
单边指数信号'
)%标题
指数信号'
实验结果:
(2)单位冲激信号
function[t,y]=exp1_impulse(t1,t2,dt,t0)
%单位冲激信号,其中t1,t2,dt分别为起始时间、终止时间和时间间隔
%t0为冲激点
%函数调用格式:
[t,y]=exp1_impulse(-10,10,0.1,0);
t=t1:
n=length(t);
y=zeros(1,n);
y(1,(t0-t1)/dt+1)=1/dt;
stairs(t,y);
)
title('
单位冲激信号'
(3)单位阶跃信号
function[t,y]=exp1_step(t1,t2,dt,t0)
%单位阶跃信号,其中t1,t2,dt分别为起始时间、终止时间和时间间隔
%t0为阶跃跳变点
[t,y]=exp1_step(-10,10,0.1,3);
tt1=t1:
t0;
tt2=t0:
nn1=length(tt1);
%length函数测量变量tt1长度
nn2=length(tt2);
y1=zeros(1,nn1);
%产生1行,nn1列的零数据矩阵
y2=ones(1,nn2);
;
%产生1行,nn2列的数据矩阵,矩阵元素为1
t=[tt1tt2];
y=[y1y2];
plot(t,y)
单位阶跃信号y(t)'
axis
xy_axis=axis;
axis([xy_axis(1:
2)1.5*xy_axis(3:
4)-0.1])
(4)矩形脉冲信号
function[t,y]=exp1_rectimpulse(E,width,T1,T2,dt,T0)
%矩形脉冲信号,其中T1,T2,dt分别为起始时间、终止时间和时间间隔
%T0为阶跃跳变点
[t,y]=exp1_rectimpulse(10,1,-10,10,0.1,2);
t=T1:
T2;
y=E*rectpuls(t-T0,width);
plot(t,y);
矩形脉冲信号'
(5)正弦信号
function[t,y]=exp1_sin(t1,t2,dt,A,w)
%正弦信号,,其中t1,t2,dt分别为起始时间、终止时间和时间间隔
%A,W为幅度和角频率参数
[t,y]=exp1_sin(-10,10,0.1,10,1);
y=A*sin(w*t);
正弦信号'
(6)单位序列
function[n,y]=exp1_dimpluse(k1,k2,dt,k0)
%离散单位冲激信号,其中k1,k2,dt分别为起始时间、终止时间和时间间隔,dt要求为整数
%k0为冲激点
[n,y]=exp1_dimpluse(-10,10,1,0);
n=k1:
k2;
nl=length(n);
y=zeros(1,nl);
y(1,round((k0-k1)/dt)+1)=1;
stem(n,y,'
filled'
单位冲激序列'
(7)单位阶跃序列
function[n,y]=exp1_dstep(k1,k2,k0)
%离散单位阶跃信号,其中k1,k2分别为起始时间、终止时间,默认时间间隔为1
%k0为阶跃跳变点
[n,y]=exp1_dstep(-10,10,3);
k=k1:
-k0-1;
kk=-k0:
n=length(k);
nn=length(kk);
u=zeros(1,n);
uu=ones(1,nn);
n=[kkk];
y=[uuu];
单位阶跃序列'
(8)单位矩形序列
function[n,y]=exp1_drectimpulse(k1,k2,k0,width,E)
%离散矩形脉冲信号,其中k1,k2分别为起始时间、终止时间,默认时间间隔为1
%E高度,width脉宽
[n,y]=exp1_drectimpulse(-10,10,0,1,3);
k0-1;
kk=k0:
width+k0;
kkk=width+k0+1:
k2
nnn=length(kkk);
uu=E*ones(1,nn);
uuu=zeros(1,nnn);
n=[kkkkkk];
y=[uuuuuu];
单位矩形序列'
(9)指数序列
functionexp1_dexp(c,a,k1,k2)
%c:
指数序列的幅度
%a:
指数序列的底数
%k1:
绘制序列的起始序号
%k2:
绘制序列的终止序号
%c=1;
a=2;
k1=-2;
k2=10;
x=c*(a.^k);
stem(k,x,'
指数序列'
n'
f(n)'
(10)正弦序列
functionexp1_dsin(A,w,k1,k2)
%离散正弦信号,,其中k1,k2分别为起始时间、终止时间,默认时间间隔为1
exp1_dsin(5,0.25,-30,30);
stem(k,A*sin(k*w),'
离散时间正弦序列f(n)=Asin(wn)'
3连续和离散信号的卷积表示方法
(1)连续时间信号卷积
function[f,k]=exp1_sconv(f1,f2,k1,k2,p)
%计算连续信号卷积积分f(t)=f1(t)*f2(t)
%f:
卷积积分f(t)对应的非零样值向量
%K:
f(t)的对应时间向量
%f1:
f1(t)的非零样值向量
%f2:
f2(t)的非零样值向量
%K1:
序列f1(t)的对应时间向量
%K2:
序列f2(t)的对应时间向量
%p:
取样时间间隔
%调用格式:
%f1=0.5*(0:
0.01:
2);
f2=0.5*(0:
k1=0:
2;
k2=0:
p=0.01;
%[f,k]=exp1_sconv(f1,f2,k1,k2,p)
f=conv(f1,f2);
%计算序列1与序列2的卷积和
f=f*p;
k0=k1
(1)+k2
(1);
%计算序列f非零样值的起点位置
k3=length(f1)+length(f2)-2;
%计算卷积和f非零样值得宽度
k=k0:
p:
k0+k3*p;
%确定卷积和f非零样值的时间向量
subplot(3,1,1)
plot(k1,f1)%在子图1绘制f1(t)时域波形图;
);
f1(t)'
subplot(3,1,2)
plot(k2,f2);
%在子图2绘制f2(t)时域波形图
f2(t)'
subplot(3,1,3)
plot(k,f);
%画卷积f(t)的时域波形
f(t)'
f(t)=f1(t)*f2(t)'
已知
,求
(2)离散时间信号卷积
function[f,k]=exp1_dconv(f1,f2,k1,k2)
%Thefunctionofcomputef=f1*f2
卷积和序列f(k)对应的非零样值向量
%k:
序列f(k)的对应序号向量
序列f1(k)非零样值向量
序列f2(k)非零样值向量
序列f1(k)的对应序号向量
序列f2(k)的对应序号向量
%调用例子:
%f1=[1,2,1];
f2=ones(1,5);
k1=[-101];
k2=-2:
%[f,k]=exp1_dconv(f1,f2,k1,k2)
%计算序列f1与f2的卷积和f
%计算卷积和f的非零样值的宽度
k0+k3%确定卷积和f非零样值得序号向量
stem(k1,f1)%在子图1绘制序列f1(k)时域波形图
f1(n)'
stem(k2,f2)%在子图2绘制序列f2(k)时域波形图
f2(n)'
stem(k,f)%在子图3绘制序列f(k)时域波形图
f1(n)与f2(n)的卷积和f(n)'
已知
‘
实验结果
实验分析与总结:
经过俩周的时间,我的信号与系统测试实验课画上了一个句号。
可以说,信号与系统测试实验课是我真正的开始接触这个学科,因为以前学的都是理论知识,学懂得仅仅是理论,而信号与系统测试实验课就给了我们这样一个将理论付诸于时间的机会,在这俩周的实验课中,我收获了很多很多,也许会了很多很多。
每一个实验都要求很严格,只有理解了实验的原理与具体操作方法,然后在实验时按照要求完成每一个步骤,才能够完成实验任务。
每一个微小的错误都有可能导致图形不对,每当这个时候我们都必须得认真思考,例如在描绘指数信号时,刚开始始终看不到三条指数图像的交点,最后经分析可知是由于横坐标取值取得太大,交点距离横坐标太近,不易看到,所以在做实验的时候必须有一个严谨的态度。
“信号的观察与分类”实验中各种常用的信号,这就要求对常用信号的波形特点及产生方法有所了解。
经过第一次的实验课,我不仅对各个常用信号的波形有了更深刻的了解,也对信号的产生有了一定的认识。
上理论课是学习知识,上实验课是对动手能力的考察,也是对所学知识的考察,只有掌握了学习过的知识,才能够将学过的知识很好的运用到实验中,并且经过实验对所学知识有更深刻的了解。
我认为,实验课比理论课的收获更大,因为理论课基本上是老师一个人在讲,我们是在被动的接受,而在实验中,我们每个人都要亲自动手去做,必须要掌握一定的知识才能进行实验,所以我们会去主动的学习知识,来将实验完成,这样的方式学得的知识更能够牢固的掌握。
实验课我们必须思考每句程序的含义,看懂后运行并不断修改!
通过这几次的实验课,我对学过的信号与系统的知识有了更加深刻的认识,对很多以前不理解的东西有了一定的理解,也加深的对所学知识的印象。
信号与系统的实验课使我第一次对实验室有了了解,对科学实验有了了解,对很多实验器材有了了解,我从中收获了许多许多,有些是知识层面的,有些是其它层面的,但它们无疑会对我以后的发展有很大的帮助。
特别在连续和离散时间信号卷积表示,让我理解了新的知识,如有两个有限长序列
,设
区间为
,长度为
,则
和
的卷积为:
根据卷积分配率和
得:
可见,卷积后序列的起始点为:
,终点为
。
长度为
信号与系统实验课带给我的远远不止这些,通过实验,我也更加认识到了学好这门课的重要性。
在以后的日子里,我会好好的学习信号与系统这门课程,为我以后的发展奠定坚实的基础。
更重要的是,通过本次试验进一步熟悉了matlab的操作,熟悉了M文件的编写及调用;
学习了MATLAB软件及其在信号处理中的应用,加深对常用离散时间信号的理解。
学会了利用MATLAB产生常见离散时间信号及其图形的显示,进行单运算;
通过软件的操作验证理论学习的知识,加强了自己动手锻炼的能力。