搜档网
当前位置:搜档网 › 虚拟仪器大作业实验报告

虚拟仪器大作业实验报告

虚拟仪器大作业实验报告
虚拟仪器大作业实验报告

东南大学生物科学与医学工程学院

虚拟仪器实验报告

大作业

实验名称:基于MIT-BIH 心率失常数据库的心电信号系统的设计专业:生物医学工程

姓名:学号:

同组人员:学号:

实验室:

实验时间:评定成绩:综合楼716 2013/11/28

审阅教师:

目录

一.实验目的

二.实验内容

基于MIT-BIH心率失常数据库的心电信号系统的设计

1.实验要求和说明

2.程序设计流程图

3.程序各版块介绍说明

4.前面板的设计

5.调试过程

6.结果及分析

三.实验收获及小结

四.参考文献

一.实验目的

现代医学表明,心电信号(ECG)含有临床诊断心血管疾病的大量信息,ECG 的检测与分析在临床诊断中具有重要价值,是了解心脏的功能与状况、辅助诊断心血管疾病、评估各种治疗方法有效性的重要手段。

本次大作业利用具有直观图形化编程和强大数字信号处理功能的虚拟仪器编程语言L abVIEW作为开发平台,设计一个基于虚拟仪器的简单心电信号分析系统,该系统具有心电信号的读取,处理分析,波形显示、心率显示及报警,波形存储和回放等功能。

二.实验内容

1.实验内容及要求

基于MIT-BIH心率失常数据库的心电信号系统的设计

