您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 实验一连续信号的时域分析
实验一连续时间信号的时域和频域分析一.实验目的1.熟悉MATLAB软件平台;2.掌握MATLAB编程方法、常用语句和可视化绘图技术;3.编程实现常用信号及其运算MATLAB实现方法。4.编程实现常用信号的频域分析二.实验原理1、连续时间信号的描述(1)向量表示法连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点之外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。矩阵是MATLAB进行数据处理的基本单元,矩阵运算是MATLAB最重要的运算。通常意义上的数量(也称为标量)在MATLAB系统中是作为1×1的矩阵来处理的,而向量实际上是仅有一行或者一列的矩阵。通常用向量表示信号的时间取值范围,如t=-5:5,但信号x(t)、向量t本身的下标都是从1开始的,因此必须用一个与向量x等长的定位时间变量t,以及向量x,才能完整地表示序列x(t)。在MATLAB可视化绘图中,对于以t为自变量的连续信号,在绘图时统一用plot函数;而对n为自变量的离散序列,在绘图时统一用stem函数。(2)符号运算表示法符号对象(SymbolicObjects不同于普通的数值计算)是Matlab中的一种特殊数据类型,它可以用来表示符号变量、表达式以及矩阵,利用符号对象能够在不考虑符号所对应的具体数值的情况下能够进行代数分析和符号计算(symbolicmathoperations),例如解代数方程、微分方程、进行矩阵运算等。符号对象需要通过sym或syms函数来指定,普通的数字转换成符号类型后也可以被作为符号对象来处理.我们可以用一个简单的例子来表明数值计算和符号计算的区别:2/5+1/3的结果为0.7333(double类型数值运算),而sym(2)/sym(5)+sym(1)/sym(3)的结果为11/15,且这里11/15仍然是属于sym类型,是符号数。如果一个信号可以用符号表达式来表示,则可以通过符号函数专用绘图命令ezplot()函数来绘出信号的波形。2、常见信号的matlab描述(1)单位冲激信号(t)dirac()t=-10:0.01:10;plot(t,dirac(t))(2)单位阶跃信号u(t)t=-10:0.01:10;f1=heaviside(t)figure(1);plot(t,f1);f2=stepfun(t,0)figure(2)plot(t,f2);(3)门信号t=-10:0.01:10;figure(1);plot(t,heaviside(t+2)-heaviside(t-2));figure(2)plot(t,stepfun(t,-2)-stepfun(t,2));(4)符号函数sign()(5)正弦、余弦、指数信号:sin、cos、exp3.连续信号的相加、相乘、时移、反转和尺度变换等基本运算(1)两个连续信号的相加在MATLAB中要实现两个连续信号f1(t)、f2(t)的相加,可用如下语句:x=f1+f2%x(t)=f1(t)+f2(t)(2)两个连续信号的相乘在MATLAB中要实现两个连续信号f1(t)、f2(t)的相乘,可用如下语句:x=f1*f2%x(t)=f1(t)f2(t)(3)连续信号的平移要实现连续信号f(t)向右平移t0,MATLAB语句格式为:x=subs(f,t,t-t0)%x(t)=f(t-t0)(4)连续信号的反转要实现连续信号f(t)的反转,MATLAB语句格式为x=subs(f,t,-t)%x(t)=f(-t)(5)连续信号的尺度变换要实现连续信号f(t)的尺度变换,MATLAB语句格式为:x=subs(f,t,a*t)%x(t)=f(at)要实现连续信号f(t)的平移、尺度变换的综合运算,MATLAB语句格式为:x=subs(f,t,a*t-b)%x(t)=f(at-b)(6)连续信号的卷积运算由于MATLAB运算的特点,两个连续信号f1(t)、f2(t)的卷积f(t)=f1(t)*f2(t),用MATLAB实现的过程应为:A.将连续信号f1(t)、f2(t)以时间间隔Δ进行取样,得离散序列f1(k)、f2(k);B.构造f1(k)、f2(k)与相对应的时间向量k1和k2;C.调用conv()函数计算卷积积分f(t)的近似向量f(k);D.构造f(k)对应的时间向量k。下面是利用MATLAB实现连续信号卷积运算的通用函数sconv(),它在计算出卷积积分近似值的同时,还绘出f(t)的波形图。function[f,k]=sconv(f1,f2,k1,k2,p)%计算连续信号卷积积分f(t)=f1(t)*f2(t)%f:卷积积分f(t)对应的非零值向量%k:f(t)的对应时间向量%f1,f2:f1(t),f2(t)的非零样值向量%k1,k2:f1(t),f2(t)的对应时间向量%p:取样时间间隔f=conv(f1,f2);%计算序列f1,f2的卷积和ff=f*p;k0=k1(1)+k2(1);%计算序列f非零样值的起点位置k3=length(f1)+length(f2)-2;%计算卷积和f的非零样值的宽度k=k0:p:k3*p;%确定卷积和f非零样值的时间向量subplot(2,2,1);plot(k1,f1);title('f1(t)');xlabel('t');ylabel('f1(t)');subplot(2,2,2);plot(k2,f2);title('f2(t)');xlabel('t');ylabel('f2(t)');subplot(2,2,3);plot(k,f);%画出卷积f(t)的波形title('f(t)=f1(t)*f2(t))');xlabel('t');ylabel('f(t)');h=get(gca,'position');h(3)=2.5*h(3);set(gca,'position',h)%将第三个子图的横坐标扩展为原来的2.5倍4.信号的傅立叶变换与反变换1)直接调用专用函数法fourier()和ifourier()2)数值计算实现法近似计算三.实验内容1.调试例1-33、例1-34、例1-35和例1-36,分析说明各题采用什么实现方法及注意事项,然后不采用符号运算表示法而用函数heaviside()或stepfun()重新实现例1-35。2.调试例1-37,说明卷积积分的实现方法及注意事项。3.调试例1-38、例1-39、例1-40、例1-41和例1-42,分析说明各题采用什么实现方法及其注意事项。4.编制一个m文件,绘出f1(t)=e-0.5t[u(t)-u(t-2)]、f2(t)=sin(5πt)[u(t)-u(t-2)]、f1(-2t+1)、f1(t)×f2(t-1)的波形。5.已知f1(t)=e-t[u(t)-u(t-2)]、f2(t)=[u(t)-u(t-3)],编制一个m文件,绘出f1(t)、f2(t)的波形以及调用sconv()函数计算并画出f(t)=f1(t)*f2(t)的波形。6.编制一个m文件,求出抽样函数Sa(t)=sin(t)/t的傅立叶变换,并在一个窗口中画出抽样函数的时域波形和频谱图以及频谱函数反变换的波形。三.实验内容:1.调试例1-33、例1-34、例1-35和例1-36,分析说明各题采用什么实现方法及注意事项,然后不采用符号运算表示法而用函数heaviside()或stepfun()重新实现例1-35。例1-33closeall;%关闭打开的所有图形窗口clear;%清空环境变量clc;%清除当前command区域的命令t1=0:0.01:10;%定义时间t1的取值范围:0~10,取样间隔为0.01x1=sin(t1);%定义信号表达式,求出x1对应采样点上的样值figure(1);%打开图形窗口plot(t1,x1);%以t1为横坐标,x1为纵坐标绘制x1的图形gridon;t2=0:0.5:10;x2=cos(t2);holdon;plot(t2,x2);legend('sin','cos');%显示波形信息例1-34用plot实现连续函数的图像;Edit中不能有注释例1-34symst;%符号变量说明x=cos(t)/t;figure(1);ezplot(x,[-10,10]);%绘制图形,并且设置坐标轴显示范围用ezplot确定x轴范围例1-35symst;f=sym('heaviside(t+2)-3*heaviside(t-3)');%定义函数表达式ezplot(f,[-5,5]);例1-36closeall;clear;clc;t=-5:0.01:5;x=sign(t-3);%定义符号信号表达式,生成行向量xs1=1/2+1/2*x;%生成单位阶跃信号s1,信号是u(t-2)y=sign(t-3);s2=3*(1/2+1/2*y);figure(1);plot(t,s1-s2);gridon;axis([-5,5,-3,2.5]);定义坐标轴范围重做例1-35t=-5:0.01:5;figure(1)plot(t,heaviside(t+2)-3*heaviside(t-3));axis([-5,5,-5,5])2.调试例1-37,说明卷积积分的实现方法及注意事项。tspan=0.01;t1=0:tspan:3.5;%f1信号时间向量t1,时间范围为[0,3.5]st1len=length(t1);%f1信号时间向量t1的长度t2=0:tspan:3.5;t2len=length(t2);t3=0:tspan:(t1len+t2len-2)*tspan;生成两信号卷积结果的时间向量t3f1=[zeros(1,length([0:tspan:(1-0.01)])),3*ones(1,length([1:tspan:2])),zeros(1,length([2.01:tspan:3.5]))];%生成f1信号,其中时间[1,2]幅值为3,其他幅值为0f2=[zeros(1,length([0:tspan:(1-0.01)])),1*ones(1,length([1:tspan:3])),zeros(1,length([3.01:tspan:3.5]))];%生成f2信号,其中时间[1,3]幅值为1,其他幅值为0w=conv(f1,f2);%对f1和f2采样数组向量进行卷积w=w*tspan;%乘以时间间隔subplot(3,1,1);plot(t1,f2);title('f1信号波形');gridon;xlabel('时间t/s');axis([0704]);subplot(3,1,2);plot(t2,f2);title('f2信号波形');gridon;xlabel('时间t/s');axis([0702]);subplot(3,1,3);plot(t3,w);title('f1和f2信号卷积结果');xlabel('时间t');gridon;先建立函数再用conv函数实现卷积3.调试例1-38、例1-39、例1-40、例1-41和例1-42,分析说明各题采用什么实现方法及其注意事项。例1-38symstauwGt=sym('2*(heaviside(tau+1)-heaviside(tau-1))');Fw=fourier(Gt,tau,w);对门函数作傅里叶变换ezplot(Fw,[-10*pi10*pi]);axis([-10*pi10*pi-15]);gridon;例1-39symstvwx;x=1/2*exp(-2*t)*sym('heaviside(t)');F=fourier(x);subplot(2,1,1);ezplot(x);subplot(2,1,2);ezplot('abs(F)');例1-40R=0.1;t=-2:R:2;ft=[zeros(1,10),ones(1,21),zeros(1,10)];W1=10*p
本文标题:实验一连续信号的时域分析
链接地址:https://www.777doc.com/doc-5562092 .html