卷积积分与离散卷积--方波序列和方波序列的卷积及卷积过程演示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1引言
信号的卷积是针对时域信号处理的一种分析方法,信号的卷积一般用于求取信号通过某系统后的响应。
在信号与系统中,我们通常求取某系统的单位冲激响应,所求得的h(k)可作为系统的时域表征。
任意系统的系统响应可用卷积的方法求得。
离散时间信号是时间上不连续的“序列”,因此,激励信号分解为脉冲序列的工作就很容易完成,对应每个样值激励,系统得到对此样值的响应。
每一响应也是一个离散时间序列,把这些序列叠加既得零状态响应。
因为离散量的叠加无需进行积分,因此,叠加过程表现为求“卷积和”。
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
本课程设计就是利用LabVIEW软件来实现方波序列卷积的过程,然后对方波序列移位过程进行演示,通过卷积过程演示和卷积和的波形图可以看出,方波序列的幅值大小不会影响卷积和的宽度而方波序列的宽度大小就会影响卷积序列相交部分的范围宽度即卷积宽度。
通过labview你能直观清晰地观察卷积的过程。
2虚拟仪器开发软件LabVIEW8.2入门
2.1 LabVIEW介绍
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定VI及函数的执行顺序。
VI指虚拟仪器,是 LabVIEW]的程序模块。
LabVIEW 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在 LabVIEW中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G代码。
LabVIEW ]的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
LabVIEW集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX 等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
图形化的程序语言,又称为“G” 语言。
使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。
它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW 是一个面向最终用户的工具。
它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。
使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
2.2 利用LabVIEW编程完成习题设计
2.2.1习题2.1
写一个类似于左图的正弦波发生器,要求频率和幅度可调
2.2.2习题
3.1
新建一个VI,进行如下练习:任意放置几个控件在前面板,改变它们的位置、名称、大小、颜色等等。
在VI前面板和后面板之间进行切换,并排排列前面板和后面板窗口
2.2.3习题
3.2
编写一个VI求三个数的平均值,如右图所示。
要求对三个输入控件等间隔并右对齐,对应的程序框图控件对象也要求如此对齐。
添加注释,分别用普通方式和高亮方式运行程序,体会数据流向。
单步执行一遍
2.2.4习题4.1
写一个VI判断两个数的大小,如右图所示:当A>B时,指示灯亮
2.2.5习题4.2
写一个VI获取当前系统时间,并将其转换为字符串和浮点数。
这在实际编程中会经常遇到。
2.2.6 习题4.3
写一个温度监测器,如右图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。
温度值可以由随即数发生器产生。
2.2.7 习题4.5
给定任意x,
求如下表达式的值
x
e x
x y cos 5+=
2.2.8习题5.1
利用顺序结构和timing面板下的tick count VI,计算for循环产生一个长度为20000点的随机波形所需的时间。
2.2.9习题5.2
为第4章习题4添加一个While循环和定时器,实现连续的温度采集监测
2.2.10习题5.3
计算学生三门课(语文,数学,英语)的平均分,并根据平均分划分成绩等级。
要求输出等级A,B,C,D,E。
90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E。
2.2.11习题6.1
为第5章的习题2连续温度采集监测添加报警信息,如下图所示,当报警发生时输出报警信息,例如“温度超限!当前温度78.23℃”,正常情况下输出空字符串。
2.2.12习题6.2
将一些字符串和数值转换成一个新的输出字符串,输出的字符串GPIB命令字符串,他可以用来与串口仪器进行通信,如图
2.2.13习题6.3
用for循环创建一个数组,并用图形显示输出的数组。
如下图所示:
2.2.14习题6.4
利用簇模拟汽车控制,如右图所示,控制面板可以对显示面板中的参量进行控制。
油门控制转速,转速=油门*100,档位控制时速,时速=档位*40,油量随VI运行时间减少。
2.2.15习题7.1
利用随机数发生器仿真一个0到5V的采样信号,每200ms采一个点,利用实时趋势曲线实时显示采样结果。
2.2.16习题7.2
在习题1的基础上再增加1路电压信号采集,此路电压信号的范围为5到10V。
2.2.17习题7.3
利用随机数发生器仿真一个0到5V的采样信号,每200ms采一个点,共采集50个点,采集完后一次性显示在Waveform Graph上。
2.2.18习题7.4
在习题3的基础上再增加1路电压信号采集,此路电压信号的范围为5到10V,采样间隔是50ms,共采100个点。
采样完成后,将两路采样信号显示在同一个Waveform Graph 中。
3 利用LabVIEW 实现卷积积分与离散卷积--方波序列和方波序
列的卷积及卷积过程演示的设计
3.1卷积积分与离散卷积--方波序列和方波序列的卷积及卷积过程演示的基本原理
3.1.1方波序列和方波序列的卷积的原理
)()()()()(n h n x m n h m x n y m *=-=
∑∞
-∞= 上式的运算关系称为卷积运算,式中*代表两个方波序列卷积运算。
两个方波序列的卷积是一个方波序列与另一个方波序列反褶后逐次移位乘积之和,其计算的过程包括以下4个步骤。
(1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。
(2)移位:将)(m h -移位n ,得)(m n h -。
当n 为正数时,右移n 位;当n 为负数时,左移n 位。
(3)相乘:将)(m n h -和)(m x 的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。
3.1.2方波序列和方波序列卷积过程演示的原理
首先调节两个方波序列x(n)和h(n)的幅值和宽度的大小,然后按下“演示”按钮就可以观察到离散序列的反褶、移位、求积分过程。
其中“y(n)”显示了卷积后的结果。
波形图“移位过程”中的x(n)序列保持不变,图中h(n-m)序列开始由负轴的指定位置向左移动。
3.2卷积积分与离散卷积--方波序列和方波序列的卷积及卷积过程演示 的编程设计及实现
首先两个方波序列x(n)和h(n)是通过FOR循环和后面版编程-结构中的公式点中输入“y=(x<=N)?L:0;”来产生;而卷积中的反褶函数h(-m)通过移位获得的;方波序列y(n)是通过x(n)和h(n)方波序列卷积获得的,在h(-m)与x(n)无相交部分时y(n)=0。
有相交时,y(n)等于两个方波序列乘积累加起来。
将x(n),h(n),h(-m)及卷积y(n)送入4个波形显示器进行显示。
然后用条件结构嵌套for循环在演示按钮触发下进行卷积过程的演示,最后显示在“移位过程”波形图中。
3.3运行结果及分析
3.3.1运行结果
程序框图1
程序框图2
程序框图3
结果图1
结果图2
结果图3
结果图4
3.3.2分析
(1)程序图分析:在程序图中方波序列x(n)和h(n)通过FOR循环和后面版编程-结构中的公式点中输入“y=(x<=N)?L:0;”来产生;方波序列y(n)是通过x(n)和h(n)方波序列卷积获得的,而卷积中的反褶函数h(-m)通过移位获得的;移位过程是由两个for循环和两个条件结构组成的,第一个for循环是由演示控件作为输入条件所控制的,第二个for循环主要为了产生3个数,分别是0,1,2。
此三个数作为第二个结构的输如条件,当i=0是执行的是第一步,当i=1时执行的是第二步,当i=2时执行的是第三步。
最后连续的移位过程显示在结果图中。
(2)结果图1分析:在-∞<n<0时,移位过程是由此结果图所实现的,此时i=0时,执行的是第一步。
第2个for循环是用于产生移位过程的。
For循环一共循环5次。
开始时h(n-m)波形在-5的位置上,因此h(n-m)波形由-5的位置移动到0的移位过程。
(3)结果图2分析:是在n小于等于以x(n)的宽度作为大小,大于等于0时,移位过程是由此结果图所实现的。
此时移位过程中的第一个for循环的i值为1,因此条件结构中执行的是第二步,第二个for循环一共循环以x(n)的宽度作为循环次数。
因此h(n-m)波形由0的位置移动到x(n)的宽度作为长度的位置上。
(4)结果图3分析:在n大于等于x(n)的宽度时,移位过程是由此结果图所实现的。
此时移位过程中的第一个for循环的i值为2,因此条件结构中执行的是第三步,第二个for循环一共循环30次。
因此h(n-m)由以x(n)的宽度作为长度的位置向右移位,一直移出显示图。
(5)结果图4分析:两个方波序列的幅值和宽度不同时,产生的卷积也不同。
在两序列宽度一定时,改变其幅值,得到的y(n)宽度不变,幅值大小改变。
在两序列的幅值一定时,改变其宽度,则y(n)宽度和幅度都有所改变。
4结论
对我来说本次实验最难的地方就是怎么产生两个方波序列,经过查阅大量LabVIEW资料,我知道了怎么产生方波序列。
其次比较困难的地方是怎么进行演示过程,其实产生演示过程最主要是把移位过程分为三步,独立考虑每一步是怎么进行的,最后让波形连续的移动并显示在波形图中。
此次实验对我来说特别有意义,让我对LabVIEW的学习更加感兴趣,虽然课设设计的不是太完美,但是通过自己的努力和老师耐心的指导最后还是成功的完成。
我感到特别的欣慰,特别的有成就感。
在此感谢老师!
参考文献
【1】作者:陈锡辉.《Labview 8.20程序设计从入门到精通》
【2】零点工作室,刘刚,王立香,张连俊.Labview8.20中文版编程及应用. 北京:电子工业出版社,2008
【3】【美】Robert H.Bishop 著,乔瑞萍,林欣,等译,朱世华审校.Labview8实用教程.北京:电子工业出版社,2008。