实验一 连续时间信号的Matlab表示与计算.doc_第1页
实验一 连续时间信号的Matlab表示与计算.doc_第2页
实验一 连续时间信号的Matlab表示与计算.doc_第3页
实验一 连续时间信号的Matlab表示与计算.doc_第4页
实验一 连续时间信号的Matlab表示与计算.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 连续时间信号的Matlab表示与计算 一、实验目的 1、初步学习MATLAB语言,熟悉MATLAB软件的基本使用。2、掌握用MATLAB描述连续时间信号方法,能够编写MATLAB程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。二、实验原理 连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点之外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。在MATLAB可视化绘图中,对于以t为自变量的连续信号,在绘图时统一用plot函数;而对n为自变量的离散序列,在绘图时统一用stem函数。 对于连续时间信号f(t),可用f、t两个行向量来表示。例:t=-10:1.5:10; f=sin(t)./ t ;可以产生t= -1010,间隔1.5的序列以及的值。用命令:plot(t,f)可得如下图形,显然显示效果较差,这是因为t的间隔过大,只要改变为:t=-10:0.5:10;可得图1.2。 图1.1 图1.21. 信号的时域表示方法MATLAB提供了大量用以生成基本信号的函数,比如最常用的指数信号、正弦信号等就是MATLAB的内部函数,即不需要安装任何工具箱就可以调用的函数。1.1单位阶跃信号u(t)function y=heaviside(t) %阶跃信号y = (t=0); % y = 1 for t 0, else y = 01.2单位冲激信号d(t)function chongji(t1,t2,t0) %冲激信号d(t- t0),t1和t2分为起始时间和终止时间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.1/dt)或function y = delta(t)dt = 0.01;y = (u(t)-u(t-dt)/dt;1.3指数信号指数信号在MATLAB中可以用exp函数表示,其调用形式为: y=A*exp(a*t)例如图1-3所示指数衰减信号的MATLAB源程序如下(取A=1,a=-0.4):%program7_1 Decaying expponential signalA=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;1.4正弦信号正弦信号和分别用MATLAB的内部函数cos和sin表示,其调用形式为: 例如图1-4所示MATLAB源程序如下(取A=1,): %program7_2 Sinusoidal signal A=1;w0=2*pi;phi=pi/6; t=0:0.01:8; ft=A*sin(w0*t+phi); plot(t,ft);grid on; 图1-3 单边指数衰减信号 图1-4 正弦信号除了内部函数外,在信号处理工具箱(Signal Processing Toolbox)中还提供了诸如抽样函数、矩形波、三角波、周期性矩形波和周期性三角波等在信号处理中常用的信号。1.5.抽样函数抽样函数Sa(t)在MATLAB中用sinc表示,其定义为: 其调用形式为: 例如图1-5所示抽样函数的MATLAB源程序如下: %program7_3 Sample function t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft);grid on;1.6矩形脉冲信号矩形脉冲信号在MATLAB中用rectpuls函数来表示,其调用形式为: 用以产生一个幅值为1、宽度为width、相对于t=0点左右对称的矩形波信号。该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围。width的默认值为1。例如图1-6所示以t=2T(即)为对称中心的矩形脉冲信号的MATLAB 源程序如下(取T=1): %program7-4 Rectangular pulse signal t=0:0.001:4; T=1; ft=rectpuls(t-2*T,2*T); plot(t,ft);grid on;axis(0 4 -0.5 1.5); 图1-5 抽样函数 图 1-6 矩形波信号周期性矩形波(方波)信号在MATLAB中用square函数来表示,其调用形式为: y=square(t,DUTY)用以产生一个周期为、幅值为的周期性方波信号,其中的DUTY参数表示占空比(dutycycle),即在信号的一个周期中正值所占的百分比。例如图1-7所示频率为30Hz的周期性方波信号的MATLAB源程序如下: %program1_7 Periodic rectangular pulse signal t=-0.0625:0.0001:0.0625; y=square(2*pi*30*t,75);%DUTY=75(percent) plot(t,y);axis(-0.0625 0.0625 -1.5 1.5);grid on;1.7三角波脉冲信号三角波脉冲信号在MATLAB中用tripuls函数来表示,其调用形式为: 用以产生一个最大幅度为1、宽度为width、斜度为skew的三角波信号。该函数的很坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围。斜度是一个介于-1和1之间的值,它表示最大幅度1出现所对应的横坐标位置,比如表示一个左右对称的三角波信号,最大幅度1出现在处;一般地,最大幅度1出现在的横坐标位置。例如图1-8所示三角的MATLAB源程序如下: %program7_6 Triangular pulse signal t=-3:0.001:3; ft=tripuls(t,4,0.5); plot(t,ft);grid on;axis(-3 3 -0.5 1.5); 图1-7 周期性方波信号 图1-8 三角波信号周期性方波信号在MATLAB中用sawtooth函数来表示,其调用形式为: 用以产生一个周期为、最大幅度为1、最小幅度为-1的周期性方波信号(锯齿波)信号,其中的参数表示最大幅度出现的位置:在一个周期内,信号从到时函数值是从-1到1线性增加的,而从到时函数值又是从1到-1线性递减的;在其他周期内依次类推。例如图1-9所示的周期性三角波信号的MATLAB源程序如下: %program1-9 Periodic triangular pulse signal t=-5*pi:pi/10:5*pi; x=sawtooth(t,0.5); plot(t,x);axis(-16 16 -1.5 1.5);grid on; 1.8一般周期性脉冲信号一般周期性脉冲信号在MATLAB中用pulstran函数来表示,其调用形式为: 该函数基于一个名为func的连续函数并以之为一个周期,从而产生一串周期性的连续函数(func函数可自定义)。该pulstran函数的 横坐标范围由向量t指定,而向量d用于指定周期性的偏移量(即各个周期的中心点),这样这个func函数会被计算length(d)次,并且整个pulstran函数的返回值实际上就相当于: 从而实现一个周期性脉冲信号的产生。Pulstran函数的更一般的调用形式为: 其中的p1,p2,.为需要传送给func函数的额外输入参数值(除时间变量t之外),如上述的Rectpuls函数需要width这个额外参数,tripuls函数需要width和skew这两个额外参数,即整个pulstran函数的返回值实际上相当于 : 例如图1-10所示周期性矩形脉冲信号和周期性三角波脉冲信号的MATLAB源程序如下: %program7_8 Periodic pulse generator T=0:1/1E3:1;% 1kHz sample freq for 1 sec D=0:1/3:1;% 3Hz repetition freq Y=pulstran(T,D,rectpuls,0.1); figure(1);plot(T,Y);grid on;axis(0,1,-0.1,1.1); T=0:1/1E3:1; % 1kHz sample freq for 1sec D=0:1/3:1;% 3Hz repetition freq Y=pulstran(T,D,tripuls,0.1,-1); figure(2);plot(T,Y);grid on;axis(0,1,-0.1,1.); 图1-10 周期性矩形脉冲信号和三角波脉冲信号2.连续信号的相加、相乘、时移、反转和尺度变换等基本运算(1)两个连续信号的相加在MATLAB中要实现两个连续信号f1(t)、f2(t)的相加,可用如下语句:x=symadd(f1,f2) 或 x=f1+f2 % x(t)= f1(t)+f2(t)(2)两个连续信号的相乘在MATLAB中要实现两个连续信号f1(t)、f2(t)的相乘,可用如下语句:x=symmul(f1,f2) 或 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)连续信号的反转对一个信号x(t)的反褶运算在数学上表示为:y (t)=x(-t) 使用MATLAB内部函数fliplr()来实现信号的反褶运算。其用法如下:y = fliplr(x):其中x为原信号x(t),而y则为x的时域反褶。而翻转后的信号的坐标则可由-fliplr(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)例1:信号f1(t)、 f2(t)如图1-11(a)、(b)所示,编制一个m文件,绘出f1(t)=e-0.5tu(t)-(t-2)、 f2(t)=sin(5pt)u(t)-u(t-2)、f1(-2t+1)、f1(t) f2(t-1)的波形。 图1-12解:实现所要求运算的m文件如下,syms tf1=sym(exp(-0.5*t)*(heaviside(t)-heaviside(t-2);f2=sym(sin(5*pi*t)*(heaviside(t)-heaviside(t-2);图1-11subplot(2,2,1),ezplot(f1);title(f1);subplot(2,2,2), ezplot(f2);title(f2);f3=subs(f1,t,-2*t+1); subplot(2,2,3);ezplot(f3);title(f3); f4=f1*subs(f2,t,t-1);subplot(2,2,4);ezplot(f4);title(f4); 运算结果如图1-11所示。其中,图1-11(a)、(b)、(c)、(d)分别为f1(t)、f2(t) 、f1(-t+1) 、f1(t) f2(t-1)的波形。例:对图1-12所示的三角波,利用MATLAB画出和的波形的程序如下:%program7_13 Changed triangular pulse signalt=-3:0.001:3;ft1=tripuls(2*t,4,0.5);subplot(2,1,1);plot(t,ft1);title(f(2t);grid on;ft2=tripuls(2-2*t),4,0.5);subplot(2,1,2);plot(t,ft2);title(f(2-2t);grid on;程序运行结果如图1-12所示。(6)连续信号的微分与积分 连续信号的微分可以用上述的diff函数;来近似计算。例如,y=(sin()=2xcos()可由下列MATLAB语句来近似实现:h=0.001;x=0:h:pi;y=diff(sin(x.2))/h;连续信号的定积分可由MATLAB中的quad函数(或quad8函数)来实现,其调用形式为:犬的(function_name,a,b)其中function_那么为被积函数名(.m文件名),a和b为指定的积分区间。 例如,对于图1-8所示的三角波f(t),要求利用MATLAB画出和的波形。为了便于利用quad函数来计算信号的积分,将图6所示的三角波写成MATLAB的函数,函数名为functri (相应的.m文件名为functri.m),程序如下:function yt=functri(t)yt=tripuls(t,4,0,5);然后利用diff和quad函数,并调用自编函数functri即可实现三角波信号f(t)的微分和积分,源程序如下:%progra

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论