1. 本次大作业所用原始信号是从MIT-BIH(Massachusettes Institute of

and Beth Israel Hospital,美国麻省理工学院和波士顿贝丝以色列医院)心率数据库(https://www.sodocs.net/doc/541430565.html,/physiobank/database/mitdb/)中选取心电信号作为实验分析的数据。设计的系统要求对原始心电信号进行读取、绘制出其时域波形,利用原始心电数据中的时间数据控制显示时间,并具有保存回放功能,同时具有心率过快或过缓报警提示功能。

2.心电信号是微弱低频生理电信号,通常频率在0.05Hz~100Hz,幅值不超过

4mV,它通过安装在皮肤表面的电极来拾取。由于实际检测工况的非理想,在ECG 信号的采集过程中往往会受到工频噪声及电极极化等各种随机噪声的影响。噪声的存在降低了诊断的准确性。其中影响最大的是工频干扰和基线漂移噪声。因此,在ECG 信号检测过程中,如何抑制工频干扰和基线漂移等是必须解决的问题。要求选择并设计合适的滤波器,除去所给心电信号的工频干扰和基线漂移。

2.检测心率:检测信号心电的R波,计算平均心率和实时心率(R-R波时间间隔

的倒数),并显示实时心率和平均心率。

3.对任一路心电信号滤波前后的信号进行时域分析和频谱分析,分别显示出结

果。

提高部分:

由于原始信号数据并不是等间隔采样而得到的,而L abview中用数字滤波器1.

理的数据要求等间隔的,由此需要对原始数据做一次线性插值处理,使其成为均匀数字信号,以便后面的信号进行频域谱分析。提示:根据原文件心电

信号的特点,时间间隔设置成0.001s ,采用一次线性插值。

2. 对所给的心电信号进行特征点的提取。各波时距的测量,P-R 间期 Q-T 间期 的

测量。能显示心电信号特征参数。

3. 使用 Report Generation Toolkit for Microsoft Office 设计一个报表生成程序,

要求报表中显示标题栏,测试数据、和心电波形图,包含监测开始时间、结 束时间、监测总时间长度、监测期间平均心率、心率最大值、心率最小值、 监

测期间实时心率的波形图。

4. 为了保护用户信息安全,登陆系统时要求设置用户登录模块。当用户运行程

序时,程序会自动弹出需要输入用户名和密码的口令信息对话框,输入不正 确则不能进入运行状态,此外,还有相应的注册用户模块,删除用户模块, 修改密码模块等。

2.程序流程图

口令错误,重新输入口令登录 登录 口令正确

未处理完毕

数据处理完毕 进行显示

否 进行数据存储记录

从网站上下载的 dat 文件中读取数据 读取数据之后进行数据处理,将两个通道的数据分开并且整理成 12

将数据转化成十进制进行处理

输入用户名和密码进行

数据处理完之后用波形图和滤波前频谱分析

计算和显示平均心率,瞬时心率

是否进行数据回放 进行滤波处理,去除基线漂移和工频干扰 进行滤波后的频谱分析和显示

进行滤波后的波形显示 进行数据回放 存储数据

判断心率是否有异常

3.程序各版块

数据的读取和处理模块

1.首先是读取数据文件部分,先添加一个文件对话框,并对

文件类型和文件打开提醒进行设置,然后加入一个打开文件函数,设置其权限和操作和。前期工作完成之后,就可以用二进制文件来读取数分别为

据了。

2.关于数据的处理部分,第一道导联12 位数据的低8 位存在第一字节中, 高4 位存在

第二字节的前4位中; 第二道导联12 位数据的低8位, 存在第三字节中, 高4 位存在第二字节的后4 位中。用索引函数将三个数据分别读取,然后对第二个数据进行处理,第

二个数据与进行操作后得到低四位,然后用拼接函数与第三个数据进行拼接就得到了第二道导联数据;第二个数据进行右移四位操作后保留高四位,然后用拼接函数与第一个数据拼接就得到了第一=导联数据。然后对得到的数据变成十进制数进行处理。

3.在读取数据时,由于是三个数据一处理,所以建立的for 循环的循环次数应该是数据长度/3.

滤波模块

1.因为基线漂移部分都是频率非常小的波,我们选择了Butterworth 的带通滤波器,高截止频率为100HZ,低截止频率为0.5HZ,滤除了原本波形中0.05HZ~0.5HZ的部分,这样可以较好的去除基线漂移。

2.为了去除工频干扰部分,在带通滤波器后面加入一个等波纹带阻滤波器,根据实验要求设置其高通带截止频率和低通带截止频率分别为100和0.05,然后根据实验滤波

部分的要求将低阻带截止频率和高阻带截止频率分别设置为59 和61,这样就可以滤去工频干扰。

3.在已经滤去了基线漂移和工频干扰的情况下,为了达到更好地滤波效果在等波纹带阻滤波器后面加入一个3 阶切比雪夫滤波器,将波形滤除的更加完整。

4.因为实验说明中采样频率为360.所以我们的滤波器的采样频率一率采取了360,这样滤波效果更明显一点。

频谱分析模块

1.由于要进行滤波前后的频谱分析对比,所以频谱分析模块要在滤波前后都加入。

2.首先要把处理后的数据表现成波形形式,用波形生成函数并对其接线端子进行相应设置。

3.在波形生成之后加入两个频谱函数幅度谱相位谱函数,

并在后面进行相应的显示波形图连接。

进行波形生成,和FFT 实部虚部函数

4.滤波后的频谱分析与上面一样,波形图生成之后,将两个频谱图放在一起进行

对比分析。

数据记录与回放模块

1.首先在整体框图外面建立一个case 结构,case 结构的条件判断为。条件为真代表回放,条件为假代表不回放。执行程序时先选择条件假,将数据写入文件;然后再执

行条件真,回放数据波形。

2.将写入文件的程序框图放入条件为假的结构中,将读取文件的程序框图放入条件为真的结构中。

3.写入文件时,首先将动态数据转换成数组,然后将X 和Y 分别写入一个一维的电子表格文件,读取时只要用电子表格文件读取再转换成动态数据直接连接到波形图上显示就可以了。

4.需要特别注意的是,在提醒保存文件位置的对话框出来之后一定要按顺序分别存入x1,y1,x2,y2。读取的时候提醒读取文件位置的对话框出来之后也一定要按顺序选择,否则波形会错乱。

显示心率和判断心率异常模块

1.首先用波峰检测函数来找出波峰个数,然后将每个波峰的位置传给索引数组

函数,然后将找到的波峰个数减一后送入索引位置,这样就可以输出最后一个波峰的横坐标(即所有RR间期的总长度),然后除以波峰的个数就可以的算出一个RR间期的长度。

2.用RR 间期的长度除以采样周期就可以的得到一个RR间期所需时间,然后求出平均一分钟内出现了几个RR 周期(即平均心率)。

3.求瞬时心率时,建立一个输入变量,选择所需时刻的心率。然后求出这一时刻离哪一个波峰最近,求出这一波峰的位置和上一个波峰的位置进行相减姐可以得出瞬时RR间期的长度,然后同上面一样求出瞬时心率。

4.用输入控件选择心率上限和心率下限,然后将平均心率进行比较,如果在上下限范围之内则显示心率正常,否则显示心率异常。

登陆(用户名和密码)模块

1.首先建立一个while 结构,接下来在while结构里面设置一个条件结构的嵌套。

2.外层的条件结构用来判断是否登录,内层的条件结构用来判断用户名和密码是否正确。

3.建立局部变量字符串和访问确认,为后面的用户名口令正误做准备。

4.建立两个字符串输入变量,分别用作用户名和口令的输入,在外层的条件结构中加入两个字符串常量,设置为你自己的用户名和口令,如果输入变量中的用户名和口令与字符串常量设置的用户名口令相匹配,那么内层条件为真,可以继续执行下面的程序;如果不匹配则外层条件结构中的字符串输出变量则会显示“口令错误”。

5.这里的注意事项是,每启动一次程序就必须验证一次用户名和口令,并不是只要打开程序

执行时输入用户名口令登陆就可以了,只要程序停止即使未关闭下次运行就必须再次登陆(但是用户名和口令不必再次输入,只要点登录就可以了)。

4.前面板的设计说明

1.首先因为本次实验前面板要显示的图形比较多,所以首先在前面板上建立几个选项卡。

2.第一个选项卡放登录界面、数据显示和第一通道波形显示及滤波后波形;第二选项卡放入第二通道波形及滤波后波形;第三选项卡放入第二通道波形滤波前的幅频分析显示;第四选项卡放入第二通道波形滤波后的幅频分析显示;最后一个选项卡放入回放的第一通道和第二通道波形。

3.登陆界面:建立两个字符串输入控件,分别用来输入用户名和口令;在建立一个字符串显示控件:当输入用户名和口令之后会显示用户名和口令是否匹配,匹配显示口令正确进入程序;不匹配则显示口令错误,自动消除错误口令,再次输入。加入一个布尔按钮

并命名为登陆,再添加一个布尔指示灯,若用户名口令正确则亮起一下(加了延时程序),若用户名口令错误则不亮。

4.数据显示界面,添加一个布尔指示灯,设置属性使心率正常时绿灯亮,心率有异时红灯亮起。添加是三个输入控件,分别是心率上限、心率下限和瞬时心率的时刻选择;然后添加三个输出空间,分别是平均心率、瞬时心率和心电图总时间.

5.波形回放:波形回放界面添加一个布尔指示灯,开始运行程序时设置为红色,表示先记录数据,然后在程序执行完毕之后,将指示灯改为绿色,再次执行程序进行读取。

6.由于其他都是波形显示界面,只要添加显示的波形图即可,因此在这里不再过多说明。

5.调试过程

1.实验刚开始的数据处理部分就遇到了很大困难,由于这次的数据文件不同以往,数据并不完整,是以特殊形式存放的,再加上对很多实用的函数不了解所以无从下手。第一次试着用电子表格文件来读取数据,然后用索引数组进行数据处理,但是波形显示出来不正常。然后便调整了读取方式,通过对索引数组,右移函数,十进制数据转换函数和整合函数结合使用,最后终于成功解决了数据处理部分的难题,而且也学到了很多新函数的使用方法。

2.滤波方面刚开始一头雾水,根本不知道基线漂移和工频干扰是什么东西,但是经过多方面的查找资料和研究信号处理函数中所有滤波器的用法,终于选出了比较合适的滤波器来对波形进行合适处理。

3.波形回放部分算是问题出现比较大的一个,最初因为做过关于波形回放方面的实验,觉得这部分还是比较容易实现的,但是其实有很大的差距。因为二进制文件、文本文件在做回放的时候都出现了很多问题,所以左后我们选择了电子表格文件。但是用电子表格直接存储在回放的时候会出现波形紊乱的问题,所以我们就想到了将x,y 分别存放到一维电子表格文件中然后进行x,y 图的显示,最后成功了。

6.结果及分析

本次实验完成了心电图数据文件的读取和数据处理,滤波前后的波形显示,滤波前后的频谱分析,基线漂移和工频干扰滤除,波形的记录和回放,用户名和口令的登陆界面设计。

关于瞬时心率的显示问题,我觉得我们在这一方面做得不够好。程序需要手动输入时刻才可以显示该时刻的瞬时心率吧,这样相对来说比较麻烦。刚开始其实使用过延时来实现瞬时心率的动态显示,但是没有成功,目前只能做到手动输入时刻显示心率。

还有滤波方面,虽然成功去除了基线漂移和工频干扰,但是所用的几个滤波器是否会对波形造成不良影响,导致波形失真或丢失必要数据,这个我们无法确保,归根究底还是滤波只是和能力有所欠缺。

关于提高部分的登陆界面设计,可以说是基本完成了要求。但是预想应该是程序执行,跳出登陆界面,用户名口令正确后跳到主界面,但是界面的跳转方面的只是不成熟,无法实现预想的功能。

数据的记录和回放做的还是比较成功的,但是由于记录的时候分为了x1,y1,x2,y2的顺序来分别记录横纵坐标,所以可能使用时顺序会颠倒,导致不能正常回放,目前还没有消除直接存储波形带来的bug,这也是我们今后要提升的部分。

前面板的设计感觉还是不错的,较好实现了界面的友好交互,希望今后可以设计出更加美观使用的界面。

三.实验收获及小结

实验首先当然是巩固了许多基础知识,结合了平时实验掌握的相关内容:数组及各种数组函数,波形图的生成,各种结构的使用,存储和回放数据,滤波,数据文件的读取和数据处理等等。如果没有平时的实验做基础,这次大作业可谓是无从下手。

其实本次大作业也让我们掌握了许多的新函数还有前面板以前没有接触过的控件,比

如说右移函数,整合函数,写入电子表格函数等等。包括前面版的布尔按钮,选项卡指示灯等等。所以我们在巩固旧知识的同时也学会了很多新用法。

但我觉得更重要的是我们自主建立了一个大系统,这锻炼了我们的统筹和分块,纵览大局,各个击破,使我们从平时的小程序小版块上升到一个完整的系统。

经过这次实验感受颇深的一点就是,很多东西你以前见过也用过但是并不是透彻的了解了那个函数或者是控件,他和其他函数结合起来可以实现哪种功能,他还有什么别的作

用,这都是需要你在长期设计程序的基础上慢慢去掌握的东西。所以刚开始可能觉得虚拟仪器很简单,但是越学越难,这也就是所谓的“入门容易,成为大牛却很困难”。

希望我们可以在虚拟仪器的学习过程中程序设计思想越来越成熟,能力逐步提高。四.参考文献

刘旺锁基于虚拟仪器的扫频仪的设计与实现海军工程大学武汉

基于LabVIEW 的心电信号采集及分析方法研究

杨乐平labview高级程序设计北京清华大学出版社2003

张爱甲labview入门与虚拟仪器北京:电子工业出版社2004

郭继鸿心电图学人民卫生出版社

刘凤军医用电子仪器原理、构造

李智,赵岗金等24H动态心电记录及分析系统北京工业大学学报

余学飞医学电子仪器与设计广州:华南理工大学出版社

(附录:背景介绍见后一页)

附录:背景介绍

背景介绍:

一.心电图(Electrocardiography,ECG或者EKG)是一种记录心脏产生的生物电流的技术,记录的是电压随时间变化的曲线。临床医生可以利用心电图对患者的心脏状况进行评估,并做出进一步诊断。ECG记录是通过对若干电极(导联)感知到的生物电流进行采样获得的。图1 中显示了典型的单周期心电图波形。

通常说来,记录的心电信号会被噪声和人为引入的伪影所污染,这些噪声和

伪影在我们感兴趣的频段内,并且与心电信号本身有着相似的特性。为了从带

有噪声的心电信号中提取出有用的信息,我们需要对原始的心电信号进行处理。

从功能上来说,心电信号的处理可以大致分为两个阶段:预处理和特征提取。预处理阶段消除和减少原始心电信号中的噪声,而特征提取阶段则从心电

信号中提取诊断信息。

二.MIT 心电数据库介绍

1.M IT-B IH 心率失常数据库(MIT-BIH Arrhythmia Database 是美国麻省理工

学院(MIT)和波士顿贝丝以色列医院(BIH)合作进行心率失常的分析和研究,总结成的数据库,是世界上受到公认并广泛使用的标准心电数据库。数据库中的数据是通过将录制在磁带上的模拟信号进行模数转换后得到的数字信号,在存储时为了减少文件长度节省存储空间, 使用了自定义的格式,而无法通过通用的方式去读取数据。心律失常数据库共有48 个病例,每个比例数据长30 分钟,

总计约有116000多个心拍,包含有正常心拍和各种异常心拍,内容丰富、完整,并且有医学专家对每个心拍作出的识别和标注。数据库中数据的采样率为360Hz,11 位采样精度,一个采样值占两个字节。每个病例记录都记录了两个导联的数据,各个病例的导联并不相同,而是根据实际情况选择的。其记录名为100~124 和200~234的数字,其中一些数字未使用。记录名并不是文件名。每个数据由三个文件组成,分别是头文件(扩展名是.hea)、数据文件(扩展名为.dat)、注释文件(扩展名为.atr)。头文件详细说明了与它关联的数据文件的名字及其属性, 数据文件是以自定义的" 212"的格式按二进制存储的原始信号数据; 注释文件是记录心电诊断专家对信号分析的结果。数据文件, 即某一时刻的两道导联的数据,这些数据被压缩存放在三个字节中, 即第一道导联12位数据的低8位存在第一字节中, 高4 位存在第二字节的前4位中; 第二道导联12位数据的低8位, 存在第三字节中, 高4 位存在第二字节的后4位中(高4位包含符号)。

2.MIT-BIH ECG心电数据的下载

(1)下载获取MIT-BIH的数据

从下面这个官方网址可以下载到所有48 组MIT-BIH心电数据:

https://www.sodocs.net/doc/541430565.html,/physiobank/database/mitdb/

下面这个链接是MIT-BIH数据库的详细说明和使用指南:

https://www.sodocs.net/doc/541430565.html,/physiobank/database/html/mitdbdir/mitdbdir.htm

(2)MIT-BIH的数据格式

MIT 为了节省文件长度和存储空间,使用了自定义的格式,所以没有通用的读

取方式。

一个心电记录由三个部分组成:

①头文件[.hea],存储方式ASCII码字符。

②数据文件[.dat],按二进制存储,每三个字节存储两个数,一个数12bit。

③注释文件[.art],按二进制存储,格式定义比较复杂。

虚拟仪器实验报告四[1]

虚拟仪器实验报告四 专业年级电信081姓名李冬祥学号08808003成绩 一、实验目的:LabVIEW中字符串、数组、簇和矩阵 二、实验内容:LabVIEW基础学习 三、实验步骤:启动LabVIEW,创建VI程序,在前面板(用户界面)和后面板(程序框图)中进行试验。 三、实验结果: 练习1:组合字符串 练习2:字符串子集和数值的提取 练习3:Build Text Express VI

练习4:用循环创建数组 练习5:创建二维数组

练习6:多图区图形 练习7:使用创建数组功能函数 练习8:多态化练习

练习9:簇排序 练习10:簇 四、实验总结: 通过本次实验通作业了解Labview中的字符串、数组、簇和矩阵的用法掌握字符串及其函数在编程中的应用、列表和表格中创建字符串、利用字符串的功能函数组合新的字符串,同时掌握了字符串格式的编辑和Build Text Express VI的建

立与配置。掌握数组的建立和初始化,以及数组之间的基本算术运算。掌握簇的创建及簇操作函数的应用及使用簇与子VI传递数据。 五、实验作业: 1、为第3章的习题2连续温度采集监测添加报警信息,如下图所示,当报警发生时输出报警信息,例如“温度超限!当前温度78.23℃”,正常情况下输出空字符串。 思路:用第三章的 部分程序就可以 实现。 2、对字符串进行加密,规则是每个字母后移5位,例如A变为F,b变为g,x 变为c,y变为d… 思路:按照字母表实现这一加密功能,程序如下图:

3、产生一个3×3的整数随机数数组,随机数在0到100之间,找出数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。如下图。 思路:按要求产生一个3×3的整数随机数数组,随机数在0到100之间,找出数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。 4、利用簇模拟汽车控制,如右图所示,控制面板可以对显示面板中的参量进行控制。油门控制转速,转速=油门*100,档位控制时速,时速=档位*40,油量随VI运行时间减少。 思路:利用簇模拟汽车控制,如右图所示,控制面板可以对显示面板中的参量进行控制。油门控制转速,转速=油门*100,档位控制时速,时速=档位*40,油量随VI运行时间减少。

《虚拟仪器设计实验》实验二

实验二、程序结构的使用 一、实验目的 掌握条件结构、循环结构、移位寄存器、顺序结构的使用; 二、实验内容 设计使用循环结构、条件结构、顺序结构控制程序运行的虚拟仪器。具体内容如下:1.求一个数的平方根,当该数大于等于0时,输出开方结果;当该数小于0时,用弹出式对话框报告错误,同时输出错误代码-99999。 2.产生100个随机数并求其最小值和平均值。 3.用随机数(0-1)连续产生0~1的随机数,计算这些随机数平均值达到所用时间。 三、实验步骤 1.求一个数的平方根 启动LabVIEW,打开一个空白的VI。 在前面板窗口适当位置放置一个数值型控制件和一个数值型显示件,并把它们的标签分别修改为“x”和“sqrt(x)”。用编辑文本工具在适当位置,用适当的字体、字号填写实验名称、班级和姓名,图所示前面板供参考。 在框图程序窗口中,从函数模板上找到“大于等于”、“单按钮对话框”,“平方根”和“条件结构”并放置到适当位置,设计框图程序如图所示。 用“姓名实验2-1”为文件名保存你所做工作,如:李红实验。输入x值,运行程序并记录程序运行结果。 图虚拟仪器1的前面板

图虚拟仪器1的框图程序 2.产生100个随机数并求其最小值和平均值 启动LabVIEW,打开一个空白的VI。 在前面板窗口适当位置放置两个数值型显示件,并把它们的标签分别修改为平均值和最小值。用自由“编辑文本”工具在适当位置,用适当的字体、字号填写实验名称、班级和姓名,图所示前面板供参考。 在框图程序窗口中从函数模板上找到“For 循环”并放置到适当位置,为记数端口连接一个32位整型数100;创建两个移位寄存器分别用来从一次循环向下一次循环传递当前最小值和当前随机数累加值;初始化移位寄存器即为移位寄存器左侧端口赋值,设置当前最小值移位寄存器初值为1,当前随机数累加值移位寄存器初值为0,所对应的程序框图如图所示。创建移位寄存器的方法是在循环的左边框或右边框上弹出快捷菜单,然后选择“添加移位寄存器”。 在框图程序窗口中从函数模板上找到“最大值与最小值”、“除”、“加”、“随机数(0~1)函数”,设计框图程序如图所示。

虚拟仪器实验作业

石家庄铁道大学实验报告课程名称虚拟仪器技术分院试1304 班桌号 实验者姓名钱玉喜实验日期2016 年月日 评分教师签名 实验项目名称实验一 练习1:分别利用for和while循环的移位寄存功能,用两种方法求0+5+10+15…+45+50的值(等差数列的和)。

练习2:设计一评分程序,输入不同的分数会得到不同的评论,分数小于60,“不及格”指示灯会亮起来,同时显示字符串“你没有通过考试”;分数在60~69之间,“及格”指示灯会亮起来,同时显示字符串“及格”;分数在70~79之间,“中等”指示灯会亮起来,同时显示字符串“你考试通过了”;分数在80~89之间,“良好”指示灯会亮起来,同时显示字符串“成绩良好”;分数在90~99之间,“优秀”指示灯会亮起来,同时显示字符串“恭喜”;分数为100,“第一名”指示灯会亮起来,同时显示字符串“第一名”;如果输入为0~100以外的数字,会有错误提示,同时显示字符串“错误”。

石家庄铁道大学实验报告课程名称虚拟仪器技术分院试1304 班桌号 实验者姓名钱玉喜实验日期2016 年月日 评分教师签名 实验项目名称实验二 练习3:用顺序结构实现数值匹配:输入1~100之间的任意1个整数,然后系统随机产生1~100之间的整数,直到和预先输入的整数一样,然后输出匹配的次数和匹配的时间。

练习100次累加,用累加值除以循环次数,求这些随机数的平均数。再用判断平均数是否在范围内,如果在此范围内则点亮指示灯,‘比较’子模板中的‘判定范围并强制转换’函数判断数的范围。

石家庄铁道大学实验报告课程名称虚拟仪器技术分院试1304 班桌号 实验者姓名钱玉喜实验日期2016 年月日 评分教师签名 实验项目名称实验三 练习1:建立一个VI,产生一个包含20个随机数的数组,并输出它的第1,5,12,18个元素所组成的数组。

虚拟仪器大作业实验报告

东南大学生物科学与医学工程学院 虚拟仪器实验报告 大作业 实验名称:基于MIT-BIH心率失常数据库的心电信号系统的设计专业:生物医学工程 姓名:学号: 同组人员:学号: 实验室: 综合楼716 实验时间:2013/11/28 评定成绩:审阅教师:

目录 一.实验目的 二.实验内容 基于MIT-BIH心率失常数据库的心电信号系统的设计 1.实验要求和说明 2.程序设计流程图 3.程序各版块介绍说明 4.前面板的设计 5.调试过程 6.结果及分析 三.实验收获及小结 四.参考文献

一.实验目的 现代医学表明,心电信号(ECG)含有临床诊断心血管疾病的大量信息,ECG的检测与分析在临床诊断中具有重要价值,是了解心脏的功能与状况、辅助诊断心血管疾病、评估各种治疗方法有效性的重要手段。 本次大作业利用具有直观图形化编程和强大数字信号处理功能的虚拟仪器编程语言LabVIEW作为开发平台,设计一个基于虚拟仪器的简单心电信号分析系统,该系统具有心电信号的读取,处理分析,波形显示、心率显示及报警,波形存储和回放等功能。 二.实验内容 1.实验内容及要求 基于MIT-BIH心率失常数据库的心电信号系统的设计 1. 本次大作业所用原始信号是从MIT-BIH(Massachusettes Institute of and Beth Israel Hospital,美国麻省理工学院和波士顿贝丝以色列医院)心率数据库(https://www.sodocs.net/doc/541430565.html,/physiobank/database/mitdb/)中选取心电信号作为实验分析的数据。设计的系统要求对原始心电信号进行读取、绘制出其时域波形,利用原始心电数据中的时间数据控制显示时间,并具有保存回放功能,同时具有心率过快或过缓报警提示功能。 2. 心电信号是微弱低频生理电信号,通常频率在0.05Hz~100Hz,幅值不超过 4mV,它通过安装在皮肤表面的电极来拾取。由于实际检测工况的非理想,在ECG 信号的采集过程中往往会受到工频噪声及电极极化等各种随机噪声的影响。噪声的存在降低了诊断的准确性。其中影响最大的是工频干扰和基线漂移噪声。因此,在ECG 信号检测过程中,如何抑制工频干扰和基线漂移等是必须解决的问题。要求选择并设计合适的滤波器,除去所给心电信号的工频干扰和基线漂移。 3. 检测心率:检测信号心电的R波,计算平均心率和实时心率(R-R波时间间隔 的倒数),并显示实时心率和平均心率。 4. 对任一路心电信号滤波前后的信号进行时域分析和频谱分析,分别显示出结 果。

虚拟仪器技术实验报告

成都理工大学工程技术学院 虚拟仪器技术实验报告 专业: 学号: 姓名: 2015年11月30日

1 正弦信号的发生及频率、相位的测量实验内容: ●设计一个双路正弦波发生器,其相位差可调。 ●设计一个频率计 ●设计一个相位计 分两种情况测量频率和相位: ●不经过数据采集的仿真 ●经过数据采集〔数据采集卡为PCI9112〕 频率和相位的测量至少有两种方法 ●FFT及其他信号处理方法 ●直接方法 实验过程: 1、正弦波发生器,相位差可调 双路正弦波发生器设计程序:

相位差的设计方法:可以令正弦2的相位为0,正弦1的相位可调,这样调节正弦1的相位,即为两正弦波的相位差。 2设计频率计、相位计 方法一:直接读取 从调节旋钮处直接读取数值,再显示出来。 方法二:直接测量 使用单频测量模块进行频率、相位的测量。方法为将模块直接接到输出信号的端子,即可读取测量值。 方法三:利用FFT进行频率和相位的测量 在频率谱和相位谱上可以直接读取正弦信号的主频和相位。 也可通过FFT求得两正弦波的相位差。即对信号进行频谱分析,获得信号的想频特性,两信号的相位差即主频率处的相位差值,所以这一方法是针对单一频率信号的相位差。 前面板如下:

程序框图: 2幅频特性的扫频测量 一、实验目的 1、掌握BT3 D扫频仪的使用方法。 2、学会用扫频法测量放大电路的幅频特性、增益及带宽。 二、工作原理 放大电路的幅频特性,一般在中频段K中最大,而且基本上不随频率而变化。在中频段以外随着频率的升高或降低,放大倍数都将随之下降。一般规定放大电路的频率响应指标为3dB,即放大倍数下降到中频放大倍数的70.7%,相应的频率分别叫作下限频率和上限频率。上下限频率之间的频率范围称为放大电路的通频带,它是表征放大电路频率特性的主要指标之一。如果放大电路的性能很差,在放大电路工作频带内的放大倍数变化很大,则会产生严重的频率失真,相应的

虚拟仪器实验三

虚拟仪器实验报告三 专业年级机电113 姓名胡燕学号2011012579 成绩 一、实验目的: 学习掌握LabVIEW的程序结构,并对基本的结构:顺序结构、for循环,while循环、case结构、事件结构、使能结构、公式节点进行应用。 二、实验内容: 1 顺序结构(Sequence Structure) 2 For循环 3 While循环 4 Case结构 5 事件结构(Event Structure) 6 使能结构 7 公式节点(Formula Node) 8 跟着实例学—模拟温度采集监测系统 9 完成课后习题 三、实验步骤: 1 针对每种程序结构,首先学习程序结构的基本原理以及使用方法。 2 学习怎么在LabVIEW中建立该种程序结构 3 了解该种程序结构的数据基本传送类型 4 学习编写LabVIEW程序 5 完成该程序结构的练习题,加深对该种结构的应用 6完成课后题 四、实验总结: 本次上机实验主要学习了LabVIEW的程序结构,通过多程序结构的学习更加加深了对LabVIEW的兴趣,与其它软件对比,更加了解到LabVIEW 程序结构变成的简单以及实用性。 本次主要学习顺序结构、for循环、while循环、case结构、事件结构、使能结构和公式节点的基本编程方法和原理,以及简单的应用。通过使用各个结构进行编程发现LabVIEW的实用性。老师演示各个例题时发现做题方法的多样性。通过本次编程也对LabVIEW的数据类型以及类型的基本变换更加深入的学习了 本次实验接触到了更多的新知识,实验过程中遇到很多问题,但在老

师的指导下和同学的帮助下都把这些问题一一解决了。本次实验过后对虚拟仪器这门课程有更浓厚的兴趣了。 五、实验作业: 1. 利用顺序结构和timing面板下的tick count VI,计算for循环1000000 次所需的时间。 前面板贴图 第0帧 第一帧

实验五虚拟仪器 实验报告

虚拟仪器实验报告实验五:程序结构(2) 院(系)电子工程学院 专业电子信息工程 学生姓名陈鹤龄 学生学号 1402014 27 指导教师余炜 课程名称虚拟仪器

实验5 --1使用条件结构 1.实验目的: 学习使用条件结构(Case Structure)。 建立程序以检测温度是否超出范围,当温度超出上限时或下限时,前面板上的报警LED 将点亮,并显示当前的温度状态为“温度过高”或“温度过低”。在范围内时温度状态为“温度正常”。 2.设计步骤 1)前面板 1. 使用波形图标(Waveform Chart)显示实时温度和上、下限值。并且如图进行配置。 2. 添加两个数值输入件,作为“温度上限”、“温度下限”的输入。 3. 添加一个LED显示件,作为报警指示。报警时为红色,正常时为绿色。 4. 添加文本显示件,命名为“当前温度状态”。

2)框图程序 1.上图为不完整的程序框图,其中条件(Case)结构只给出了真(True)分支。请分 析程序功能,完成未给出的程序实现功能。主要实现温度值与上下限的比较,然后输出“温 度过高”,“温度过低”,“温度正常”的状态文本,实现对“报警”指示灯的控制。 2.将程序重新命名为e Temperature Control.vi ,并保存起来。 实验5 - 2 使用顺序结构 1.实验目的: 学习使用顺序结构(Sequence Structure)。 用For 循环产生一个长度为1000000(1 百万)点的随机波形,并计算所用时间。2.设计步骤: 1)前面板

