Labview实训报告_labview实训报告
Labview实训报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“labview实训报告”。
专业软件实训
院系:机械与汽车工程学院
专业:测控技术与仪器
姓名:
学号:
班级:
指导老师:
目录
第1章 绪论 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥1 1.1 LabVIEW的介绍‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥1 1.2实训的目的及意义‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥1 第2章 LabVIEW实训内容 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2 2.1 LabVIEW软件的基础操作‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2 2.1.1 基于模板打开一个VI并运行 ‥‥‥‥‥‥‥‥‥‥2 2.1.2 基于模板创建一个VI ‥‥‥‥‥‥‥‥‥‥‥‥‥2 2.2 基础实训‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥3 2.2.1 通过循环创建二维数组‥‥‥‥‥‥‥‥‥‥‥‥‥3 2.2.2 二维数组与电子表格字符串相互转换‥‥‥‥‥‥‥3 2.2.3强度图(Intensity Graph)的设计‥‥‥‥‥‥‥‥4 2.2.4三维曲面图的设计 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥5 2.2.5 XY曲面图的设计‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥6 2.3 强化实训‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥7 2.3.1 简易滤除信号噪声的设计 ‥‥‥‥‥‥‥‥‥‥‥‥7 2.3.2 曲面积分的设计 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥8 2.3.3 对高斯噪声的统计分析‥‥‥‥‥‥‥‥‥‥‥‥‥10 第3章 基于LabVIEW与声卡的音频信号采集系统与分析‥‥‥‥14 3.1 基于声卡的音频信号采集系统实现‥‥‥‥‥‥‥‥‥‥14 3.2 音频信号处理与分析‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥15 3.3 声卡采集系统测试与分析‥‥‥‥‥‥‥‥‥‥‥‥‥‥15 总结‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥17
第1章
1.1 LabVIEW的介绍
绪论
LabVIEW是Laboratory Instrument Engineering Workbench(实验室虚拟仪器集成环境)的简介,是由美国国家仪器(NI , National Instruments)公司开发的、优秀的商用图形化编程开发平台。LabVIEW是一种图形化编程语言,又称G(Graphic)语言。LabVIEW程序被称为VI(Virtual Instrument),即虚拟仪器。
与 C 和BASIC 一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是 LabVIEW 的程序模块。
LabVIEW 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
1.2 实训的目的及意义
实训的目的在于让学生了解现代仪器科学与技术的发展前沿,学习和掌握虚拟仪器系统组成和工作原理,掌握虚拟仪器LabVIEW图形化软件设计方法与调试技巧,培养学生查阅资料的能力和运用知识的能力,提高学生的论文撰写和表述能力,培养学生正确的设计思想、严谨的科学作风,培养学生的创新能力和运用知识的能力。并且要求学生了解并掌握虚拟仪器的设计方法,具备初步的独立设计能力,初步掌握对图形化编程语言LabVIEW的编程、调试等基本技能,通过整个设计过程大致领会并了解LabVIEW软件的其他虚拟仪器的设计方法,从而为将来在实际工程项目中使用LabVIEW打下良好的实践基础,提高综合运用所学的知
识独立分析和解决问题的能力。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试根据一些项目统计,完成一个功能类似的大型应用软件,熟练的LabVIEW程序员所需的开发时间,大概只是熟练的C程序员所需时间的1/5左右。所以,如果项目开发时间紧张,应该优先考虑使用LabVIEW,以缩短开发时间。
从现实的意义来说,在高等工程教育中采用虚拟实验室,可以从根本上解决实验与实习经费严重短缺的问题。作为传统电子技术实验的补充,使学生初步掌握仿真软件技术,可使实验内容紧密联系课本内容,比较全面的概括和反映部分所学的知识点,使课堂内容具体化。同时,利用虚拟仪器技术实现对仪器设备的远程、分布式控制。一方面继承实物实验可操作性、参与性强的优点,另一方面又可利用计算机优势,发挥其直观、动态模拟、迅速准确、资源共享、资金投入量少等特点,从而建立一种新型的实验教学方式,进一步提高教学效率。
第2章 LabVIEW实训内容
2.1 LabVIEW软件的基础操作 2.1.1 基于模板打开一个VI并运行
启动LabVIEW后会出现一个“启动”窗口。在该窗口中,可以进行新建VI、新建项目、新建基于模板的VI、打开LabVIEW自带的帮助和入门指南等文档、查找范例和链接LabVIEW网络资源等操作。
例如,在“新建”窗口中选择“VI6→基于模板→使用指南(入门)→生成、分析和显示”单击后右侧便相应的出现该模板VI的程序框图预览和该模板VI的功能说明,然后单击“确定”按钮,便同时打开了“生成、分析和显示”模板VI的前面板和程序框图。点击前面板或程序框图工具栏上的“运行”按钮,运行程序,便可看到相应的运行结果。2.1.2 基于模板创建一个VI 在已经打开的模板VI前面板窗口或程序框图窗口的菜单栏中选择“文件→保存”,单击后会弹出一个“保存”对话框。在“保存”对话框中选择VI要保存的位置,并且给VI取一个名称。然后单击“确定”按钮,文件便保存成功了。
图2-2 二维数组与电子表格字符串相互转换
2.2.3强度图(Intensity Graph)的设计
图2-3 随机数的强度图
如图2-3所示,用两个For循环产生5行5列的随机数数组,将数据输出给“强度图”和“数组”显示控件。由于产生的随机数是0至1之间的数,所以要
567
图2-9对高斯噪声的统计分析的程序框图
(3)前面板界面布局及显示部件的属性设置,包括对前面板进行的整体布局规划设计和对部分图形显示控件进行的相关外观属性设置。各属性设置如下: 1)在程序框图中,“统计”函数属性中勾选“算数平均”、“标准差”、“最大值”、“最小值”。
2)在程序框图中,“创建直方图”函数属性中“配置”中设置“区间数”为“50”,“最大值”为“5”及“最小值”为“-5”,在“幅值表示”处选择“总数的百分比”。
3)在前面板中,“统计图”属性设置:“外观”选项卡,取消勾选的“标签”的“可见”复选框,取消勾选“显示图例”复选框;“格式与精度”选项卡,分别对“X轴”和“Y轴”的数据类型设置为“浮点”,“位数”为3,“精度类型”为“精度位数”;“标尺”选项卡,可以设定波形图显示控件纵坐标(幅值)和横坐标(时间)的属性,纵坐标和横坐标的“标尺范围”默认设置为“自动调整
标尺”,并设定纵坐标(幅值)的最小值为-5,最大值为5,设置横坐标(时间)的最小值为0,最大值为15.设计完毕后,通过调节输入高斯白噪声的标准差和采样信息,可获取高斯噪声信号,并可利用“统计”函数和“创建直方图”函数对获得的高斯噪声信号进行统计计算分析。单击运行按钮,如图2-10所示,在对高斯噪声的统计分析运行界面上可以观察到“高斯噪声信号”、“柱状图”和“统计图”控件中的图形显示。改变输入控件中的参数,图像将随之变化。
图2-10 对高斯噪声的统计分析运行界面
2.3.3 曲面积分的设计
利用“y=f(x)求值(优化步长)”、“积分”和“曲线长度”等函数对一个给定表达式的函数进行积分,并用图形显示的方法将曲线和积分结果表现出来。详细设计步骤如下所示:
(1)新建一个VI并命名123.vi。
(2)前面板的设计。添加1个字符串输入控件并命名为“公式”(默认值设置为sinc(x)+sin(2*x)+sin(2*x*x));添加1个列表框控件并命名为“Graph”,其列相值基于0依次为“ Function Graph”、“ Graph”、“Integration Graph”和“Curse Length Graph”;添加3个数值输入控件,分别命名为“开始”、“结束”(默认值设置为4.00)和“点数”(默认值设置为30);添加一个“停止”按钮盒
011
图2-12曲线积分的程序框图
3)调试并运行程序。按下“Ctrl+R”快捷键运行程序,选中“Graph”控件中的任一项值,单击“开始”按钮,即可观察相应函数计算结果的图形显示。如图2-13所示为“y=f(x)求值(优化步长)”函数的曲线图形。
图2-13 “y=f(x)求值(优化步长)”函数的曲线图形
结束后,可以用播放器播放采集到的sound test文件,程序进入while循环,进行连续采样。调用读取声音输入函数(Sound Input Read.vi)从缓存中读取数据,设置每次从每个通道中读取样本数22050。最后,调用声音输入清零函数(Sound Input Clear.vi)停止采集并进行清除缓存和占用的内存等操作。
图3-2 信号采集系统的框图设计
3.2 音频信号处理与分析
音频信号采集系统与分析利用LabVIEW 中函数选板信号处理模块中的波形测量模块的FFT 功率谱节点以及提取单频信息节点,对采集到的音频信号进行频域内的功率谱分析,时域内的单频分析。LabVIEW 中对信号的频域分析主要是在对信号进行FFT(快速傅里叶变换)分析的基础上进行的。还可以利用LabVIEW 强大的信号处理功能,对采集到的音频信号进行时域内其他分析,数字滤波,如利用Butterworth 滤波器,Chebyshev滤波器等,进行平滑滤波处理,可以消除高次谐波失真和噪声干扰,提高信噪比。3.3 声卡采集系统测试与分析
为测试本声卡采集系统性能,通过麦克风采集某男歌手歌曲中的一段进行测试,从声音信号波形图中可以看出,采集得到的该段声音信号由多个频率组成,从对应的功率谱图形中可看出,该频率集中在200-1000Hz、5000Hz、5600Hz 处。
可以直观看到监测到的频率,幅度和相位。利用LabVIEW 波形显示器自带的功能对采集到的波形进行显示,并进行功率谱显示。图3-3所示为采集到的该男歌手声音信号的频谱图。
图3-3 采集系统测试信号
本设计利用普通的计算机声卡代替价格昂贵的商用数据采集卡对音频范围内的信号进行采集,基于LabVIEW 开发系统,设计了一个简单的数据采集系统,该系统能够正确采集声卡设计频率范围内的信号,并可以实现基本的测量功能和频谱分析功能。另外,灵活性强。用户不仅可以进行实时监视和控制操作,还可以把数据保存到硬盘,供以后分析使用。在CPU 足够快的条件下,还可以实时处理数据动态显示波形的频谱、频域图。总之,运用廉价的声卡,在LabVIEW 环境下构成的具有较高采样精度,中等采样频率的数据采集系统,可以很方便进行语音信号采集,并对其进行处理和分析。
总结
通过这学期的软件实训,我主要学会了一些LabVIEW的基本操作和编程技巧,LabVIEW作为一门新式的以图形化编程的语言,不仅提供了简单易学的编程方法,而且提供了海量的可调用的模块,子VI,涉及到各个方面。
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
LABVIEW有很多优点,尤其是在某些特殊领域其特点尤其突出。首先在测试测量方面:LABVIEW最初就是为测试测量而设计的,因而测试测量也就是现在LABVIEW最广泛的应用领域。经过多年的发展,LABVIEW在测试测量领域获得了广泛的承认。至今,大多数主流的测试仪器、数据采集设备都拥有专门的LabVIEW驱动程序,使用LabVIEW可以非常便捷的控制这些硬件设备。同时,用户也可以十分方便地找到各种适用于测试测量领域的LabVIEW工具包。这些工具包几乎覆盖了用户所需的所有功能,用户在这些工具包的基础上再开发程序就容易多了。有时甚至于只需简单地调用几个工具包中的函数,就可以组成一个完整的测试测量应用程序。控制与测试是两个相关度非常高的领域,从测试领域起家的LabVIEW自然而然地首先拓展至控制领域。LabVIEW拥有专门用于控制领域的模块----LabVIEWDSC。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。
除了以上两种应用领域,LabVIEW还包含了多种多样的数学运算函数,特别适合进行模拟、仿真、原型设计等工作。在设计机电设备之前,可以现在计算机上用LabVIEW搭建仿真原型,验证设计的合理性,找到潜在的问题。在高等教育领域,有时如果使用LabVIEW进行软件模拟,就可以达到同样的效果,使学生不致失去实践的机会。
我对这一门高效简单的编程语言有很大的兴趣。我从图书馆中借了一些高级应用的书,还在网上搜过NI公司举办的研讨会。从中学到了大量的技巧。也越来越感到,LabVIEW入门很容易,如果要深入做下去,完成一个像样的工程,就必须懂得各方面的知识,需要了解与电脑通信的各种协议,pci,pxi,gpib,还有
现今流行的USB,就算用别人做的卡,用别人编写好的驱动程序,自己也要动各种调用约定,因为他们的卡并不为LabVIEW一种编程语言所做,好在LabVIEW本身提供了各种方法可以方便的调用。需要学会使用数据库,需要用别的编程语言别写可供LabVIEW能调用的模块。
这是一门实践性很强的课,很多知识是从书上看来的,而且看完之后,自己还觉的不错,觉得自己已经掌握的很好了,但真到实际做东西的时候,就会觉得困难重重,这时再去查书,便有了对知识的更深层次的理解,其实在这方面更应该感谢网络给我们带来的方便,有任何问题,上网搜一下,很多问题都可以迎刃而解,而且很多网友都有自己独特的见解,在他们的讨论中看到了很多有用的东西。而且我们能感受到学院老师对这门课的重视,也能看到这门课的发展前景,即使我们在以后的工作中不在这方面发展,这门课留给我们的学习思想和技术技能都是很宝贵的。
学以促用,用以促学,我们感觉这也是这门课教给我们的重要知识。带着问题学习才能学到真正的知识。在这学期的学习中我们学到了很多,也认识到我们需要学的东西更多,仅凭现在学到的东西是远远不够的,要想在这方面作出一些成绩,必须继续学下去。