




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 信号卷积的MATLAB实现一、实验名称: 信号卷积的MATLAB实现二、实验目的:1.增加学生对卷积的认识2.了解MATLAB这个软件的一些基础知识3.利用MATLAB计算信号卷积4.验证卷积的一些性质三、实验原理:用MATLAB实现卷积我们先必须从信号下手,先把信号用MATLAB语句描述出来,然后再将这些信号带入到我们写好的求卷积的函数当中来计算卷积。在本章中我们将信号分为连续信号和离散序列两种来实现卷积并验证卷积的一些性质。MATLAB强大的图形处理功能及符号运算功能,为我们实现信号的可视化提供了强有力的工具。在MATLAB中通常有两种方法来表示信号,一种是用向量来表示信号,另一种则是用符号运算的方法来表示信号。用适当的MATLAB语句表示出信号后,我们就可以利用MATLAB的绘图命令绘制出直观的信号波形。连续时间信号,是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干不连续点以外,信号都有确定的值与之对应的信号。从严格意义上来讲,MATLAB并不能处理连续信号,在MATLAB中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB中连续信号可用向量或符号运算功能来表示。1向量表示法对于连续时间信号f(t),我们可以用两个行向量f和t来表示,其中向量t是行如tt1:p:t2的MATLAB命令定义的时间范围向量,t1为信号起始时间,t2为中止时间,p为时间间隔。向量f为连续信号f(t)在向量t所定义的时间点上的样值。例如对于连续信号f(t)=sin(t),我们可以用如下两个向量来表示:t=-10:1.5:10; f=sin(t)用上述向量对连续信号表示后,就可以用plot命令来绘出该信号的时域波形。Plot命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的图形就成了光滑的曲线。命令如下:plot(t,f)title(f(t)=sint)xlabel(t)axis(-10,10,-1.1,1.1)绘制的信号波形如图3.1所示,当把时间间隔p取得更小(如0.01)时,就可得到sint较好的近似波形,如图3.2所示。 图3.1 p=1.5的sint近似波形 图3.2 p=0.01的sint近似波形2符号运算表示法如果信号可以用一个符号表达式来表示它,则我们可用ezplot命令绘制出信号的波形。例如对于连续信号f(t)= ,我们可以用符号表达式表示为:syms tfsym(exp(-t/2)f= exp(-t/2)然后用ezplot命令绘制其波形:ezplot(f,-6, 6)该命令绘制的信号波形如图3.3所示图3.3 指数信号波形 利用上面两种表达方式我们可以描述出很多种连续信号,常用的信号有:阶跃信号,门信号,斜线信号,指数信号等等。接下来我们看看离散时间信号,一般说来,离散时间信号用f(k)表示,其中变量k为整数,代表离散的采样时间点。f(k)可表示为:f(k)=.f(-2),f(-1),f(0),f(1),f(2) k0在MATLAB中,用一个向量f即可表示一个有限长度的序列。但是,这样的向量并没有包含其对应的时间序号信息。所以,要完整地表示一个离散信号需要用两个向量。如序列: f(k)=1,2,-1,3,2,4,-1 k=0在MATLAB中应表示为:k=-3,-2,-1,0,1,2,3或是k-3:3;f= 1, 2,-1, 3, 2, 4,-1在用MATLAB表示离散序列并将其可视化时,我们要注意以下几点:第一,与连续时间信号不同,离散时间信号无法用符号运算来表示;第二,由于在MATLAB中,矩阵的元素个数是有限的,因此,MATLAB无法表示无限序列;第三,在绘制离散信号波形时,要使用专门绘制离散数据的stem命令,而不是plot命令。如对于上面定义的二向量f和k,可用如下stem命令绘图:stem (k, f),得到对应序列波形图,如图3.4所示。图3.4 随机序列的波形同样的,单位阶跃序列,正弦序列,离散时间指数序列等的离散信号我们都可以用类似的方法描述并绘制出图形。信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。我们就分别介绍连续时间信号和离散时间信号的各种时域变换。1、连续信号的时域变换如前所述,MATLAB可以有两种方法来表示连续信号。用这两种方法均可实现连续信号的时域变换,但用符号运算的方法则较为简便。(1)移位对于连续信号f(t),若有常数t00,延时信号f(t-t0)是将原信号沿正t轴方向平移时间t0,而f(t+t0)是将原信号沿负t轴方向移动时间t0。我们可用下面的命令来实现连续信号的平移及其结果可视化,其中f是用符号表达式表示的连续时间信号,t是符号变量,subs命令则将连续信号中的时间变量t用tt0替换:y=subs(f,t,t-t0); ezplot(y)(2)反折连续信号的反折,是指将信号以纵坐标为轴反折,即将信号f(t)中的自变量t换为t。实现如下:y=subs(f,t,-t); ezplot(y)(3)尺度变换连续信号的尺度变换,是指将信号的横坐标进行展宽或压缩变换,即将信号f(t)中的自变量t换为at,当a1时,信号f(at)以原点为基准,沿横轴压缩到原来的1/a;当0a1时,就展宽至原来的1/a倍。实现如下:y=subs(f,t,*t); ezplot(y)(4)倒相连续信号的倒相是指将信号f(t)以横轴为对称轴对折得到f(t)。实现如下:y=-f; ezplot(y)对于以上的命令,可在画图命令之后加入坐标轴的调整的命令(即加入axis( )命令),以使画出的图形更清晰、直观。2、离散时间序列的时域变换 与连续信号不同的是,在MATLAB中,离散序列的时域变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的变换需表示成两个向量的变换。1)离散序列反折离散序列的反折,即是将表示离散序列的两向量以零时刻的取值为基准点,以纵轴为对称轴反折,向量的反折可用MATLABA中的fliplr函数来实现,具体实现如下:function f,k=lsfz(f1,k1)f=fliplr(f1);k=-fliplr(k1); %调用此函数实现向量f1和k1的反折stem(k,f,filled)axis(min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5)2)离散序列的平移离散序列的平移可看作是将离散序列的时间序号向量平移,而表示对应时间序号点的序列样值不变,当序列向左移动k0个单位时,所以时间序号向量都减小k0个单位,反之则增加k0个单位。实现如下:function f,k=lsyw(ff,kk,k0)k=kk+k0;f=ff;stem(k,f,filled)axis(min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5)3)离散序列的倒相离散序列的倒相可看作是将表示序列样值的向量取反,而对应的时间序号向量不变,得到的离散时间序列。实现如下:function f,k=lsdx(ff,kk)f=-ff;k=kk;stem(k,f,filled)axis(min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5)这些时域变换,我们可以把我们在第一节中描述过的信号带入其中,来看看信号时域变换的结果如何。除此以外,我们通过时域变换也可以锻炼我们描述信号的能力,一些复杂信号,往往都是一些简单信号经过一系列的时域变换得到。前面的内容,其实是给以下的学习做的准备,我们在了解如何描述信号以后,接下来就只要把信号带入卷积运算中就可以了。在MATLAB中,conv( )函数可以帮助我们快速求出两个离散序列的卷积和。conv函数的调用格式为:fconv(f1,f2)其中f1为包含序列f1(k)的非零样值点的行向量,f2为包含序列f2(k)的非零样值点的行向量,向量f则返回序列f(k)=f1(k)*f2(k)的所有非零样值点行向量。在求信号卷积之前,我们先来看看在MATLAB中conv( )这个程序是如何来实现的。我们可以通过看它的流程图来了解,流程图如图3.5所示:图3.5 conv( )函数流程图由于conv是针对离散时间序列的函数,我们先从离散的信号入手12。1、离散时间信号的卷积我们试举一例来看conv的功能,已知序列f1(k)和f2(k)如下所示:f1(k)=1,(0k2) f2(k)=k,(0k3)则调用conv( )函数求上述两序列的卷积和的MATLAB命令为:f1=ones(1,3);f2=0:3;f=conv(f1,f2)运行结果为:f013653由这个例子可以看出,函数conv( )不需要给定序列f1(k)和f2(k)非零样值点的时间序号,也不返回序列f(k)=f1(k)*f2(k)的非零样值点的时间序号。因此,要正确地标识出函数conv( )的计算结果向量f,我们还必须构造序列f1(k)、f2(k)及f (k)的对应序号向量。我们可以看出f(k)的序号向量k是由序列f1(k)和f2(k)的非零样值点的起始序号及他们的时域宽度决定的。在此,我们自己可以构造一个实用一点的函数dconv( ),该函数实现的功能为:可以在计算出卷积f (k)的同时,还可以绘出序列f1(k)、f2(k)及f (k)在时域内的波形图。并返回f (k)的非零样值点的对应向量。程序如下所示:function f,k=dconv(f1,f2,k1,k2)%the function of compute f=f1*f2%f: 卷积序列f(k)对应的非零样值向量%k: 序列f(k)的对因序号向量%f1: 序列f1(k)非零样值向量%f2: 序列f2(k)非零样值向量%k1: 序列f1(k)的对应序号向量%k2: 序列f2(k)的对应序号向量f=conv(f1,f2) %计算序列f1与f2的卷积和fk0=k1(1)+k2(1); %计算序列f非零样值的起点位置k3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度k=k0:k0+k3 %确定卷积和f非零样值的序号向量 subplot(2,2,1)stem(k1,f1) %在子图1绘序列f1(k)时域波形图title(f1(k)xlabel(k)ylabel(f1(k)subplot(2,2,2)stem(k2,f2) %在子图2绘序列f2(k)时波形图title(f2(k)xlabel(k)ylabel(f2(k)subplot(2,2,3)stem(k,f); %在子图3绘序列f(k)的波形图title(f1(k)与f2(k)的卷积和f(k)xlabel(k)ylabel(f(k)对于下面两个离散序列,我们可以调用dconv( )函数来求离散序列的卷积。MATLAB命令如下:f1=1 2 -1 -3 -2 4 ;k1=1:6;f2=ones(1,5);k2=-2:2; %f1,f2两个信号的向量表示f,k=dconv(f1,f2,k1,k2) %子函数调用运行程序可以绘制出波形图如图3.6所示。图3.6 离散序列的卷积需要注意的是,调用conv( )函数计算序列卷积时,该函数将向量f1和f2以外的序列样值均视为零,因此,当序列f1(k)或f2(k)为无限长序列时调用conv( )函数就可能出现误差。如果碰到无限长序列时候,我们必须将其截断才能求带入到conv( )函数中。此时,函数将把截断区域外的区间视为零,故conv( )计算出的卷积只有部分是真实的。2、连续信号的卷积在第一章中我们对连续信号的卷积(卷积积分)做了分析,卷积积分运算实际上可用信号的分段求和来实现。用MATLAB实现连续信号f1(t)与f1(t)卷积的过程如下:1将连续信号f1(t)与f1(t)以时间间隔进行取样,得到离散序列f1(k)与f1(k);2构造与f1(k)和f1(k)相对应的时间向量k1和k2(注意,此时时间序号向量k1和k2的元素不再是整数,而是取样时间间隔的整数倍的时间间隔点);3调用conv( )函数计算卷积积分f(t)的近似向量f(n);4构造f(n)对应的时间向量k。根据以上步骤我们自己可以比较容易写出求连续信号卷积的函数程序sconv( ),该函数实现的功能为:在计算连续信号的卷积的同时绘出信号及卷积结果的波形,程序如下:function f,k=sconv(f1,f2,k1,k2,p)%计算连续信号卷积积分f(t)=f1(t)*f2(t)%f: 卷积积分f(t)对应的非零样值向量%k: f(t)的对应时间向量%f1: f1(t)的非零样值向量%f2: f2(t)的非零样值向量%k1: f1(t)的对应时间向量%k2: f2(t)的对应时间向量%p: 取样时间间隔f=conv(f1,f2); %计算需要序列f1与f2的卷积和f f=f*p; %将f进行采样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) %在子图1绘f1(t)时域波形图title(f1(t)xlabel(t)ylabel(f1(t)subplot(2,2,2)plot(k2,f2) %在子图2绘f2(t)时域波形图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)给定下面两个连续信号,我们调用sconv( )函数来求两连续信号的卷积。f1(t)=2U(t)-U(t-4) f2(t)=U(t)-U(t-2)MATLAB命令如下:p=0.01;k1=0:p:4; f1=2*ones(1,length(k1)k2=0:p:2; f2=ones(1,length(k2) %f1,f2两个信号的向量表示f,k=sconv(f1,f2,k1,k2,p) %子函数调用运行程序,绘制卷积结果波形如图3.7所示。图3.7 连续时间信号的卷积为了能比较熟练的运用MATLAB计算卷积,我们可以将我们比较熟悉的信号都带入到上面的程序中去,当然也可以自己描述一些信号来求其卷积。四、实验设备:计算机 MATLAB软件五、实验的预习:1、认真阅读教科书中有关卷积的这部分内容,了解其原理和计算方法。2、了解MATLAB的相关知识,包括它的功能,简单的函数用法等等。六、实验内容及具体步骤:1在老师提示和引导下用 MATLAB 来表示常见信号打开电脑,双击桌面上的matlab6.5的快捷方式,进入到MATLAB界面,然后进入编辑界面【file】【new】,或者直接点击新建空白页按钮,可以看到出现一个命名为untitled的编辑窗口,这就是我们的程序输入窗口。我们先做准备工作,敲入一些简单的信号并输出,了解一下它的功能。常见连续信号的表示:阶跃信号 门信号 正弦信号 指数信号等等常见离散序列的表示:随机离散序列 单位阶跃序列 正弦序列 离散时间指数序列将描述各个信号的函数键入以后,保存到MATLAB根目录下的work文件夹中,并按照各个信号的性质进行命名。然后对各个函数运行一下,看是否和实际的函数一致。编译程序【debug】【run】,或者直接按F5就可以进行。程序不大,编译很快就会完成,成功的编译会出现名为figure的窗口,可以看到信号的波形。2针对一些信号做一下时域变换时域变换主要是在时域范围内对信号进行信号的平移、反折、倒相以及信号的尺度变换。1)、移位 y=subs(f,t,t-t0); ezplot(y)2)、反折 y=subs(f,t,-t); ezplot(y)3)、尺度变换 y=subs(f,t,a*t) ezplot(y)4)、倒相 y=-f ezplot(y)给定一个信号,对此信号做以上这些时域变换操作,将写好的程序保存到根目录work文件夹中,然后对程序进行编译运行,编译成功后,观察图形窗口中显示的波形与原来信号的波形之间的关系。对信号做时域的变换可以增加学生对MATLAB的认识,也可以巩固对信号的表示。同时我们也可以用这些变换来表示一些复杂的信号。3利用MATLAB计算两个信号的卷积在MATLAB中我们采用它自带的函数conv( )来对信号进行卷积1)、求离散序列的卷积 打开一个空白编辑窗口,先将要卷积的两个信号表示出来,然后将两个信号带入到conv( )函数中,键入画图命令stem( )函数。把写好的程序存入到MATLAB根目录下的work文件夹中,按F5进行编译运行。观察输出序列并记录下来。改变输入序列重做上面的实验,保存,编译,观察和记录输出序列。 同样观察波形在幅度和时域范围的变化。需要注意的是,调用conv( )函数计算序列卷积和时,该函数将向量f1和f2以外的序列样值均视为零,因此,当序列f1(k)或f2(k)为无限长序列时调用conv( )函数就可能会产生误差。所以我们必须对诬无限长序列进行截断到(1n),再调用conv( )函数。而conv( )函数会将0n以外均视为零,conv( )计算出的卷积和样值点只有部分是真是的。这里为了方便求解,把求卷积和过程和绘图命令写在同一个函数dconv中,在计算离散卷积时只要调用函数就可以了。2)、求连续信号的卷积打开一个空白编辑窗口,先将要卷积的两个信号表示出来,然后将两个信号带入到conv( )函数中,再敲入画图命令plot( )函数。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设施设备运行检测评估
- 2025浙江宁波市慈溪市机关事务管理局直属机关幼儿园招聘派遣制人员3人笔试备考题库及答案解析
- 2025医师定期考核试题及答案
- 2025下半年浙江舟山市属事业单位招聘工作人员27人笔试备考试题及答案解析
- 从细节处体现出高贵的礼仪品质
- 农学中的农村环境卫生管理政策解读
- 2025年老年医学常见病诊治考试答案及解析
- 2025年中医妇科常见病症诊疗考试答案及解析
- 2025年四川宜宾市筠连县事业单位引进81名高层次人才笔试高频难、易错点备考题库带答案详解
- 2025年城市污水处理厂智能化升级改造对城市基础设施的影响报告
- 人美版九年级上册初中美术全册教案
- GB/T 2820.7-2024往复式内燃机驱动的交流发电机组第7部分:用于技术条件和设计的技术说明
- 2023年法律职业资格《主观题》真题及答案
- 2024-2025学年安徽省八年级语文上册第一次月考试卷04
- 单位委托员工办理水表业务委托书
- 2026年全年日历表带农历(A4可编辑可直接打印)预留备注位置
- 2024年全国期货从业资格之期货投资分析考试历年考试题附答案
- 矿山生态修复监理工作资料编制内容和要求、施工监理主要工作程序框图、工程施工与监理表式
- 药店药剂师专业劳动合同
- 小菜园租赁合同范本
- DL-T1342-2014电气接地工程用材料及连接件
评论
0/150
提交评论