1. 使用波形图表(Waveform Chart)显示随机数波形,并且如图进行配置。 2. 添加一个数值显示件,命名为“用时”。 2)框图程序 1. 使用顺序结构实现,其中用时间计数器(Tick Count)函数获得当前时间。 2. 试将上图的平铺式顺序结构(Flat Sequence Structure)改为层叠式顺序结构1)前面板 2)程序框图

虚拟仪器实验报告1

虚拟仪器实验报告 姓名:肖阿德班级:测控0801 学号:118 时间:地点:电气院楼305 实验一VI程序的创建、编辑和调试 1.熟悉LabVIEW环境。 新建一个VI,进行如下练习: ?任意放置几个控件在前面板,改变它们的位置、名称、大小、颜色等等。 ?在VI前面板和后面板之间进行切换 ?并排排列前面板和后面板窗口 2.创建一个VI。 发生一个值为0.0~1.0的随机数a,放大10倍后与某一常数b比较,若a>b,则指示灯亮。要求:①编程实现;②单步调试程序;③应用探针观察各数据流。 3.创建和调用子VI。 创建一个子VI,子VI功能:输入3个参数后,求其和,再开方。 编一个VI调用上述子VI。 4.编写一个VI求三个数的平均值。 要求: ?对三个输入控件等间隔并右对齐。 ?添加注释。 ?分别用普通方式和高亮方式运行程序,体会数据流向。 ?单步执行一遍。 5.实验个人总结: 前面板中控件的颜色、大小、名称等都可以在控件的属性中设置; 其中颜色可以使用工具选版的”设置颜色”来设置,并且比在属性中设置更灵活、简便; 探针设置后配合单步调试能清楚的展示程序运行的具体过程,便于明白程序和差错; 创建子VI时,图标的选择最好有针对性和个性,如可以自行绘制图标,便于在调用图标时快速了解子VI的功能作用;

