您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 用MATLAB实现常用的连续时间信号及其时域运算
用MATLAB实现常用的连续时间信号及其时域运算信息与通信工程学院通信133班卢承慧一.引言1.要求:1.1用MATLAB语言产生连续时间信号1.2对连续时间信号进行时域运算2.任务:①绘制用于产生以下信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。调试并运行这些程序,具体产生由指导教师制定的信号并绘制信号波形。a.f(t)=δ(t-0t);b.f(t)=Au(t-0t)。②已知信号波形如图7.6所示,使用MATLAB语言求出下列信号的表达式并绘制出各信号波形。a.f(-t);b.f(t-2);c.f(1-2t)。图7.6任务②中的f(t)3.思考题编制一通用程序用于产生信号)()cos()(0ttutAetfat,要求对于任意给定的参数都能实现所要求的信号。二.基本原理1.1连续时间信号如果在所讨论的时间间隔内,除若干个不连续点之外,对于任意时间值都可以给出确定的函数值,此信号就称为连续信号。从严格意义上来讲,MATLAB不能处理连续时间信号。在MATLAB中,使用连续时间信号在等时间间隔点的样值来近似表示连续时间信号的。当取样时间间隔足够小时,这些离散的样值就能较好的近似出连续时间信号。由于在MATLAB中,矩阵的元素个数是有限的,因此MATLAB无法表示无限序列。MATLAB的绘图命令有很多种,其中比较常用的绘制连续时间信号的绘图命令有“plot”,“stairs”,“ezplot”等。“plot”适用于绘制平滑的曲线,而“stairs”适合于绘制具有阶跃形式的图形,“ezplot”只能用于符号函数的绘图。1.2单位阶跃信号单位阶跃信号的波形图如图1所示,通常以符号u(t)表示)0(1)0(0)(tttu在跳变点t=0处,函数未定义,或在t=0处规定函数值u(0)=21。图1用MATLAB实现单位阶跃信号%t1:起始时刻;t2:终止时刻;t0:跳变时刻functionu(t1,t0,t2)t=t1:0.01:t2;%步长值越小,图形越精确n=length(t);tt=t0:0.01:t2;n1=length(tt);x=[zeros(1,n-n1),ones(1,n1)];%产生单位阶跃信号stairs(t,x),gridontitle('单位阶跃信号')axis([t1t2-0.21.1])%为方便波形顶部避开图框,改变图框坐标1.3单位冲激信号单位冲激信号是持续时间无穷小、瞬间幅度无穷大、涵盖面积恒1的理想信号。记为)(t,其表达式为)0t(0)(1)()(当tdtttf严格说来,MATLAB是不能表示单位冲击信号的,但我们可以用时间宽度为dt、高度为1/dt的矩形脉冲来近似地表示冲激信号。当dt趋近零时,就较好地近似出冲激信号的实际波形。用MATLAB实现单位冲激信号:cleart1=input('输入起始时刻t1=');t0=input('输入跳变时刻t0=');t2=input('输入终止时刻t2=');t=t1:0.001:t2;n=length(t);tt=t1:0.001:t0;n1=length(tt);x=zeros(1,n);x(n1)=1/0.001;plot(t,x),gridontitle('单位冲激信号')axis([t1t2-0.21.1])1.4连续时间信号的时域运算如前所述,MATLAB可以用向量或符号两种方法来表示连续信号,而只能用向量表示离散信号,单用符号运算的方法进行连续信号的时域运算较为方便。用MATLAB的符号运算命令来表示连续信号的时域运算,然后用“ezplot”命令绘制出其结果波形图。在下面的命令中,f,f1,f2都是用符号表达式表达的连续信号,s为运算结果信号的符号表达式,t0和a均为常数。1.4.1相加)()(21tftf1.4.2相乘)()(21tftf1.4.3平移,右移,左移00)()(000ttttftf若f(t)表达式的自变量t更换为(t+0t)(0t为正或负实数),则f(t+0t)相当于f(t)波形在t轴上的整体移动,当0t0时,波形左移,当0t0时,波形右移。1.4.4反褶)()(tftf信号反褶表示将f(t)的自变量t更换为-t,此时f(-t)的波形相当于将f(t)以t=0为轴反褶过来。1.4.5尺度扩展压缩1,a0,1)()(aatftf如果将信号f(t)的自变量t乘以正实系数a,则信号波形f(at)将是f(t)波形的压缩(a1)或扩展(a1)。相加:s=f1+f2,ezplot(s)相乘:s=f1*f2,ezplot(s)平移:s=subs(f,t,t-t0),ezplot(s)反褶:s=subs(f,t,-t),ezplot(s)尺度:s=subs(f,t,a*t),ezplot(s)三.实现方法论述具体实现方法及编程思路,以及具体程序的编制。1.任务①a.f(t)=δ(t-0t);编程思路:建立一个单位冲激信号,对该信号进行平移运算。代码如下:cleart1=input('输入起始时刻t1=');t0=input('输入跳变时刻t0=');t2=input('输入终止时刻t2=');t=t1:0.001:t2;n=length(t);tt=t1:0.001:t0;n1=length(tt);x=zeros(1,n);x(n1)=1/0.001;plot(t,x),gridontitle('单位冲激信号')axis([t1t2-0.21.1])b.f(t)=Au(t-0t);编程思路:建立一个单位阶跃信号,对该信号进行平移运算并乘以一个幅度值。代码如下:functionf=u(t)f=(t0);clearcloseallA=input('输入幅度值A=');t0=input('输入跳变值t0=');symstf=sym('u(t)');f1=A*f;y=subs(f1,t,t-t0)ezplot(y,[-3,3])2.任务②:编程思路:根据图7.6写出f(t)=2u(t)-u(t-1)-u(t-2),用符号运算命令来表示以下连续信号的时域运算,然后用“ezplot”命令绘制出其结果图。a.f(-t);b.f(t-2);c.f(1-2t)。代码如下:functionf=u(t)f=(t0);symstf=sym('2*u(t)-u(t-1)-u(t-2)');subplot(2,2,1),ezplot(f,[-3,3]),gridon,title('f(t)')y1=subs(f,t,-t);subplot(2,2,2),ezplot(y1,[-3,3]),gridon,title('f(-t)')y2=subs(f,t,t-2);subplot(2,2,3),ezplot(y2,[-3,3]),gridon,title('f(t-2)')y3=subs(f,t,1-2*t);subplot(2,2,4),ezplot(y3,[-3,3]),gridon,title('f(1-2t)')3.思考题编程思路:建立一个幅值为A的指数信号atAe,一个余弦信号)cos(t和一个平移值为0t的单位阶跃信号)(0ttu,然后对它们进行相乘运算。代码如下:四、结果验证任务①:a.f(t)=δ(t-0t);运行结果:图1图2b.f(t)=Au(t-0t);运行结果:图3图4任务②:a.f(-t);b.f(t-2);c.f(1-2t)。图5图63.思考题图7图8参考文献[1]郑君里,应启珩,杨为理.信号与系统引论.北京:高等教育出版社,2009.[2]李敏,陈兴文.信号分析与处理的软硬件实现.大连:海事大学出版社,2014.
本文标题:用MATLAB实现常用的连续时间信号及其时域运算
链接地址:https://www.777doc.com/doc-4213747 .html