收藏 分销(赏)

实验1-信号的时域描述与运算.doc

上传人:快乐****生活 文档编号:3561705 上传时间:2024-07-09 格式:DOC 页数:15 大小:292KB 下载积分:8 金币
下载 相关 举报
实验1-信号的时域描述与运算.doc_第1页
第1页 / 共15页
实验1-信号的时域描述与运算.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
实验1 信号的时域描述与运算 一、实验目的 1. 掌握信号的MATLAB表示及其可视化方法。 2. 掌握信号基本时域运算的MATLAB实现方法。 3. 利用MATLAB分析常用信号,加深对信号时域特性的理解。 二、实验原理与方法 1. 连续时间信号的MATLAB表示 连续时间信号指的是在连续时间范围内有定义的信号,即除了若干个不连续点外,在任何时刻信号都有定义。在MATLAB中连续时间信号可以用两种方法来表示,即向量表示法和符号对象表示法。 从严格意义上来说,MATLAB并不能处理连续时间信号,在MATLAB中连续时间信号是用等时间间隔采样后的采样值来近似表示的,当采样间隔足够小时,这些采样值就可以很好地近似表示出连续时间信号,这种表示方法称为向量表示法。表示一个连续时间信号需要使用两个向量,其中一个向量用于表示信号的时间范围,另一个向量表示连续时间信号在该时间范围内的采样值。例如一个正弦信号可以表示如下: >> t=0:0.01:10; >> x=sin(t); 利用plot(t,x)命令可以绘制上述信号的时域波形,如图1所示。 如果连续时间信号可以用表达式来描述,则还可以采用符号表达式來表示信号。例如对于上述正弦信号,可以用符号对象表示如下: >>syms t; >> x=sin(t); 利用ezplot(x)命令可以绘制上述信号的时域波形,如图2所示: 图 1 图表 2 matlab提供了一些函数用于常用信号的产生,例如阶跃信号、脉冲信号、指数信号、正弦信号等,表中列出了一些常用的基本函数。 常用的信号产生函数 函数名 功能 函数名 功能 heaviside 单位阶跃函数 rectpuls 门函数 sin 正弦函数 tripuls 三角脉冲函数 cos 余弦函数 square 周期方波 sinc sinc函数 sawtooth 周期锯齿波或三角波 exp 指数函数 2.连续时间信号的时域运算 对连续时间信号的运算包括两信号相加、相乘、微分、积分,以及位移、反转、尺度变换(尺度伸缩)等。 1)相加和相乘 信号相加和相乘指两信号对应时刻的值相加和相乘,对于两个采用向量表示的可以直接使用算术运算的运算符“+”和“*”来计算,此时要求表示两信号的向量时间范围和采样间隔相同。采用符号对象表示的两个信号,可以直接根据符号对象的运算规则运算。 2)微分和积分 对于向量表示法表示的连续时间信号,可以通过数值计算的方法计算信号的微分和积分。这里微分使用差分来近似求取的,由时间向量[]和采样值向量[]表示的连续时间信号,其微分可以通过下式求得 其中表示采样间隔。MATLAB中用diff函数来计算差分。 连续时间信号的定积分可以由MATLAB的qud函数实现,调用格式为 quad (‘function_name',a,b) 其中,function_name为被积函数名,a、b为积分区间。 对于符号对象表示的连续时间信号,MATLAB提供了diff函数和quad函数分别用于求微分和积分。 3)移位、反转和尺度变化 信号的移位:信号x(t)的自变量t更换为(t-t0),表示x(t)波形在t轴上整体移动,当t0<0整体左移。 信号的反转:信号x(t)的自变量t更换为-t,x(t)的波形相当于以t=0为轴反转过来。 信号的尺度变换:信号x(t)的自变量t更换为at,x(at)表示信号压缩(a>0)或拉伸(a<0)。 3.离散时间信号的MATLAB表示 离散时间信号仅在一些离散时刻有定义。在MATLAB中离散时间信号需要使用两个向量来表示,其中一个向量用于表示离散的时间点,另一个向量表示在这些时间点上的值。例如对于如下时间信号 采用MATLAB可以表示如下: >> n=-3:4; >> x=[-3 2 -1 2 1 -1 2 3]; >> stem(n,x,'filled'); >> xlabel('n'); >> title('x(n)'); Stem函数用于绘制离散时间信号波形,为了与我们表示离散时间信号的习惯相同,在绘图时一般需要添加‘filled’选项,以绘制实心的杆状图形。上述命令绘制的信号时域波形如图3所示。 图表 3 4.离散时间信号的时域运算 离散时间信号的相加相乘是将两个信号对应的时间点上的值相加或相乘,可以直接使用算术运算的运算符“+”和“*”来计算。 离散时间信号的位移,则可看作是将表示时间的向量平移,而表示对应时间点上的值的向量不变。 离散时间信号的反转,则可以看作是将表示时间的向量和表示对应时间点上的值的向量以零点为基准点,一纵轴为对称轴反折,向量的反折可以利用MATLAB的fliplr函数实现。 三、实验内容 (1)利用MATLAB绘制下列连续时间信号波形: 用ezplot函数可直接绘制连续时间波形信号。 ① 实验过程与实验结果: matlab程序如下: >> syms t; >> x=(1-exp(-0.5*t)).*heaviside(t); >> ezplot(x) 上述程序的运行结果为: ② 实验过程与实验结果: matlab程序如下: >> syms t; >> x=cos(pi*t).*(heaviside(t)-heaviside(t-2)); >> ezplot(x) 上述程序的运行结果为: ③ 实验过程与实验结果: matlab程序如下: >> syms t; >> x=abs(t)/2.*cos(pi*t).*(heaviside(t+2)-heaviside(t-2)); >> ezplot(x) 上述程序的运行结果为: ④ 实验过程与实验结果: matlab程序如下: >> syms t; >> x=exp(-t).*sin(2*pi*t).*(heaviside(t)-heaviside(t-3)); >> ezplot(x) 上述程序的运行结果为: (2)利用MATLAB绘制下列离散时间信号波形: 用stem函数可直接绘制离散时间波形信号。 ① 实验过程与实验结果: matlab程序如下: >> t=0:1:10; >> x=heaviside(t-3); >> stem(t,x,'filled') 上述程序的运行结果为: ② 实验过程与实验结果: matlab程序如下: n=-3:10; x=(-1/2).^n.*heaviside(n); stem(n,x,'filled') 上述程序的运行结果为: ③ 实验过程与实验结果: matlab程序如下: n=-3:10; x=(-1/2).^n.*heaviside(n); stem(n,x,'filled') 上述程序的运行结果为: ④ 实验过程与实验结果: matlab程序如下: n=-5:10; x=sin(n.*pi./2).*heaviside(n); stem(n,x,'filled') 上述程序的运行结果为: (3)利用MATLAB生成并绘制连续周期矩形波信号,要求周期为2,峰值为3,显示三个周期的波形。 实验过程与实验结果: 利用square函数可以生成矩形波。 matlab程序如下: t=0:0.01:6; x=3.*square(t.*pi); plot(t,x) axis([t(1) t(end) -4 4]) 上述程序的运行结果为: (4)已知信号,及信号,用MATLAB绘出下列信号的波形:(由教材上的波形可知为一个三角波的右半部分。) ① 实验过程与实验结果: 是由两波形叠加得到的 matlab程序如下: syms t; x1=(-t+4).*(heaviside(t)-heaviside(t-4)); x2=sin(2.*pi.*t); z=x1+x2; ezplot(z) 上述程序的运行结果为: ② 实验过程与实验结果: 是由两波形相乘得到的 matlab程序如下: syms t; x1=(-t+4).*(heaviside(t)-heaviside(t-4)); x2=sin(2.*pi.*t); z=x1.*x2; ezplot(z) 上述程序的运行结果为: ③ 实验过程与实验结果: 是由反转再与叠加得到的 matlab程序如下: syms t; x1(t)=(-t+4).*(heaviside(t)-heaviside(t-4)); x2(t)=sin(2.*pi.*t); z=x1(-t)+x1; ezplot(z) 上述程序的运行结果为: ④ 实验过程与实验结果: 是由右移1后再与相乘得到的 matlab程序如下: syms t; x1(t)=(-t+4).*(heaviside(t)-heaviside(t-4)); x2(t)=sin(2.*pi.*t); x3(t)=x1(t)+x2(t); z=x2(t)*x3(t-1); ezplot(z) axis([-2 5 -3 6]) 上述程序的运行结果为: (5)已知离散时间信号,用MATLAB绘出、、和的波形。(由教材上的波形可知) matlab程序如下: n=-3:4; x=[0 1 2 3 3 3 3 0]; subplot(221); stem(n,x,'filled'); xlabel('n'); title('x(n)'); n1=-fliplr(n); x1=fliplr(x); subplot(222); stem(n1,x1,'filled'); xlabel('n'); title('x(-n)'); n2=n-2; subplot(223); stem(n2,x,'filled'); xlabel('n'); title('x(n+2)'); n3=n+2; subplot(224); stem(n3,x,'filled'); xlabel('n'); title('x(n-2)'); 上述程序的运行结果为: (6)用MATLAB编程绘制下列信号的时域波形,观察信号是否为周期信号?若是周期信号,周期是多少?若不是周期信号,请说明原因。 ① 实验过程与实验结果: matlab程序如下: t=-10:0.01:10; x=1+cos((pi/4)*t-pi/3)+2*cos((pi/2)*t-pi/4)+cos(2*pi*t); plot(t,x); xlabel('t'); title('x(t)'); 上述程序的运行结果为: 该信号是周期信号,周期T=8。 ② 实验过程与实验结果: matlab程序如下: t=-15:0.01:15; x=sin(t)+2*sin(pi*t); plot(t,x); xlabel('t'); title('x(t)'); 上述程序的运行结果为: 该信号不是周期信号。因为:是周期为的的周期信号,是周期为2的周期信号,但是是无理数,故 为非周期信号。 ③ 实验过程与实验结果: matlab程序如下: n=-3:7; x=2+3.*sin(2.*n.*pi./3-pi./8); stem(n,x,'filled'); xlabel('n'); title('x(n)'); 上述程序的运行结果为: 该信号是周期信号,周期T=3。 ④ 实验过程与实验结果: matlab程序如下: n=-15:15; x=cos(n.*pi./6)+sin(n.*pi./3)+cos(n.*pi./2); stem(n,x,'filled'); xlabel('n'); title('x(n)'); 上述程序的运行结果为: 该信号是周期信号,周期T=12。 四、体会和建议 这次实验是我第一次动手使用MATLAB,第一次感受到MATLAB是一款功能强大,有助于分析解决问题的数学工具,尤其是在对信号的分析上。在实验的同时,我又重拾信号与系统的基础知识,对信号与系统这门课程的一些知识点有了形象化的认知,提高了我对信号与系统这门课程的兴趣,第一次实验不是很困难,增强了我学好用好MATLAB的信心。 建议:在进行实验前期,我们只听过一堂关于使用这个软件的理论课,对于软件的使用不是很顺手,在实验时浪费了很多的时间,希望以后的第一堂课,由老师先带领我们熟悉实验系统,然后进行实验,可以帮助我们更快进入实验状态。 (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服