虚拟仪器实验报告 姓名:肖阿德班级:测控0801 学号:118 时间:地点:电气院楼305 实验二数据操作 1、写一个VI判断两个数的大小,如右图所示:当A>B时,指示灯亮。 2. 写一个VI获取当前系统时间,并将其转换为字符串和浮点数。这在实际编程中会经常遇到。 3. 写一个温度监测器,如右图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。温度值可以由随即数发生器产生。 4.给定任意x, 求如下表达式的值 5.实验个人总结: 在获取系统时间的VI中,通过对格式化日期/时间字符串中的格式字符串的设置可选择需要输出的日期/时间的格式 当一些控件要求的数据格式与当前的输入/输出数据格式不相符时,可通过相应的转换函数进行强制转换; 在输入一些数学表达式时,注意一些特定的数学符号在LabVIEW中的规定表示法;

虚拟仪器实验报告一

虚拟仪器实验报告一 一、实验目的: LabVIEW编程软件入门学习 二、实验内容: 1.利用局部变量写一个计数器,每当VI运行一次计数器就加一。当VI关闭后重新打开时,计数器清零。 2.写一个温度监测器,如图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。温度值可以由随即数发生器产生。 3创建一个VI,比较两个数,如果一个数不大于另一个数,则点亮指示灯。

