课程实验报告学年学期2015-2016学年第二学期课程名称信号与系统实验名称连续信号和离散信号的表示与卷积实验室北校区5号楼计算机房专业年级电气141学生姓名宋天绍学生学号2014011595提交时间2016.6.19成绩任课教师吴凤娇水利与建筑工程学院实验一:连续信号和离散信号的表示与卷积一.实验目的1.学习MATLAB软件产生信号和实现信号的可视化2.学习和掌握连续和离散信号的时域表示方法3.学习和掌握连续信号和离散信号卷积方法二.实验原理1.信号的表示方法常用信号:连续函数atAetf)(,ttf0sin)(离散信号nAanf][,nnf0sin][奇异信号:连续函数:冲激函数)(t,阶跃函数)(tu,矩形冲激函数)(tR离散信号:冲激函数][n,阶跃函数][nu,矩形脉冲函数][nR2.卷积连续函数的卷积积分:dtfftg)()()(21离散函数的卷积和:mmnfmfng][][][21三.实验内容1.熟悉matlab工作环境(1)运行matlab.exe,进入matlab工作环境,如图(1)所示。图1matlab工作环境(2)matlab工作环境由CommandWindow(命令窗口)、CurrentDirecroty(当前目录)、Workspace(工作空间)、CommandHistory(历史命令)和Editor(文件编辑器)5部分组成。其中所有文件的编辑和调试、运行在Editor编辑窗口下进行。程序的运行也可以在命令窗口进行。程序调试的信息显示在命令窗口。(3)程序文件的产生:点击菜单file下的New下的M_files,进入编辑器界面,如图2。图2M文件编辑器(4)在m文件编辑器下键入程序代码,保存程序文件(文件命名规则同C语言)。如果所定义的是函数文件,则要求函数名为M文件名。(5)程序运行需要给定义的函数参数赋值。切换到命令窗口下运行例如指数函数定义格式[t,y]=exp1_exp(t1,t2,dt,A,a)指数函数文件调用方式:[t,y]=exp1_exp(-10,10,0.1,3,-1,1)练习Commandwindow窗口输入几个矩阵:元素与元素之间用逗号或者空格隔开,行之间用分号隔开。a=[1,2,3;4,5,6]a(2,2)表示第二行第二列的元素值。运行时注意各个窗口的变化2连续和离散信号的时域表示方法:指数、单位冲激、单位阶跃、矩形脉冲、正弦函数(1)指数信号;%M文件中有行的标注functiony=exp1_exp(t1,t2,dt,A,a,options)%也可写成[t,y]=exp1_exp(t1,t2,dt,A,a,options);或者直接用函数名exp1_exp(t1,t2,dt,A,a,options),如例9指数序列%指数函数,其中t1,t2,dt分别为起始时间、终止时间和时间间隔%A,a为常数y(t)=Aexp(a*t)%options参数等于1时为单边指数函数,其他时为双边指数函数%函数调用的格式y=exp1_exp(-10,10,0.1,3,-1,1);的作用ifoptions==1t=0:dt:t2;%单边指数函数时间范围elset=t1:dt:t2;%双边指数函数时间范围endy=A*exp(a*t);%指数函数plot(t,y)%画图gridon%(图里边标注网格,可以%注释掉看其变换,每次改动注意保存!)xlabel('t')%X轴坐标ylabel('y(t)')%Y轴坐标ifoptions==1title('单边指数信号')%标题elsetitle('双边指数信号')%标题end若有错误,在commondwindow窗口中用红色提示。实验要求:1)在同一张图上画出a0,a=0,a0时指数函数波形,如图3所示.注意:a的取值范围要适中,不要导致纵坐标相差太大。)()(tuAetyt2)提示:在命令窗口设置holdon命令,可以在同一张图上画出多条曲线clc命令实验代码及过程:y=exp1_exp(-10,10,0.1,3,0,0)holdony=exp1_exp(-10,10,0.1,3,0.1,0)holdony=exp1_exp(-10,10,0.1,3,-0.1,0)实验结果:-2-1.5-1-0.500.511.520510152025ty(t)指数信号-10-8-6-4-20246810123456789ty(t)双边指数信号(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:dt:t2;n=length(t);y=zeros(1,n);y(1,(t0-t1)/dt+1)=1/dt;stairs(t,y);%阶梯xlabel('t')ylabel('y(t)')title('单位冲激信号')实验要求:1)要求产生冲激点在X处的单位冲激函数,其中X为自己的学号中最后两位;(2)要求画出图形实验代码及过程:[t,y]=exp1_impulse(65,105,0.1,95);实验结果:(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:dt:t0;65707580859095100105012345678910ty(t)单位冲激信号tt2=t0:dt:t2;nn1=length(tt1);%length函数测量变量tt1长度nn2=length(tt2);y1=zeros(1,nn1);%产生1行,nn1列的零数据矩阵y2=ones(1,nn2);;%产生1行,nn2列的数据矩阵,矩阵元素为1t=[tt1tt2];y=[y1y2];plot(t,y)xlabel('t')ylabel('y(t)')title('单位阶跃信号y(t)')xy_axis=axis;%坐标的调整,可以help一下axis。axis([xy_axis(1:2)1.5*xy_axis(3:4)-0.1])%在原来的坐标轴基础上进行变化,也可以写成axis([-1212-15]);实验要求:1)要求产生阶跃跳变点在X处的单位阶跃函数,其中X为自己的学号中最后两位;(2)要求画出图形实验代码及过程:[t,y]=exp1_step(85,105,0.1,95);实验结果:(4)矩形脉冲信号function[t,y]=exp1_rectimpulse(E,width,t1,t2,dt,t0)%矩形脉冲信号,其中t1,t2,dt分别为起始时间、终止时间和时间间隔%t0为阶跃跳变点%E为矩形脉冲幅值85909510010500.20.40.60.811.2ty(t)单位阶跃信号y(t)%width为矩形脉冲宽度%函数调用格式:[t,y]=exp1_rectimpulse(10,1,-10,10,0.1,2);t=t1:dt:t2;y=E*rectpuls(t-t0,width);%标准矩形脉冲,有个t0的时移。可以help一下rectpuls。plot(t,y);xlabel('t')ylabel('y(t)')title('矩形脉冲信号')xy_axis=axis;axis([xy_axis(1:2)1.5*xy_axis(3:4)-0.1])%在原来的坐标轴基础上进行变化,也可以写成axis([-1215-215]);实验要求:1)要求产生矩形脉冲幅值为X,脉宽为2,脉冲中心点为X的矩形脉冲信号,其中X为自己的学号中最后两位;(2)要求画出图形实验代码及过程:[t,y]=exp1_rectimpulse(95,1,85,105,0.1,95);实验结果:(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);t=t1:dt:t2;y=A*sin(w*t);plot(t,y)859095100105020406080100120140ty(t)矩形脉冲信号title('正弦信号')xlabel('t')ylabel('y(t)')实验要求:1)要求产生幅值为X,角频率为3.14的正弦信号,其中X为自己的学号中最后两位;(2)要求画出图形实验代码及过程:[t,y]=exp1_sin(-10,10,0.1,95,3.14);实验结果:(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:dt:k2;nl=length(n);y=zeros(1,nl);y(1,round((k0-k1)/dt)+1)=1;%round取最近的整数stem(n,y,'filled')%stem茎,目前已接触了plot,stairs,还有很多画图函数。title('单位冲激序列')实验要求:1)要求产生冲激点在X处的单位冲激函数,其中X为自己的学号中最后两位;2)要求画出图形实验代码及过程:[n,y]=exp1_dimpluse(-55,105,1,95);-10-8-6-4-20246810-100-80-60-40-20020406080100正弦信号ty(t)实验结果:(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:k2;n=length(k);nn=length(kk);u=zeros(1,n);uu=ones(1,nn);n=[kkk];y=[uuu];stem(n,y,'filled')title('单位阶跃序列')实验要求:1)要求产生阶跃跳变点在X处的单位阶跃函数,其中X为自己的学号中最后两位;(2)要求画出图形实验代码及过程:[n,y]=exp1_dstep(85,105,95);实验结果:-60-40-2002040608010012000.10.20.30.40.50.60.70.80.91单位冲激序列(8)单位矩形序列function[n,y]=exp1_drectimpulse(k1,k2,k0,width,E)%离散矩形脉冲信号,其中k1,k2分别为起始时间、终止时间,默认时间间隔为1%k0为阶跃跳变点%E高度,width脉宽%函数调用格式:[n,y]=exp1_drectimpulse(-10,10,0,1,3);k=k1:k0-1;kk=k0:width+k0;kkk=width+k0+1:k2n=length(k);nn=length(kk);nnn=length(kkk);u=zeros(1,n);uu=E*ones(1,nn);uuu=zeros(1,nnn);n=[kkkkkk];y=[uuuuuu];stem(n,y,'filled')title('单位矩形序列')实验要求:1)要求产生矩形脉冲幅值为X,脉宽为2,脉冲中心点为X的矩形脉冲信号,其中X为自己的学号中最后两位;(2)要求画出图形实验代码及过程:[n,y]=exp1_drectimpulse(85,105,95,1,95);实验结