《信号与系统》上机实验指导书山东建筑大学信息与电气工程学院电子信息教研室2目录实验一、连续信号的时域描述与运算……………………………………………….3实验二、离散信号的时域描述与运算………………………………………………14实验三、连续信号的频域分析……………………………………………………..19实验四、离散信号的频域分析…………………………………………………….实验五、连续线性时不变系统分析……………………………………………….223实验一连续信号的时域描述与运算一、实验目的1,通过绘制典型信号的波形,了解这些信号的基本特征;2,通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。二、实验原理及方法1.基于matlab的信号描述方法如果一个信号在连续时间范围内(除有限个间断点外)有定义,则称该信号为连续时间信号,简称为连续信号。从严格意义上讲,matlab数值计算方法并不能处理连续信号,但是可以利用连续信号在等时间间隔点的采样值来近似表示连续信号,即当采样间隔足够小时,这些离散采样值能够被matlab处理,并且能够较好地近似表示连续信号。(1)向量表示法对于连续时间信号f(t),可以定义两个行向量f和t来表示,其中向量t是形如t=t1:△t:t2的matlab命令定义的时间范围向量,t1为信号的起始时间,t2为终止时间,△t为时间间隔;向量f为连续时间信号f(t)在向量t所定义的时间点上的采样值。例如对于连续正弦信号)4sin()(ttf,可以用向量表达式表示为:t=-8:1:8;y=sin(pi*t/4);plot(t,y);gridon;axis([-88-1.11.1]);绘制的信号波形如实验图1-1所示,当把时间间隔△t取得更小(如△t=0。01)时,就可以得到f(t)较好的近似波形,如实验图1-2所示。(2)符号运算表示法如果信号可以用一个符号表达式来表示,则可用ezplot命令绘制出信号的波形。例如对于连续信号)4sin()(ttf,可以用符号表达式表示为:f=sym(‘sin(pi/4*t)’);ezplot(f,[-88]);该命令绘制的信号波形如实验图1-3所示。2.常用连续信号的matlab表示4(1)单位阶跃信号u(t)-8-6-4-202468-1-0.8-0.6-0.4-0.200.20.40.60.81实验图1-1时间间隔为1时的信号波形-8-6-4-202468-1-0.8-0.6-0.4-0.200.20.40.60.81实验图1-2时间间隔为0.01时的信号波形5-8-6-4-202468-1-0.500.51tsin(/4t)实验图1-3符号表示法绘制的信号波形-1-0.8-0.6-0.4-0.200.20.40.60.8100.20.40.60.81theaviside(t)实验图1-4单位阶跃信号6Matlab中用heaviside()表示,如实验图1-4所示。Matlab源程序:heaviside()函数定义:functionf=heaviside(t)f=(t=0);函数heaviside(t)的使用t=-1:0.01:1;y=heaviside(t);plot(t,y);gridon;axis([-11-0.11.1]);(2)单位冲激信号δ(t)Matlab中用dirac()表示,如实验图1-5所示。Matlab源程序:冲激函数定义:functiondirac(t1,t2,t0)dt=0.01;t=t1:dt:t2;n=length(t);x=zeros(1,n);x(1,(-t0-t1)/dt+1)=1/dt;stairs(t,x);axis([t1,t2,0,1.2/dt])title('单位冲击信号δ(t)');冲激函数的调用dirac(-4,4,0);7-3-2-101230123456xyx=dirac(t),y=t实验图1-5单位冲激信号(3)符号函数sgn(t)Matlab中用sign()表示,如实验图1-6所示。Matlab源程序:t=-1:0.01:1;y=sign(t);plot(t,y);gridon;8-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81实验图1-6符号函数(4)取样函数Sa(t)如实验图1-7所示。Matlab源程序:t=-10*pi:0.1:10*pi;y=sinc(t/pi);plot(t,y);gridon;axis([-1010-0.31.1]);(5)门函数gτ(t)运用matlab的内部函数rectpuls,调用格式为:y=rectpuls(t)%产生幅度为1,门宽为1,对称中心在t=0的门函数y=rectpuls(t,w)%产生幅度为1,门宽为w,对称中心在t=0的门函数y=rectpuls(t,t0,w)%产生幅度为1,门宽为w,对称中心在t=t0的门函数9-10-8-6-4-20246810-0.200.20.40.60.81实验图1-7取样函数-3-2-1012300.511.522.53实验图1-8单位斜坡信号10(6)单位斜坡信号单位斜坡信号的数学表达式为)0()0(0)(ttttrMatlab源程序:t=-3:0.01:3;f=t.*heaviside(t);plot(t,f);axis([-33-0.13.1]);gridon;3.连续信号的基本运算(1)信号的相加与相乘已知信号f1(t)、f2(t),信号相加和相乘记为:f(t)=f1(t)+f2(t)f(t)=f1(t).*f2(t)信号与信号相加、相乘后的波形如实验图1-9所示。Matlab源程序:t=0:0.01:3;f1=heaviside(t)-heaviside(t-1);f2=t.*(heaviside(t)-heaviside(t-1))+heaviside(t-1);subplot(2,2,1);plot(t,f1);gridon;axis([-12-0.11.1])subplot(2,2,2);plot(t,f2);gridon;axis([-13-0.11.1])subplot(2,2,3);plot(t,f1+f2);gridon;axis([-1202.2])subplot(2,2,4);plot(t,f1.*f2);gridon;axis([-12-0.11.1])(2)信号的微分与积分对于连续时间信号,其微分运算是用diff函数来完成的。其语句格式为:diff(function,’variable’,n);其中function表示需要进行求导运算的信号,或者被赋值的符号表达式;variable为求导运算的独立变量;n为求导的阶数,默认值为一阶导数。11-101200.20.40.60.81-1012300.20.40.60.81-101200.511.52-101200.20.40.60.81实验图1-9信号与信号相加与相乘的波形连续信号的积分运算用int函数来完成,其语句格式为:int(function,’variable’,a,b);其中function为被积信号,或者被赋值的符号表达式,variable为积分变量,a,b为积分上、下限,a和b省略时求不定积分。对实验1-9中的信号f2(t)求微分,其波形如实验图1-10所示;对实验图1-9中的信号f1(t)求积分,其波形如实验图1-11所示。Matlab源程序:symstf2;f2=t*(heaviside(t)-heaviside(t-1))+heaviside(t-1);f=diff(f2,'t',1);t=-1:0.01:2;ezplot(f,t);gridon;Matlab源程序:symstf1;f1=heaviside(t)-heaviside(t-1);f=int(f1,'t');t=-1:0.01:2;ezplot(f,t);gridon;12-1-0.500.511.5200.20.40.60.81theaviside(t)-heaviside(t-1)+...+dirac(t-1)实验图1-10信号的微分-1-0.500.511.5200.20.40.60.81theaviside(t)t-heaviside(t-1)t+heaviside(t-1)实验图1-11信号的积分13三、实验内容及步骤1,上机实验前,认真阅读实验原理,掌握信号表示和信号运算方法。2,利用matlab命令画出下列连续信号的波形图。(1)(2-e-t)*u(t)(2)u(cos(t))(3)产生幅度为1,周期为1,占空比为0.5的周期矩形信号。3,已知f(t)的波形如实验图1-12所示,作出f(t)+f(t)、f(t)*f(t)、f(t)的微分、f(t)的积分的波形。实验图1-12四、思考题1,讨论f(t+t0)与f(-t+t0)平移的方向是否相同,为什么?2,讲信号f(t)编程f(-2t+4)共有多少中方法,请列举出来。五、实验报告要求1,简述实验目的和实验原理。2,编程实现实验内容,要求附上源程序。3,回答思考题。4,总结试验中的主要结论、收获和体会。f(t)t10-11214实验二离散信号的时域描述与运算一、实验目的1,掌握常用时域离散信号的matlab表示方法。2,掌握离散信号的基本运算,包括信号相加、相乘、平移、反转、差分与累加和等。二、实验原理及方法离散时间信号是指在离散时刻才有定义的信号,简称离散信号或者序列。离散信号的绘制一般用stem函数,matlab只能表示一定时间范围内有限长度的序列,而对于无限长序列,只能在一定范围内表示出来。常用离散信号的matlab表示(1)单位阶跃序列u(n)如实验图2-1所示。-3-2-101234500.20.40.60.81nu(n)实验图2-1单位阶跃序列Matlab源程序:n=-3:5;x=u(n);stem(n,x,'fill');xlabel('n');ylabel(‘u(n)’);gridon;axis([-35-0.11.1]);15%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%functionf=u(n)f=(n=0);(2)单位脉冲序列如实验图2-2所示。Matlab源程序:n=-3:3;x=delta(n);stem(n,x,'fill');xlabel('n');gridon;axis([-33-0.11.1]);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%functionf=delta(n)f=(n==0);-3-2-1012300.20.40.60.81n实验图2-2单位脉冲序列(3)矩形序列RN(n)如实验图2-3所示。Matlab源程序:n=-2:8;x=u(n)-u(n-4);stem(n,x,'fill');xlabel('n');gridon;axis([-28-0.11.1]);16-2-101234567800.20.40.60.81n实验图2-3矩形序列(4)单边指数序列f(n)=anu(n)如实验图2-4所示。Matlab源程序:n=0:10;a1=1.2;a2=-1.2;a3=0.8;a4=-0.8;f1=a1.^n;f2=a2.^n;f3=a3.^n;f4=a4.^n;subplot(2,2,1);stem(n,f1,'fill');xlabel('n');gridon;subplot(2,2,2);stem(n,f2,'fill');xlabel('n');gridon;subplot(2,2,3);stem(n,f3,'fill');xlabel('n');gridon;subplot(2,2,4);stem(n,f4,'fill');xlabel('n');gridon;从实验图2-4可知,当|a|1时,单边指数序列发散;当a|1时,序列收敛;当a0时,序列取正值;当a0时,序列在正