4产生一个值为0.0~100.0之间的随机数,然后除以一个在程序前面板中输入的数。当输入的数值为零时,前面板上放置的指示灯点亮,提示除法无效。 5.比较前面板中输入的三个数,并输出其中最大值。 6.在前面板输入一个三位整数,将其百位数值和个位数值对调后在前面板输出此新数。

7.输入一个自然数n ,求1~n 之间的所有自然数之和。 8.生成10~20之间随机数,并将每次生成的随机数组成的曲线显示在波形图表中。 10. 用LabVIEW 的基本运算函数编写以下算式的程序代码。 28572100768310225631563+?-+-÷+?25317813817.28.132++?-÷

11.利用华氏温度与摄氏温度的关系:华氏度=9×摄氏度/5+32编写一个程序,求摄氏温度为32、0、-15时的华氏温度。 12.输入一个数,判断其能否同时被3和5整除。 13.从键盘输入一个大写字母,要求改用小写字母输出。 14.输入一个数,判断这个数是否在10~100之间。

15.输入一个数,若此数大于0,则输出1,若此数小于0,则输出-1,若此数等于0,则输出0。 16.设圆半径为r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。 17.输入三角形的三边长,求三角形的面积。

labview实验报告

实验报告 课程名称虚拟仪器技术分析与设计 专业测控技术与仪器 班级1301 学号20 姓名郭鹏 实验一 LabVIEW虚拟温度检测系统 一、实验目的 1.了解LabVIEW的编程环境。

2.掌握LabVIEW的基本操作方法,并编制简单的程序。 3.学习建立子程序的过程 二、实验内容 1.建立一个测量温度的VI。 a.实验步骤 1)选择File?New,打开一个新的前面板窗口。 2)从Controls?Numeric中选择Tank放到前面板中。 3)从“结构”里选择一个for循环,用一个随机数乘与100输出到温度计 b.实验结果 前面板图: 程序框图: 三、实验总结 1.总结VI基本编程的快捷操作。 答:显示程序框图或前面板ctrl+E 框图中,对象的移动:shift+鼠标选择移动;对象的复制:ctrl+鼠标选择移动; 对象的删除:鼠标选择,按<退格>;前面板与框图并排:ctrl+T 工具(Tools)模板:在前面板或框图中按住键并单击鼠标右键。 控件(Controls)模板:在前面板激活状态,在前面板空白区单击右键。 函数(Functions)模板:在框图激活状态,在框图空白区单击右键。 消除所有断线:ctrl+B ;实时帮助:快捷键:ctrl+H 2.简述VI程序有什么构成,其各部分的功能是什么。 答:主要有:输入控件、显示控件、程序结构、函数控件、连线 输入控件:完成实时对变量的外界修改,即数据源 显示控件:完成输出显示数据、图形等。显示仪器分析结果 程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。 函数控件:构成程序的主要部分,完成对数据的采集、分析直至输出功能。 连线:用线的方式显示数据流,完成上述结构之间的关系构建。 3.思考:在前面板和框图程序中,如何区分控制器和指示器。 答:在前面板中,控制器用以外部输入数据,因此输入框为白色表示可主动输入。而显示器只有显示功能,用于被动输出虚拟仪器分析结果,数据框显示灰色,不能用于外部输入。 在程序框图中。控制器端子在右侧,用于连接数据输出线。显示器端子在左侧,用于连接数 据输入线。可以右键将显示图标勾掉,此时两种元件外观也不同。 4.心得体会及其它。 答:实验很简单,没吸引力——首先提下建议。Labview是一种图形编程软件。上手很快,但达到一定程度后,发现没有课本便很难取得进步。原因是,个人觉得labview最重要的是对程序编程结构的深入体会和各函数控件功能的充分掌握。前者可以通过看范例理解加深。

虚拟仪器实验3

实验三程序结构 1.用两种方式求连续生成的10个随机数的最小值。答: 程序框图显示结果 方法1 方法2 2.产生100个随机数,求其中的最大值,最小值和这100个数的平均值。 答: 程序框图显示结果3.分析下列两个程序的不同: 答:第一个循环开始前读入数据,如3,之后产生100个15显示,循环过程中改变滑钮值对循环无影响;第二个循环过程中可随时改变,且在循环结束后输出波形。

