您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MATLAB与信号与系统实验指导书(李敏.教改版)
《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院《MATLAB&信号与系统》实验指导书《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院前言长期以来,《信号与线性系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,做题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MATLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB再多了解一些。MATLAB究竟有那些特点呢?1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来;2.完备的图形处理功能,实现计算结果和编程的可视化;3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握;4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具;MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。正是基于这些背景,我们编写了这本《信号与系统分析的MATLAB实现》实验指导书,内容包括信号的MATLAB表示、基本运算、系统的时域分析、频域分析、S域分析、Z域分析等。通过这些练习,同学们在学习《信号与线性系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与线性系统的基本原理、方法及应用的理解,为学习后续课程打好基础。另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院实验一常用基本信号的MATLAB表示和运算一、实验目的1.学会用MATLAB表示常用连续信号的方法;2.学会用MATLAB进行信号基本运算的方法;二、实验原理1.信号的MATLAB表示(1).连续信号的MATLAB表示MATLAB提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。表示连续时间信号有两种方法,一是数值法,二是符号法。数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。例1-1指数信号指数信号在MATLAB中用exp函数表示。如atAetf)(,调用格式为ft=A*exp(a*t)程序是A=1;a=-0.4;t=0:0.01:10;%定义时间点ft=A*exp(a*t);%计算这些点的函数值plot(t,ft);%画图命令,用直线段连接函数值表示曲线gridon;%在图上画方格例1-2正弦信号正弦信号在MATLAB中用sin函数表示。调用格式为ft=A*sin(w*t+phi)A=1;w=2*pi;phi=pi/6;t=0:0.01:8;%定义时间点ft=A*sin(w*t+phi);%计算这些点的函数值plot(t,ft);%画图命令gridon;%在图上画方格例1-3抽样信号抽样信号Sa(t)=sin(t)/t在MATLAB中用sinc函数表示。定义为)/(sin)(tctSat=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);gridon;axis([-10,10,-0.5,1.2]);%定义画图范围,横轴,纵轴title('抽样信号')%定义图的标题名字《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院例1-4三角信号三角信号在MATLAB中用tripuls函数表示。调用格式为ft=tripuls(t,width,skew),产生幅度为1,宽度为width,且以0为中心左右各展开width/2大小,斜度为skew的三角波。width的默认值是1,skew的取值范围是-1~+1之间。一般最大幅度1出现在t=(width/2)*skew的横坐标位置。t=-3:0.01:3;ft=tripuls(t,4,0.5);plot(t,ft);gridon;axis([-3,3,-0.5,1.5]);例1-5虚指数信号调用格式是f=exp((j*w)*t)t=0:0.01:15;w=pi/4;X=exp(j*w*t);Xr=real(X);%取实部Xi=imag(X);%取虚部Xa=abs(X);%取模Xn=angle(X);%取相位subplot(2,2,1),plot(t,Xr),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('实部');subplot(2,2,3),plot(t,Xi),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('虚部');subplot(2,2,2),plot(t,Xa),axis([0,15,0,max(Xa)+1]),title('模');subplot(2,2,4),plot(t,Xn),axis([0,15,-(max(Xn)+1),max(Xn)+1]),title('相角');%subplot(m,n,i)命令是建立m行n列画图窗口,并指定画图位置i例1-6复指数信号调用格式是f=exp((a+j*b)*t)t=0:0.01:3;a=-1;b=10;f=exp((a+j*b)*t);subplot(2,2,1),plot(t,real(f)),title('实部')subplot(2,2,3),plot(t,imag(f)),title('虚部')subplot(2,2,2),plot(t,abs(f)),title('模')subplot(2,2,4),plot(t,angle(f)),title('相角')例1-7矩形脉冲信号矩形脉冲信号可用rectpuls函数产生,调用格式为y=rectpuls(t,width),幅度是1,宽度是width,以t=0为对称中心。t=-2:0.01:2;width=1;ft=2*rectpuls(t,width);plot(t,ft)gridon;例1-8单位阶跃信号单位阶跃信号u(t)用“t=0”产生,调用格式为ft=(t=0)t=-1:0.01:5;ft=(t=0);《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院plot(t,ft);gridon;axis([-1,5,-0.5,1.5]);例1-9正弦信号符号算法symst%定义符号变量ty=sin(pi/4*t)%符号函数表达式ezplot(y,[-16,16])%符号函数画图命令或者f=sym('sin(pi/4*t)')%定义符号函数表达式ezplot(f,[-16,16])例1-10单位阶跃信号MATTLAB符号数学函数Heaviside表示阶跃信号,但要画图需在工作目录创建Heaviside的M文件functionf=Heaviside(t)f=(t0);保存,文件名是Heaviside,调用该函数即可画图,例t=-1:0.01:3;f=heaviside(t);plot(t,f)axis([-1,3,-0.2,1.2])或者y=sym('Heaviside(t)');ezplot(y,[-1,5]);gridon(2)离散信号的MATLAB表示例1-11单位脉冲序列单位脉冲序列的表达式:延迟ks的单位脉冲序列表达式:其余kkk,00,1)(其余kkkkkkxss,0,1)()(1%单位脉冲序列m文件clear,k0=0;kf=10;ks=3;%本例取ks=3,k1=k0:kf;x1=[zeros(1,ks-k0),1,zeros(1,kf-ks)];%单位脉冲序列的产生stem(k1,x1,′.′);title(′单位脉冲序列′)%绘图例1-12单位阶跃序列单位阶跃序列的表达式:延迟ks的单位阶跃序列表达式:%本例取ks=3。单位阶跃序列m文件clear,k0=0;kf=10;ks=3;k2=k0:kf;x2=[zeros(1,ks-k0),ones(1,kf-ks+1)];%单位阶跃序列的产生stem(k2,x2,'.');title('单位阶跃序列')%绘图0001kkkssskkkkkkkx,0,12-《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院例1-13复指数序列复指数序列的表达式:若ω=0,它是实指数序列;若α=0,则为虚指数序列,其实部为余弦序列,虚部为正弦序列。本例取α=-0.2,ω=0.5,该复指数序列的实部和虚部如图所绘,其m文件如下%复指数序列m文件clear,k0=0;kf=20;ks=3;k3=k0:kf;x3=exp((-0.2+0.5j)*k3);%复指数序列的产生subplot(1,2,1),stem(k3,real(x3),′.′);line([0,10],[0,0])%绘图xlabel(′实部′)subplot(1,2,2),stem(k3,imag(x3),′.′);line([0,10],[0,0])%绘图xlabel(′虚部′)2.信号基本运算的MATLAB实现信号基本运算是乘法、加法、尺度、反转、平移、微分、积分,实现方法有数值法和符号法.例1-14以f(t)为三角信号为例,求f(2t),f(2-2t)t=-3:0.001:3;ft=tripuls(t,4,0.5);subplot(3,1,1);plot(t,ft);gridon;title('f(t)');ft1=tripuls(2*t,4,0.5);subplot(3,1,2);plot(t,ft1);gridon;title('f(2t)');ft2=tripuls(2-2*t,4,0.5);subplot(3,1,3);plot(t,ft2);gridon;title('f(2-2t)');0003kkekxk《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院-3-2-1012300.51f(t)-3-2-1012300.51f(2t)-3-2-1012300.51f(2-2t)例1-15已知f1(t)=sinwt,f2(t)=sin8wt,w=2pi,求f1(t)+f2(t)和f1(t)f2(t)的波形图w=2*pi;t=0:0.01:3;f1=sin(w*t);f2=sin(8*w*t);subplot(211)plot(t,f1+1,':',t,f1-1,':',t,f1+f2)gridon,title('f1(t)+f2(t))')subplot(212)plot(t,f1,':',t,-f1,':',t,f1.*f2)gridon,title('f1(t)*f2(t)')《MATLAB&信号与系统》实验指导书乐山师范学院.物理与电子工程学院00.511.522.53-2-1012f1(t)+f2(t))00.511.522.53-1-0.500.51f1(t)*f2(t)离散序列的差分与求和离散序列的差分,在MATLAB中用diff函数实现,其调用格式为:y=diff(f)离散序列的求和21)(kkkf与信号相加运算不同,求和运算是把k1和k2之间的所有样本f[k]加起来,在MATLAB中用sum函数实现,其调用格式
本文标题:MATLAB与信号与系统实验指导书(李敏.教改版)
链接地址:https://www.777doc.com/doc-6242849 .html