虚拟仪器信号发生器课程设计汇编.docx
- 文档编号:15362160
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:20
- 大小:241.53KB
虚拟仪器信号发生器课程设计汇编.docx
《虚拟仪器信号发生器课程设计汇编.docx》由会员分享,可在线阅读,更多相关《虚拟仪器信号发生器课程设计汇编.docx(20页珍藏版)》请在冰点文库上搜索。
虚拟仪器信号发生器课程设计汇编
基于LabVIEW的虚拟仪器——信号的产生和处理设计
摘要
基于LabVIEW的虚拟仪器,简要地介绍了虚拟仪器和LabVIEW的概念及特点,并应用虚拟仪器技术LabVIEW软件开发平台的设计特点结合常规信号发生器的功能设计实现了----虚拟信号发生器,此次设计的虚拟信号发生器的设计结果不仅可以输出正弦波、三角波、方波和锯齿波等基本函数波形,还可以利用公式选择输出公式波形,及通过选择噪声类型输出多种噪声波形,该虚拟信号发生器界面友好,通过操作前面板上的按钮,就可以执行完成相应的信号处理要求,系统操作简便,适用于教学、科研等领域。
虚拟仪器是在仪器仪表领域中应用计算机技术所形成的一种新型的、富有生命力的仪器种类。
基于LabVIEW的虚拟仪器系统是一种实用的虚拟仪器系统,由于它的可行性和优越性,因此基于LabVIEW虚拟仪器系统的虚拟实验是我国普通高校和远程教学的实验教学中可以推广的模式。
关键词:
LabVIEW,虚拟仪器,智能仪器,函数波形,虚拟信号
目录
1虚拟仪器和LabVIEW1
1.1虚拟仪器简介1
1.2LabVIEW简介1
2虚拟信号发生器原理分析2
3虚拟信号发生器的设计3
3.1前面板设计3
3.2程序框图设计4
3.3虚拟信号发生器器件4
4虚拟信号发生器的子程序—子VI设计8
4.1滤波器窗口子VI8
4.2获取信号程序子VI9
4.3更多信息子VI12
5虚拟信号发生器运行结果14
5.1虚拟信号发生器前面板—矩形波与正弦波14
5.2虚拟信号发生器前面板—三角波与矩形波15
5.3虚拟信号发生器前面板—正弦波与三角波15
总结16
致 谢17
参考文献18
1虚拟仪器和LabVIEW
1.1虚拟仪器简介
虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
目前LabVIEW的最新版本为LabVIEW2014,LabVIEW2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。
使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEWReal-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。
自1986年问世以来,世界各国的工程师和科学家们都已将LabVIEW图形化开发工具用于产品设计周期的各个环节,从而改善了产品质量、缩短了产品投放市场的时间,并提高了产品开发和生产效率。
使用集成化的虚拟仪器环境与现实世界的信号相连,分析数据以获取实用信息,共享信息成果,有助于在较大范围内提高生产效率。
虚拟仪器提供的各种工具能满足我们任何项目需要。
[1]
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
1.2LabVIEW简介
LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G代码。
LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。
LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是一种用图标代替文本行创建应用程序的图形化编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。
VI指虚拟仪器,是LabVIEW的程序模块。
LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G代码。
LabVIEW的图形化源代码在某种程度上类似流程图,因此又被称作程序框图代码。
[2]
2虚拟信号发生器原理分析
本设计是基于LabVIEW8.5软件开发平台独有的设计特点独立设计实现的一虚拟信号发生器,在此次设计过程中参考了常规信号发生器功能,并结合虚拟仪器基于计算机的特点设计实现了以下功能:
(1)可以产生1Hz到100kHz的正弦波、三角波、方波和锯齿波等基本函数波形,此外还可以产生任意公式波形以及多种噪声波形。
(2)信号的频率、幅值、偏移量、相位和占空比等参数可以通过旋钮调节,也可以数字输入,并有数字显示具体数值。
(3)采样频率和采样点数可以由数值输入控件调节。
(4)公式波形的输入公式可以由下拉列表进行选择,也可以实现用户所需公式的自定义输入设置。
(5)噪声类型可选,并显示输出噪声波形及噪声波形频谱。
[3]
3虚拟信号发生器的设计
常规编程语言创建的程序,是由一个图形界面窗口(一般称为GUI)和文本编辑窗口两部分组成,LabVIEW应用程序包括前面板和框图程序,前面板相当于GUI,程序框图则相当于文本编辑器。
[4]
3.1前面板设计
前面板是图形用户界面,也就是虚拟仪器面板,用于用户输入和输出两类对象,在前面板上具体显示有开关、旋钮、图形以及其他控件和显示对象,是以数字或实时趋势图等形式的输出测试结果来模拟真实仪器的面板。
前面板上的对象是通过对其的编程进行控制,也就是说通过程序框图代码对前面板进行控制。
虚拟信号发生器的前面板如图1所示。
[5]
图1虚拟信号发生器的前面板
在虚拟信号发生器前面板的左端选项卡控件上可以通过鼠标点击选择函数波形、公式波形或噪声波形三种不同类型的波形。
各波形产生模板中都包含信号频率、幅度、相位、偏移量、采样信息等参数,虚拟信号发生器能在设置好所需要的各种参数之后产生相应的波形。
如若在程序运行过程中点击噪声波形选项卡则进入噪声波形调制面板,噪声波形的输入控件将会展现。
用户可以通过枚举下拉菜单选择噪声类型,通过滑杆调节输入控件参数,在界面右端的波形显示和噪声波形频谱中显示输出波形信息,并且所设定的参数会在数字显示框中显示。
3.2程序框图设计
图2虚拟信号发生器的程序框图
程序框图中放置程序的源代码,在程序框图中对VI进行编程,以控制和操纵定义在前面板上的输入和输出功能。
程序框图中包括前面板上控件的连线端子,还有函数、结构和连线等。
用图标和连线编写程序,图标表示函数,输入控件和显示控件中间的连线表示数据流向,表明了数据是由输入控件流动到显示控件。
输入控件就是数据的来源,显示控件就是数据要流动到的目的地,当数据流向显示控件时,显示控件就会根据自己的特性以一定的方式显示数据。
在LabVIEW中创建程序框图的过程就相当于用常规语言编写代码的过程;输入控件接线端子和显示控件接线端子之间的连线的过程,就相当于用常规语言编写语句的过程。
虚拟信号发生器的程序框图如图2所示。
[5]
3.3虚拟信号发生器器件
1、最大值与最小值
通过操作【函数】/【编程】/【比较】/【最大最小值】,可以选择最大值与最小值控件。
比较x和y的大小,在顶部的输出端中返回较大值,在底部的输出端中返回较小值。
如所有输入都是时间标识值,该函数接受时间标识。
如输入为时间标识,则函数在顶部输出中返回离当前较近的值,在底部输出中返回离当前较远的值。
如输入的数据类型不一致,则会出现断线。
该函数可改变比较模式。
图3最大值与最小值
2、创建数组
通过操作【函数】/【编程】/【数组】/【创建数组】,可以选择创建数组控件。
连接多个数组或向N维数组添加元素。
也可使用替换数组子集函数,修改一个现有数组。
图4创建数组
3、图形化波形数据
通过操作【函数】/【新式】/【图形】/【波形图】,可以选择图形化波形数据控件。
将除函数的x/y输出连接到正弦函数的x输入。
将正弦函数的sin(x)输出连接到波形图接线端。
自动索引通道出现在连线穿过循环边框的位置。
将For循环的计数接线端连接到除函数的x输入。
图5图形化波形数据
4、除
通过操作【函数】/【数学】/【数值】/【除】,可以选择除控件。
计算输入的商。
如连接两个波形数据或动态数据类型至该函数,函数上将出现错误输入和错误输出接线端。
连线板显示了该多态函数的默认数据类型。
图6除
5、属性节点
通过操作【编程】/【函数】/【应用程序控制】/【属性节点】,可以选择属性节点控件。
获取(读取)和/或设置(写入)引用的属性。
属性节点可自动调整为用户所引用的对象的类。
LabVIEW的属性节点可访问VISA属性、.NET属性和ActiveX属性。
图7属性节点
6、FFT功率谱(基础软件包中未包括)
通过操作【函数】/【编程】/【波形】/【模拟波形】/【波形测量】/【FFT功率谱】,可以选择FFT功率谱控件。
计算时间信号的平均自功率谱。
连接至时间信号输入端的数据类型决定使用哪个多态实例。
图8FFT功率谱
7、等待下一个整数倍毫秒
通过操作【函数】/【编程】/【定时】/【等待下一个整数倍毫秒】,可以选择等待下一个整数倍毫秒控件。
等待,直到毫秒计时器的值成为毫秒倍数中指定的整数倍值。
该函数用于同步各操作。
可在循环中调用该函数,控制循环执行的速率。
但是,第一个循环周期可能很短。
将0连接到毫秒倍数输入,可迫使当前线程让出对CPU的控制。
图9等待下一个整数倍毫秒
8、While循环
通过操作【函数】/【编程】/【结构】/【While循环】,可以选择While循环控件。
重复执行内部的子程序框图,直到条件接线端(输入端)接收到特定的布尔值。
将布尔值连接至While循环的条件接线端。
右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
也可将一个错误簇连线至条件接线端,右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
While循环永远至少执行一次。
图10While循环
9、层叠式顺序结构
通过操作【函数】/【编程】/【结构】/【层叠式顺序结构】,可以选择层叠式顺序结构控件。
包括一个或多个顺序执行的子程序框图或帧。
右键单击结构边框,可添加或删除分支,也可创建顺序局部变量从而将数据在帧之间传递。
层叠式顺序结构可确保子程序框图按一定顺序执行。
图11层叠式顺序结构
4虚拟信号发生器的子程序—子VI设计
4.1滤波器窗口子VI
4.1.1滤波器窗口子VI,可以产生多种滤波信号。
滤波器窗口子VI前面板。
图12滤波器窗口子VI前面板
4.1.2滤波器窗口子VI程序框图
图13滤波器窗口子VI程序框图
4.1.3滤波器窗口子VI程序
1、数字IIR滤波器(基础软件包中未包括)
图15数字IIR滤波器
通过操作【函数】/【信号处理】/【波形调理】/【数字IIR滤波器】,可以选择数字IIR滤波器控件。
对单个波形或多个波形中的信号进行滤波。
如对多个波形进行滤波,VI将对各个波形保留单独的滤波器状态。
连接至信号输入和IIR滤波器规范输入端的数据类型决定使用哪个多态实例。
2、按窗函数缩放(基础软件包中未包括)
通过操作【函数】/【信号处理】/【波形调理】/【按窗函数缩放】,可以选择按窗函数缩放控件。
在时域信号上和输出窗常量上使用缩放窗,用于日后分析。
连接至信号输入输入端的数据类型决定了所使用的多态实例。
图16按窗函数缩放
3、按名称捆绑
通过操作【函数】/【编程】/【簇、类与变体】/【按名称捆绑】,可以选择按名称捆绑控件。
替换一个或多个簇元素。
该函数根据名称,而不是根据簇中元素的位置引用簇元素。
将函数连接到输入簇后,右键单击名称接线端,从快捷菜单中选择元素。
也可使用操作工具单击名称接线端,或从簇元素列表中选择。
所有输入都是必需的。
图17按名称捆绑
4.2获取信号程序子VI
4.2.1获取信号程序子VI前面板[7]
图18获取信号程序子VI前面板
4.2.2获取信号程序子VI前面板
图19获取信号程序子VI前面板
4.2.3获取信号程序子VI
1、正弦波形(基础软件包中未包括)
通过操作【函数】/【编程】/【波形】/【模拟波形】/【波形生成】/【正弦波形】,可以选择正弦波形控件。
生成含有正弦波的波形。
图20正弦波形
2、高斯白噪声波形(基础软件包中未包括)
通过操作【函数】/【编程】/【波形】/【模拟波形】/【波形生成】/【高斯白噪声波形】,可以选择高斯白噪声波形控件。
生成一个高斯分布伪随机序列的信号,其统计分布为(0,s)。
其中,s是指定标准差的绝对值。
图21高斯白噪声波形
3、条件结构
通过操作【函数】/【编程】/【结构】/【条件结构】,可以选择条件结构控件。
包括一个或多个子程序框图,或分支,当结构执行时,仅有一个子程序框图或分支在执行。
连接至选择器接线端的值可以是布尔、字符串、整数,或枚举类型,它决定了执行哪个分支。
右键单击结构边框,可添加或删除分支。
Us可使用标签工具来输入条件选择器标签的值,并配置每个分支处理的值。
图22条件结构
4、加
通过操作【函数】/【数学】/【数值】/【加】,可以选择加控件。
进行加法运算。
图23加
5、方波波形(基础软件包中未包括)
通过操作【函数】/【编程】/【波形】/【模拟波形】/【波形生成】/【方波波形】,可以选择方波波形控件。
生成含有方波的波形。
图24方波波形
6、三角波形(基础软件包中未包括)
通过操作【函数】/【编程】/【波形】/【模拟波形】/【波形生成】/【三角波形】,可以选择三角波形控件。
生成含有三角波的波形。
图25三角波形
4.3更多信息子VI
4.3.1更多信息程序子VI前面板[8]
图26更多信息程序子VI前面板
4.3.2更多信息程序子VI程序框图
图27更多信息程序子VI程序框图
4.3.3更多信息程序子VI器件
1、While循环
通过操作【函数】/【编程】/【结构】/【While循环】,可以选择While循环控件。
重复执行内部的子程序框图,直到条件接线端(输入端)接收到特定的布尔值。
将布尔值连接至While循环的条件接线端。
右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
也可将一个错误簇连线至条件接线端,右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
While循环永远至少执行一次。
图28While循环
2、非
通过操作【函数】/【编程】/【布尔】/【非】,可以选择非控件。
计算输入的逻辑非。
如果x为FALSE,则函数返回TRUE。
如果x为TRUE,则函数返回FALSE。
图29非
5虚拟信号发生器运行结果
5.1虚拟信号发生器前面板—矩形波与正弦波
图30虚拟信号发生器前面板—矩形波与正弦波
5.2虚拟信号发生器前面板—三角波与矩形波
图31虚拟信号发生器前面板—三角波与矩形波
5.3虚拟信号发生器前面板—正弦波与三角波
图32虚拟信号发生器前面板—正弦波与三角波
总结
虚拟仪器技术是现代仪器技术与计算机技术相结合的产物,它的出现是仪器发展史上的一场革命,代表着仪器发展的最新方向。
本设计利用LabVIEW8.5软件设计出可以产生频率1Hz到100kHz的正弦波、三角波、方波与锯齿波等常见的基本函数波形,可自定义任意公式波形,也可通过选择噪声类型产生噪声波形并显示噪声波形频谱。
该系统界面友好,前面板具有波形选择、相关参数设定,以及数据指示、输出信号的时域波形的显示视窗等。
最重要的优点是用户可以自定义该虚拟信号发生器的功能,系统的功能升级及扩充更为方便快捷。
致 谢
经过我的不断的努力探索以及在吴娟老师的耐心指导和热情帮助下,本设计已经基本完成。
在这段时间里,老师严谨的治学态度和热忱的工作作风令我十分钦佩,老师的指导使我受益非浅。
老师牺牲课余时间为我们讲解课程设计的内容和注意事项,令我非常感动,在此,向吴娟老师表示感谢!
通过这次课程设计,我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果。
虽然在这次设计中对于知识的运用和衔接还不够熟练。
但是我定会在以后的工作和学习中继续努力、不断完善。
最近一段时间的课程设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。
参考文献
[1]张洪润.智能系统设计开发技术[J].成都:
成都科技大学出版社.1997
[2]刘连宇.虚拟仪器设计思想及应用[M].四川:
联合大学学报,1998
[3]林正盛.虚拟仪器技术及其发展[M].国外电子测量技术,1997
[4]戴成梅.基于LabVIEW多功能信号发生器的设计与实现[J]研究与开发,2009
[5]王福明.LabVIEW程序设计与虚拟仪器[M].西安:
西安电子科技大学出版社,2008
[6]武一.基于LabVIEW的虚拟信号发生器的设计[M].河北:
信息工程学院,2013
[7]张琴.基于虚拟仪器技术的频谱分析仪自动检定系统的开发与应用[D].北京:
北京邮电大学,2008
[8]王立福.仪器仪表测试平台的研究LabVIEW图形编程环境的应用[J].电子技术应用,1996
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟仪器 信号发生器 课程设计 汇编