4.分别利用for循环的移位寄存功能和反馈节点两种方法求0+5+10+15…+45+50的值(等差数列的和)。 答: 位移寄存器法 反馈节点法结果显示 5.用while循环结构产生随机数,画出当前随机数的波形以及当前值和前一次随机数的平均值的波形。 答: 程序框图波形显示图 6.创建一个VI,实现对按钮状态的指示和按钮“按下”持续时间简单计算功能,按下按钮时,对应的指示灯亮,对应的数字量显示控件中开始计时。松开

按钮时,指示灯灭,计时停止。 答: 程序框图显示结果 7.温度报警程序,当温度值大于30则报警,小于-25则退出运行状态。 答: 程序框图显示结果 8.建立一个布尔按钮以及一个字符串显示控件,要求当按钮被按下时,显示“按钮被按下”,当按钮被松开时,显示“按钮被松开”。 答: 程序框图显示结果 9.建立一个枚举控件,其内容为张三,李四,王五三位先生,要求当枚举控件显示“张三”时,输出“张三在这里”;同理,当枚举控件显示“李四”,“王五”时输出“李四在这里”和“王五在这里”。 答:

程序框图结果显示 10.设计一评分程序,输入不同的分数会得到不同的评论,分数小于60,“警告”指示灯会亮起来,同时显示字符串“你没有通过测试!”;分数在60~99之间,“通过”指示灯会亮起来,同时显示字符串“你测试通过了!”;分数为100,“恭喜”指示灯会亮起来,同时显示字符串“你是第一名!”;如果输入为0~100以外的数字,会有错误提示,同时显示字符串“错误!”。 答: 程序框图

虚拟仪器LABVIEW大作业

LABVIEW回声探测器实验作业 安 徽 工 业 大 学 电气信息学院 自动化093

回声探测器 LabVIEW是由美国国家仪器公司创立的功能强大而又灵活的仪

器和分析软件应用开发工具。它是一种基于图形化的、用图标来代替文本行创建应用程序的计算机语言。在以PC为基础的测量和工控软件中,LabVIEW的市场普及率仅此次于C++/C语言。LabVIEW已经广泛地被工业界、学术界和研究实验室所接受,被公认为是标准的数据采集和仪器控制软件,LabVIEW使用的编程语言是G语言。G语言用图表表示函数,用连线表示数据流向。这次编程所用的是较新版本的LabVIEW 8.5。 一.设计目的:该实验基于labview8.5虚拟平台,使用图形语言编程,由回声发生器子VI产生回声信号,通过回声探测器进行探测分析。本实例利用两个波形图来分别显示回声信号和回声探测信号,并对这两个信号进行比对分析。 本实验设计主要内容包括三个部分:回声产生部分,回声探测部分,和结果显示部分。 回声探测器实例的前面板如图1:

图1 1.程序框图主要功能模块介绍:如图2回声探测器实例的程序框图 主要有四个功能模块组成,分别为回声产生子Vi功能模块,回声探测功能模块,结果显示功能模块,While循环功能模块,下面对每个功能块实现的具体处理功能和任务进行详细介绍。 图2 1>.回声产生子VI功能模块 回声产生子VI功能模块用来产生回声信号,此子VI命名为 回声产生器.vi, 图3给出了回声 产生子VI功能图

回声信号 图3 该子Vi主要用来产生回声信号,可将该模块产生的信号输入相应的波形图和回声探测功能模块中。另外,该子VI可以通过改变输入控件的参数来产生不同的信号。 2>.回声探测功能模块 回声探测功能模块的功能是通过“快速希尔伯特变换”,“实部虚部至极坐标转换”和“自然对数”等一系列函数节点的运算,将回声产生子VI功能模块产生的回声信号信息特征探测出来,“快速希尔伯特变换”函数变换是在FFT函数进行傅立叶变换的基础上执行离散希尔伯特变换的。其调用路径是“函数——信号处理——变换——快速希尔伯特变换”。 “实部虚部至极坐标转换”函数是将一复数坐标的直角坐标形式转换成极坐标形式,本例利用该函数将两个直角坐标系的数组转换为极坐标形式,其调用路径是“函数——编程——数值——复数——实部虚部至极坐标转换”。 “自然对数”函数是计算输入数值的自然对数值,其调用路径是

虚拟仪器在物理实验中的应用 实验报告

实验二十九虚拟仪器在物理实验中的应用 物理学院130061311 二下六组3号 2015.4.9 一.实验目的 1.了解虚拟仪器的概念 2.了解图形化编程语言LabVIEW,学习简单的LabVIEW编程 3.完成伏安法测电阻的虚拟仪器设计 二.仪器用具 计算机(含操作系统),LabVIEW软件,数据采集卡,电阻箱(用作标准电阻),导线,开关,待测电阻,二极管。 三.实验原理 虚拟仪器的硬件系统由PC机和数据采集卡(DAQ卡)组成.数据采集卡(DAQ卡)包括多路开关、放大器、采样/保持器、习D转换器以及其他有关电路组成.这些部分共同配合完成对信号数据的采集、放大以及模/数转换任务。 本实验中利用接口卡的一个通道为整个测量电路供电,利用两个输人通道分别测量总电压和标准电阻上的电压;利用测量得到的电压数值和标准电阻数值就可以得到电路中的电流以及待测电阻上的电压.在程序控制下,电路电压由OV开始逐渐增加到5V,电压每改变一次测量获得一组电压电流值,最后得到一个数组,经过线性拟合后就可以得到待测电阻值。 测量原理如图: 四.实验内容 1.初步熟悉LabVIEW 整个软件分为前面板和程序框图两部分。 前面板可以加入开关,旋钮各种控件和各种显示元件;在前面板添加的元件相应的子端

和图标会出现在程序框图上,可以在程序框图进实验编辑,另外,在程序框图内还有可控选择的大量函数模块以及各种实现程序的功能,例如循环,数字运算,比较,以及各种公式等。 2.创建一个模拟温度测量程序 前面板:开关(用于控制显示摄氏度/华氏度),温度计,温度值 程序框图:放入Demo V oltage Read 子程序,设计用开关切换摄氏/华氏度的逻辑程序,使温度计和温度值按需显示。 3.用虚拟仪器测量伏安特性 1)编写程序 前面板: 放入一个用于设置设备号的控制数、一个设定标准电阻值的控制数、一个用于设定测量间隔的控制数和一个显示测量电阻值的显示数。放人三个控制字符串,将名字分别改成“供电电压通道”、“测量总电压通道”、“测量电流通道”.分别用于设置输出输人的通道。 放上一个Express XY Graph,将名字改成“电阻的伏安曲线图”,并将纵坐标和横坐标分别改成“电压(V)”和“电流(A); 加人一个二维数组,把名字改成“数据”,用于显示测量的电压和电流。放人一个开关,用于控制程序进程. 程序框图: 设计一个循环程序,让程序不断改变电压,每次改变0.25V测20组电流电压数据,每次改变之后都使程序等待1s后测量,测量20组后循环停止,并画出电阻的伏安特性曲线图,计算出电阻R(斜率)。 2)连接口卡和外部电路 3)运行程序,记录结果,保存并退出 五.思考题 1.虚拟仪器与传统仪器有什么区别 传统仪器:数据显示形式单一,数据处理功能比较简单,不容易按需改装,不能共享数

LabVIEW虚拟仪器实验报告

1.实验目的: 熟悉LabVIEW软件的基本编程环境。 2.实验内容: 创建一个VI程序,并将此程序保存为子VI。此VI要实现的功能是:当输入发动转速时,经过一定运算过程,输出发动机温度和汽车速度值。 3.实验步骤 (1)启动LabVIEW,创建一个VI。 (2)在前面板中放置一个温度计控件,并修改控件标签名为发动机温度和设置最大值为100。该控件从“控件—经典—经典数值”子选项板中获得。 (3)按同样的方法在前面板中放置一个仪表控件,并修改仪表控件的标签名为汽车速度,标尺刻度范围为0~150。 (4)按同样的方法在前面板中放置一个数值输入控件,并修改控件标签名为发动机转速。 (5)从“窗口”下拉菜单中选择“显示程序窗口”切换到程序框图窗口。 (6)在程序窗口中创建乘法函数,该函数中函数选项板中的“函数—编程—数值”子选项板中选择,并和发动机转速输入控件连线,为乘法函数创建一个常量,修改为图中所示值。 (7)按同样的方法创建加法函数、平方根函数和除法函数,并按图中所示修改常量值和连好线。 (8)切换至前面板,在发动机转速控件中输入数值,点击运行按钮,运行VI程序。 (9)修改图标为T/V以表示该子VI输出量为发动机温度和汽车速度,并保存为vi.vi。 前面板: 程序框图:

1.实验目的: 熟悉子VI的调用。 2.实验内容: 创建一个VI程序,并在编写程序过程中调用实验一中创建的子VI。此VI要实现的功能是:通过旋钮控件来控件输入的发动机转速值,中间调用实验一中创建的子VI作为计算过程,从子VI输出的值分别输出至不同的数值显示发动机的温度以及当前汽车速度,同时判断当汽车速度超过100时,系统将产生蜂鸣声,报警提示。 3.实验步骤: (1)启动LabVIEW,创建一个VI。 (2)在前面板中创建一个旋钮控件,修改标签名为发动机转速,设置数值范围为0~5000,从旋钮控件中调出一个数字显示控件来同步显示旋钮控件当前值。 (3)在前面板创建两个数值显示控件,并修改标签名为汽车速度和发动机温度。 (4)切换至程序框图窗口。 (5)在程序框图中创建一个大于或等于函数。 (6)在程序框图中调用实验一的子函数,从函数选板中的“函数—选择VI”选在实验一创建的子vi.vi。 (7)在程序框图中创建一个蜂鸣器函数,并按图示连线情况连线。 (8)切换至前面板,在发动机转速中输入数值,点击运行按钮运行。 前面板: 程序框图:

(完整版)虚拟仪器设计实验报告

实验一 实验要求: 一、熟悉LabVIEW环境 二、创建一个VI,发生一个值为0~1的随机数a,放大十倍后与某一常数b比较,若a>b,则指示灯亮。要求: 1、编程实现; 2、单步调试程序; 3、应用探针观察各数据流。 三、创建和调用子VI 1、创建一个字VI,子VI功能;输入3个参数后,求其和,再开方。 2、编一个VI调用子VI。 程序框图:

1、 2、子VI调用: 实验现象:

实验小结: 实验一主要熟悉了软件的使用,用了一些计算以及子VI的调用,为后面的实验打下基础。 实验二 实验要求: 一、在程序的前面板上创建一个数值型控件,为它输入一个数值;把这个数值乘以一个比例系数,再由该控件显示出来。 二、创建一个3行4列的数组,(1)求数组的最大于最小值;(2)求出创建数组的大小;(3)将数组转置;(4)将该2二维数组改为一个一维数组。 三、创建一个簇软件,成员为字符型姓名,数值型学号,布尔型注册。从该控件中提取簇成员注册,并显示在前面板上。 程序框图: 一、 二、

创建数组。三、 创建一个簇。实验现象:一、

二、 三、

实验三 实验要求: 一、产生100个0.0~100.0的随机数,求其最小值,最大值、平均值,并将数据在Graph 中显示。 An=An-1+1/n(An-An-1)An是前n个数据的平均值。 二、产生100个0.0~100.0的随机数序列,求其最小值、最大值、平均值,并将随机数序列和平均值序列显示在Chart波形图中,直到人为停止。 三、程序开始运行后,要求用户输入一个口令,口令正确时,滑键显示一个0~100的随机数,否则程序立即停止。 四、编写一个程序测试自己在前面板输入一下字符串用的时间:A virtual instrument is a program in the graphical programming luanguage. 程序框图: 一、

虚拟仪器 实验报告

[键入文字] [键入文字] [键入文字] 近代无线电实验报告 虚拟仪器实验报告 课程名称:近代无线电实验 主讲老师:陆起涌 文章作者: 所属院系:复旦大学电子信息科学与技术专业

第一章实验概述 (4) 1.1 实验简介: (4) 1.2 具体要求: (4) 1.3采用技术: (4) 第二章虚拟仪器简介 (4) 2.1 测量技术发展 (4) 2.1.1 电磁技术的测量 (4) 2.1.2 基于模拟电子技术的测量 (5) 2.1.3 基于数字技术的测量 (5) 2.2 虚拟仪器发展 (6) 2.2.1 虚拟仪器的雏形 (6) 2.2.2虚拟仪器特点 (6) 2.2.3 虚拟仪器发展现状 (7) 第三章实验设备选取 (7) 3.1实体仪器:数字万用表FLUKE45 (7) 3.2 连接串线:RS232 (7) 3.3 编程软件、语言选取方案 (8) 3.3.1 LabVIEW (8) 3.3.2 VEE (8) 3.3.3 C#(C Sharp) (8) 第四章实验设计 (8) 4.1 硬件连接 (8) 4.2 软件设计 (9) 4.2.1 设计思路 (9)

4.2.2 程序界面 (9) 4.2.2 软件总体流程 (10) 4.2.3 初始化函数 (11) 4.2.4 测量过程流程 (12) 4.2.5 单位调整函数&屏幕调整函数 (13) 4.2.6 自动、手动、定时测量模式 (14) 4.2.7 数据处理、保存窗体 (15) 第五章实验过程与总结 (17) 5.1 实验中所遇到的问题 (17) 5.1.1 连接不稳 (17) 5.1.2 多流程冲突 (17) 5.1.3 定时器中无法改变主窗体内组件内容 (17) 5.2 实验结果 (18) 5.3实验不足之处 (18) 5.3.1 概率分析 (18) 5.3.2 功能不完善 (18) 5.4 实验心得 (18) 参考文献 (19)

虚拟仪器实验报告

实验一: 1.实验目的: 熟悉LabVIEW软件的基本编程环境。 2.实验内容: 创建一个VI程序,并将此程序保存为子VI。此VI要实现的功能是:当输入发动转速时,经过一定运算过程,输出发动机温度和汽车速度值。 3.实验步骤 (1)启动LabVIEW,创建一个VI。 (2)在前面板中放置一个温度计控件,并修改控件标签名为发动机温度和设置最大值为100。该控件从“控件—经典—经典数值”子选项板中获得。 (3)按同样的方法在前面板中放置一个仪表控件,并修改仪表控件的标签名为汽车速度,标尺刻度范围为0~150。 (4)按同样的方法在前面板中放置一个数值输入控件,并修改控件标签名为发动机转速。 (5)从“窗口”下拉菜单中选择“显示程序窗口”切换到程序框图窗口。 (6)在程序窗口中创建乘法函数,该函数中函数选项板中的“函数—编程—数值”子选项板中选择,并和发动机转速输入控件连线,为乘法函数创建一个常量,修改为图中所示值。 (7)按同样的方法创建加法函数、平方根函数和除法函数,并按图中所示修改常量值和连好线。 (8)切换至前面板,在发动机转速控件中输入数值,点击运行按钮,运行VI程序。(9)修改图标为T/V以表示该子VI输出量为发动机温度和汽车速度,并保存为vi.vi。 前面板: 程序框图:

实验二: 1.实验目的: 熟悉子VI的调用。 2.实验内容: 创建一个VI程序,并在编写程序过程中调用实验一中创建的子VI。此VI要实现的功能是:通过旋钮控件来控件输入的发动机转速值,中间调用实验一中创建的子VI作为计算过程,从子VI输出的值分别输出至不同的数值显示发动机的温度以及当前汽车速度,同时判断当汽车速度超过100时,系统将产生蜂鸣声,报警提示。 3.实验步骤: (1)启动LabVIEW,创建一个VI。 (2)在前面板中创建一个旋钮控件,修改标签名为发动机转速,设置数值范围为0~5000,从旋钮控件中调出一个数字显示控件来同步显示旋钮控件当前值。 (3)在前面板创建两个数值显示控件,并修改标签名为汽车速度和发动机温度。(4)切换至程序框图窗口。 (5)在程序框图中创建一个大于或等于函数。 (6)在程序框图中调用实验一的子函数,从函数选板中的“函数—选择VI”选在实验一创建的子vi.vi。 (7)在程序框图中创建一个蜂鸣器函数,并按图示连线情况连线。 (8)切换至前面板,在发动机转速中输入数值,点击运行按钮运行。 前面板:

LabView实验报告

机电系统创新性综合实验 实验报告 学院:机械工程学院 专业:机械设计制造及其自动化班级:机自 124 班 学号: 1208030436 学生姓名:王彤 指导教师:蔡家斌、曹阳 2015年12月12

目录 实验题目: LabView创新实验 (1) 实验一1.1实验内容 (1) 1.2实验过程 (1) 1.3实验小结 (3) 1.4实验总结与感想 (5) 实验二2.1实验内容. (5) 2.2 实验过程 (5) 2.3实验小结 (7) 2.4实验总结与感想 (8) 实验三3.1实验内容 (8) 3.2实验过程 (8) 3.3实验小结 (10) 3.4实验总结与感想 (11)

实验题目 本次LabView实验共有6个实验题目,有两个选择方案,我选择了第一种方案:在六个实验中选择了三个,分别是实验一、二、三。通过自学和同学间的互相帮助,我学会了LabView软件的使用,完成了本次实验。 实验一虚拟信号发生器的设计 1.1实验内容 设计一个虚拟信号发生器,能够产生正弦波、三角波、锯齿波、直流、随机白噪声等信号〔波型选择用按键或旋钮〕,且可以调整波形参数。通过示波器可以观察虚拟信号发生器的输出信号。可以通过前面板选择信号波形,调节信号的频率、幅值和相位〔频率、幅值、相位用数字窗口显示〕,并通过虚拟示波器观察生成的波形。 1.2实验过程 1.新建一个VI,在后面板上创建一个选择结构; 2.在选择器标签中选择一个设置为默认,并在后面添加4个分支,以便写入多种不同的程序; 3.在选择结构中建立一个仿真信号,属性设置-信号类型-正弦波-确定;

4.在仿真信号中的对应位置创建输入控件,输出处创建波形图,分别连接在仿真信号的相应位置。 5. 6.其他几种波形信号按照相同方式创建在不同的选择标签中,并在选择结构外部建立一个While循环,可以让程序连续执行。

虚拟仪器实验三

实验三LabVIEW编程的数组和簇与图形显示 (一)LabVIEW编程的数组和簇 一、实验目的 1.掌握如何创建、使用数组;数组函数的功能和应用,掌握它们的区别以及相应操作。 2.掌握如何创建、使用簇;簇函数的功能和应用,掌握它们的区别以及相应操作。 二、实验原理 1.数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。可以通过数组索引访问其中的每个元素。数组元素不能是数组、图表或者图形。 LabVIEW提供了很多用于操作数组的功能函数,位于函数Functions?数组Array中。其中包括创建数组、初始化数组、数组大小、数组子集、索引数组等。 创建数组:用于根据标量值或者其他的数组创建一个数组。 初始化数组:创建所有元素值都相等的数组。 数组大小:返回输入数组中的元素个数。 数组子集:选取数组或者矩阵的某个部分。 索引数组:用于访问数组中的某个元素。 建立数组的步骤如下: 1)从数组和类子模板(Controls-All Controls-Array & Cluster)上选中数组,放置在前面板中,此时为数组空壳,可以向里边添加(用拖拽的方法)数字、布尔、字符等数据类型的控制器或指示器,来建立相应的数组控制器和指示器。此时可以看到数组上有两个显示窗口:标号显示窗:标号从0开始,每单击一次“增加”键,标号显示值顺序递增。这个标 号就是数组元素的序号;对于一个含n个元素的数组,其标号为0~n-1。 元素显示窗:用来显示元素的数值。数组中的元素按序号排列。数组元素的查找按行 /列标号进行。 2)右键单击标号窗口,弹出一个快捷菜单,选择Add Dimension来增加数组的维数。 2.簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。它类似于C语言中的structure。使用簇可以把分布在框图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度,减少子VI的连接端子的数量。 簇相当于一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制模板上的各种控件,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出控件同时放入其中。因此,在编辑流程图时,可以减少连线数以及连线的节点数,最终简化流程图。它有多个输入,一个输出。 要建立簇,可以选择控制模板中数组和类子模板上的Cluster,将其调入前面板。向类控件中放入元素,即将控制模板中的相应控件放入其中,俗称把元素“捆绑”在一起。 捆绑(Bundle)数据 Bundle功能将分散的元件集合为一个新的簇,或允许你重置一个已有的 簇中的元素。可以用位置工具拖曳其图标的右下角以增加输入端子的个数。

labview实验报告

HUNAN INSTITUTE OF ENGINEERING 实验报告 课程名称虚拟仪器技术分析与设计__________ 专业测控技术与仪器 班级__________________ 1301 _______________ 学号20 姓名郭鹏

实验一LabVIEW 虚拟温度检测系统 一、实验目的 1.了解LabVIEW 的编程环境。 2.掌握LabVIEW的基本操作方法,并编制简单的程序。 3.学习建立子程序的过程 二、实验内容 1.建立一个测量温度的VI。 a.实验步骤 1)选择File?New,打开一个新的前面板窗口。 2)从Controls?Numeric中选择Tank放到前面板中。 3)从“结构”里选择一个for循环,用一个随机数乘与100输出到温度计 b.实验结果前面板图: 虚拟温度楡则 100- 2 & 晅 、J —40-E. 20-= 0-1程序框图: 三、实验总结 1总结VI基本编程的快捷操作。

答:显示程序框图或前面板ctrl+E 框图中,对象的移动:shift+鼠标选择移动;对象的复制:ctrl+鼠标选择移动; 对象的删除:鼠标选择,按< 退格>;前面板与框图并排:ctrl+T 工具(Tools)模板:在前面板或框图中按住键并单击鼠标右键。 控件(Controls)模板:在前面板激活状态,在前面板空白区单击右键。函数(Functions)模 板:在框图激活状态,在框图空白区单击右键。 消除所有断线:ctrl+B ;实时帮助:快捷键:ctrl+H 2?简述VI程序有什么构成,其各部分的功能是什么。 答:主要有:输入控件、显示控件、程序结构、函数控件、连线 输入控件:完成实时对变量的外界修改,即数据源 显示控件:完成输出显示数据、图形等。显示仪器分析结果 程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。 函数控件:构成程序的主要部分,完成对数据的采集、分析直至输出功能。 连线:用线的方式显示数据流,完成上述结构之间的关系构建。 3 ?思考:在前面板和框图程序中,如何区分控制器和指示器。 答:在前面板中,控制器用以外部输入数据,因此输入框为白色表示可主动输入。而显示器 只有显示功能,用于被动输出虚拟仪器分析结果,数据框显示灰色,不能用于外部输入。 在程序框图中。控制器端子在右侧,用于连接数据输出线。显示器端子在左侧,用于连接数 据输入线。可以右键将显示图标勾掉,此时两种元件外观也不同。 4.心得体会及其它。 答:实验很简单,没吸引力一一首先提下建议。Labview是一种图形编程软件。上手很快, 但达到一定程度后,发现没有课本便很难取得进步。原因是,个人觉得labview最重要的是 对程序编程结构的深入体会和各函数控件功能的充分掌握。前者可以通过看范例理解加深。 但后者只看范例是行不通的。每个函数控件都有不同的功能和使用要求,如果不知道,很难 使用和掌握。它的图形化语言和matlab软件中的Simulink语言相同。区别在控件上的不同,有些使用方式很类似。 实验二LabVIEW跑马灯实验 一、实验目的 1学习并掌握For循环和While循环以及它们的不同点。 2.学习使用移位寄存器(shift register)。 二、实验内容 1. 创建一个关于for循环的跑马灯VI a.实验要求:实现在for循环内放置随机数对象,并在前面板上显示随机数及for循环 的实时次数。并在前面板设置开关控制按钮,实现for循环的停止控制。最后将该VI保存 为for Loop.vi 文件。 b.实验步骤 先创建一个for循环,循环层数给到1000,在前面板调出七个布尔灯,从面板调出一个除法取余函数计数器i除与7余数送到七个等于比较器,比较数为0~6,比较结果接到布尔

相关主题