LabVIEW资料VI编辑和调试实验.pdf

上传人:yyf 文档编号:3579669 上传时间:2019-09-13 格式:PDF 页数:30 大小:399.88KB
返回 下载 相关 举报
LabVIEW资料VI编辑和调试实验.pdf_第1页
第1页 / 共30页
LabVIEW资料VI编辑和调试实验.pdf_第2页
第2页 / 共30页
LabVIEW资料VI编辑和调试实验.pdf_第3页
第3页 / 共30页
LabVIEW资料VI编辑和调试实验.pdf_第4页
第4页 / 共30页
LabVIEW资料VI编辑和调试实验.pdf_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《LabVIEW资料VI编辑和调试实验.pdf》由会员分享,可在线阅读,更多相关《LabVIEW资料VI编辑和调试实验.pdf(30页珍藏版)》请在三一文库上搜索。

1、 实验一实验一 VI 编辑和调试实验编辑和调试实验 一、实验目的:一、实验目的: 1、学习 LabVIEW 的基本知识; 2、掌握 LabVIEW 的初步操作技巧。 二、实验内容:二、实验内容: 1、创建 VI; 2、定制子 VI; 2、调用子 VI 完成采集数据过程。 三、实验原理:三、实验原理: 创建一个VI程序模拟温度测量过程。假设传感器输出电压与温度成正比。例如, 当温度为70F时,传感器输出电压为0.7V。本程序也可以用摄氏温度来代替华氏温度 显示,摄氏温度到华氏温度的转换公式为T=(F-32)/1.8(T为摄氏温度;F为华氏温 度)。本实验利用一个01的随机函数仿真由DAQ卡采集的

2、电压信号。利用模拟温度 测量程序作为子程序实现温度数据采集过程。 四、实验步骤:四、实验步骤: 1、创建、创建 VI: 建立一个测量温度的 VI。步骤如下: 1) 选择 FileNew,打开一个新的前面板窗口。 2) 从 All ControlsClassic ControlsClassic Numeric 中选择一个温度计; 从 All ControlsClassic ControlsClassic Boolean 中选择开关, 并将它们分别放到前面板 中。设置温度标题 (Caption) 为“温度”,显示范围为 0 到 100, 同时开放数字显示; 选择开关标题(Caption)为温度方式

3、选择。布置如图 1-1 的前面板图。 图 1-1 温度检测前面板图 3) 选择 WindowsShow Diagram 打开程序框图窗口。从功能模板中选择对象, 1 将它们放到流程图上组成图 1-2(其中的标注是后加的,在实验中不用添加) 。 4) 该流程图中新增的对象有 1 个乘法器、1 个减法器、1 个除法器、3 个数值常 数、一个随机数发生器、1 个选择器、温度和选择开关对象是由前面板的设置自 动在框图中添加。 ? 乘法器、减法器、除法器和随机数发生器由 All FunctionsNumeric 中 拖出。 ? 选择器由 FunctionsArithmetic & ComparisonE

4、xpress Comparison 中 拖出。 5) 用连线工具将各对象按图 1-2 连接。 连线过程中完成创建数值常数对象。 具体方法是: 用连线工具在某个功能函数或 VI 的连线端子上单击鼠标右键, 再从 弹出的菜单中选择 Create Constant,就可以创建一个具有正确数据格式的数值常 数对象。 选择函数 除法函数 随机数发生器 乘法函数 数值常数 图2 创建温度检测 VI 程序框图 6) 选择 FileSave, 把该 VI 保存在 LabVIEWActivity 目录中命名为:温度 转换.vi。在前面板中,单击 Run(运行)按钮,运行该 VI。 7) 选择 FileClose

5、,关闭该 VI。 2、建立子、建立子 VI: 子 VI(Sub VI)相当于普通编程语言中的子程序,也就是被其他 VI 调用的 VI。 可以将任何一个定义了图标和联接器的 VI 作为另一个 VI 的子程序。 在流程图中选择 FunctionsSelect a VI. ,进而选择要调用的子 VI。 构造一个子 VI 主要的工作是实现程序功能、定义它的图标和联接器。 每个 VI 在前面板和流程图窗口的右上角都显示了一个默认的图标。启动图标编 辑器的方法是,用鼠标右键单击面板窗口的右上角的默认图标,在弹出菜单中选择 Edit Icon。 2 下图显示了图标编辑器的窗口。可以用窗口左边的各种工具设计像

6、素编辑区中的 图标形状。编辑区右侧的方框中显示了一个实际大小的图标。图标编辑器的具体使用 细节参阅教材。 图3 图标编辑器窗口 联接器是 VI 数据的输入输出接口。如果用面板控制对象或者显示对象从子 VI 中输出或者输入数据,那么这些对象都需要在联接器面板中有一个连线端子。可以通 过选择 VI 的端子数并为每个端子指定对应的前面板对象以定义联接器。 定义联接器的方法是,用鼠标右键单击前面板窗口中的图标窗口,在快捷菜单中 选择 Show Connector。 联接器图标会取代面板窗口右上角的图标。LabVIEW 自动选择的端子连接模式 是控制对象的端子位于联接器窗口的左边,显示对象的端子位于联接

7、器窗口右边。选 择的端子数取决于前面板中控制对象和显示对象的个数。 联接器中的各个矩形表示各个端子所在的区域,可以用它们从 VI 中输入或者输 出数据。如果必要,也可以选择另外一种端子连接模式。方法是在图标上单击鼠标右 键单出快捷菜单,选择 Show Connector,再次重复以上操作弹出快捷菜单,选择 Patterns。 下面完成建立子 VI 的实验: )打开 LabVIEWActivity 目录中命名为:温度转换.vi,这是上一步实验所做 程序。 )在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择 Edit Icon.,也可以双击图标激活图标编辑器。注意只能在前面板中编辑图标

8、和 联接器。 )删除默认图标。使用 Select Tool(矩形框) ,单击并拖动想要删除的部分,按 下键;也可以通过双击工具框中的阴影矩形删除图标。 3 )用 Pencil Tool (铅笔工具)绘制一个温度计。 )用 Text Tool(文本工具)创建文本。得到图标将如下图所示。 图4 编辑后的图标编辑器窗口 )注意子 VI 图标根三种形式,建立图标 7)上角的图标窗口中。 ) 工具,同时端子变 成黑 温度显示对象。 一个移动的虚线框把它包围起来, 选中的端子的颜色 c. 这样VI 被其他的 VI 调用。子 VI 的图标 据颜色不同分为 256 色、16 色和黑白 过程中最好首先选中 25

9、6 色编辑选框,首先编辑 256 色图标。16 色和黑白图 标,可以通过 Copy from 功能从 256 色图标中提取。 单击 OK,关闭编辑器。新创建的图标就显示在屏幕右 8)用鼠标右键单击前面板中的图标窗口,在快捷菜单中选择 Show Connector, 设置联接器端子连接模式。在默认情况下,LabVIEW 会根据前面板中的控 制对象和显示对象的数目确定联接器的端子连接模式。因为前 面板中有两个对象,所以联接器有两个端子,如左图所示。用 鼠标右键单击联接器窗口, 在快捷菜单中选择 Rotate 90 Degrees (旋转 90 度) ,注意联接器窗口的变化,如左图所示。 将端子连接

10、到温度计和温度选择开关: a. 点击联接器底部端子。光标自动变成连线 色。 b. 单击 变为与控制/显示对象的数据类型一致的颜色。 如果单击前面板中的任何空 白区域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对 象和底部端子连接起来。如果端子是白色,则表示没有连接成功。 重复步骤 a 和 b,把上部的端子和温度选择开关连接起来。 d. 用鼠标右键单击联接器,在快捷菜单中选择Show Icon. )选择 FileSave ,保存该 VI。 就完成了此 VI 的编辑,并可以作为子 4 在主 程序的框图窗口里,都可以把其他的VI程序作为子程序调用,只要 被调 。子程序节 点并 度测量,并

11、把结果在波形图表上显 示。 给该开关的标题栏 2)hart控 3)势图将它的图标注解plot自动地标注为“plot 0”,使用文本修改工具将 4)度,需要对它的标尺进行重新定标。将Y轴的“10” 5) 部件。 VI 的程序框图中代表此子 VI。子 VI 的联接器(含有两个端子)包括输出温度 和输入温度方式选择。 3、子、子VI调用:调用: 在任意一个VI 用VI程序定义了图标和联接器端口即可。用户使用功能模板的Select a VI来完成 子VI调用。当使用该功能时,将弹出一个对话框,用户可以选择子VI。 一个子 VI 程序,相当于普通程序的子程序。节点相当于子程序调用 不是子程序本身,就如同

12、一般程序的子程序调用语句并不是子程序本身一样。如 果在一个框图程序中,有几个相同的子程序节点,即为多次调用相同的子程序。但请 注意,该子程序的拷贝不会在内存中存储多次。 本部分实验将创建一个新的 VI 程序,进行温 该 VI 程序使用我们前面创建的温度转换.vi 作为子程序。 1)新建一个VI,在前面板窗口中放置一个竖直开关, (Caption)标注为“Enable”,用于开始/停止数据采集操作控制。 在前面板内再放置一个趋势图(使用Graph子模板中的Waveform C 件),修改标题栏(Caption)为“温度历史趋势”。该图表将实时地显示温度 值。 由于趋 其重新标注为“Temp”。

13、因为趋势图用于显示室内温 改为“90”, 而将“0.0”改为“20”。 前面板样式如图1-5温度数据采集前面板所示。 此时暂时不要创建模式转换开关,我们将尝试从框图程序窗口创建前面板的 图1-5 温度数据采集前面板 5 6)选择WindowsShow D择FunctionExecution 7) vity目录中命名为: 8)集程序框图进行编程连线。 iagram打开程序框图窗口,选 ControlWhile Loop结构控件”放入框图程序窗口;调整该条件循环框的大 小,把先前从前面板创建的两个节点放入循环框内。 从All FunctionsSelect a VI中,选择LabVIEWActi

14、温度转换.vi的子VI。 按照图1-6的温度数据采 图1-6温度数据采集程序框图 9)创建模式开关。把连线Mode输入端口上,按鼠 10)口,使用文本修改工具,双击模式开关的“OFF”标签,并把它 11)将模式开关设置为ON状态,运行该VI程序。 环结构,只要条件满足,它 12)停束。 择Data OperationsMake Current Value d. tionLatch When Pressed 工具放在“温度转换”子VI的 标右键并选择Creat Control, 这样就可以自动创建模式转换开关, 并将它与 温度转换.VI子程序连线,再转换到前面板窗口,将模式转换开关的位置重 新调

15、整。 在前面板窗 转换成“华氏温度”,再把“ON”标签转换为“摄氏温度”。要转换开关状态, 可 以 使 用 Tool Palette 操 作 工 具 中 的Operating Value 手 型 工 具。 注:条件循环结构(While Loop)是一种无限循 就一直循环运行下去。在本例中,只要允许开关(Enable Switch)是ON状 态,该VI程序就一直运行,采集温度测量值,并在图表上显示。 止数据采集,可以点击Enable开关,使其状态变为OFF,循环结 13)修改Enable开关缺省设置,使你运行VI程序时不必每次打开该开关。 a. 若程序在运行状态,则关闭程序运行。 b. 把开关设

16、置为ON状态。 c. 点击开关,从弹出菜单中选 Default选项,这将使ON状态变为缺省值。 再点击开关, 从弹出菜单中选择Mechanical Ac 选项。 6 14)运行该关点击为OFF状态以停止数据采集。 开关将变为OFF状态, 增加 程序, 把开 但当条件循环结构再次读取其数值时,它又会变成ON状态。 定时器控制功能: 刚刚完成的程序,当运行程序时,程序运行速度非常快。如果你希望以一 定的 it Until Next ms Multiple功能(在All FunctionsTime&Dialog -7所示,使VI程序采样间隔为500毫秒。使用Time & Dialog子模板中 时间间

17、隔,例如一秒钟一次或者一分钟一次来采集数据,就需要增加定时 器控制功能。 可以使用Wa 子模板下)来满足上述条件。该功能模块可以保证循环间隔时间不少于指定的 毫秒数。 15)如图1 的Wait Until Next ms Multiple功能,再加上时间常数Numeric Constant,把它 设置为500。 图1-7定时数据采集程序框图 16)运行上述程序,试用不同的时间间隔值观察程序运行情况。 五、实五、实 温度转换除了程序中的做法,还可以用什么方法实现。 17)关闭并保存上述程序,文件名为Temperature Monitor.vi。 验思考题:验思考题: 1)华氏温度和摄氏 2)程序

18、中的温度历史趋势曲线是否可以使用 Graph 图实现,为什么。 7 实验二实验二 VI 程序结构实验程序结构实验 一、实验目的:一、实验目的: EW 程序结构的编程技巧; 循环使用; 使用。 三、三、 拟温度数据采样程序。增加数据采样的统计分析功能、温度控制 的超 环使用。环使用。 1、学习 LabVI 2、掌握 LabVIEW 复杂程序的运行特点。 二、实验内容:二、实验内容: 1、While Loop 2、Case 结构使用; 3、Sequence顺序结构 实验原理:实验原理: 完善实验一的模 限报警功能和采样数据的存盘保存功能。并借此训练学生熟练掌握LabVIEW中 常用的While L

19、oop循环结构、Case结构、Sequence顺序结构等程序结构的编程技巧及 复杂程序的运行与编制特点、编制方法。 四、实验步骤:四、实验步骤: 1、While Loop循循 图2-1 温度数据采集及分析前面板 8 通过本部分实验学习创建的Temperature Mon Open)。 Max、Min 在功能中Graph和Chart是两个基本的概念。一般说来 Cha 使用While Loop结构。修改实验一 itor.vi程序,在温度数据采集过程中,利用温度历史趋势波形实时地显示数据; 当采集过程结束后,在温度曲线图上绘制采集数据波形,并算出采集数据的最大值、 最小值和平均值。注意:该实验程序只

20、使用华氏温度单位。 1)打开实验一创建的Temperature monitor.vi程序(File 2)按照图2-1修改程序,增加温度曲线(Graph形式的图)和Mean、 三个数值型指示器(Indicator)。Mean、Max和Min中分别显示出温度的平 均 值 、 最 大 值 和 最 小 值 。 Graph 形 式 的 图 可 以 在 ControlsGraph indicatorsWaveform Graph位置找到;数值型指示器在ControlsNumeric Indicators下找到。 LabVIEW的图形显示 rt是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示

21、出来, 它可以反映被测物理量的变化趋势,例如显示一个实时变化的波形或曲线,传统的模 拟示波器、波形记录仪就是采用此种工作方式。而Graph则是对已采集数据进行事后 处理其结果,它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图 形显示出来。它的缺点是没有实时显示,但是它的表现形式比较Chart要丰富得多。 例如采集了一个波形后,经处理可以显示出其频谱图。同学在实验的过程中应该注意 观察Graph和Chart不同属性图的工作情况,学习其使用技巧。 图2-2温度数据采集及分析框图 3)选择WindowsSho图中完成图2-2所示框图 程序 方块称为通道(tunnel)。在本实验中, 通

22、道 w Diagram切换到框图窗口,在框 。被虚线框住的部分表示新增程序。 注意:条件循环(While Loop)边框上的 是条件循环的数据通道口,需要将采集的数据向后续程序输出,因此必须开放通 道索引。若要建立数据索引,在通道上单击鼠标右键,并选择Enable Indexing选项。 9 当通道索引开放后,在条件循环执行时,就会把数据顺序放入一个数组中。在循环结 束后,通道立即输出该数组。如果通道索引未开放,则通道仅输出最后一次循环输出 的数据值,即输出值为一标量而非数组。 为一数组函数。在All FunctionsArray下可以找到,其功能为求解输入数 组的元素的最大值和最小值。 为频

23、率均值求解函数。在All FunctionsAnalyzeMathematicsProbability and Statis 面板,并运行VI程序。 Enable Switch)设置为ON时,温度历史趋势 图实 Analysis.vi并存盘。 tics下可以找到,其功能为求解输入频率的均值,在这里我们用此函数求解 数组的均值。 4)返回前 运行情况说明:当允许运行开关( 时显示数据采集结果,温度曲线显示此前保存的温度采集数据;当允许运行开关 (Enable Switch)设置为OFF后,温度历史趋势图停止刷新数据采集结果,程序退出 条件循环,刷新采集数据数组,进行循环外部运算,并将结果送Mea

24、n、Max、Min 显示,温度曲线图刷新显示,程序退出执行。 5)将修改后的程序重命名为Temperature 图2-3 温度控制前面板 10 2、Case结构使用结构使用 验学习使用Case结构。修改Temperature Analysis.VI程序增加超限 温度 增加的部件。其中,高限 为数 it表示温度上限值;Normal Scope表示正常温度范围。高限(Above Lim 择ShowLegend和 Show 完成图2-4所示框图 程序 通过本部分实 检测功能。通过程序检测现场温度是否超出范围,当温度超出上限(High Limit) 时,前面板上的LED将点亮,并且蜂鸣器鸣响,从而实现

25、超限声光报警功能。 1)打开本实验创建的Temperature Analysis VI程序。 2)按照图2-3所示修改前面板。被虚线框住的部分表示 值型控制器(在All ContolsClassic ControlsClassic Numeric下可以找到) 、报警 为逻辑型指示器(在All ContolsClassic ControlsClassic Boolean下可以找到) 、当前 温度值状态为字符型指示器(在All ContolsClassic ControlsClassic String&Path下 可以找到) 。 High Lim it)数值型控制器用于设定上限报警范围;报警指示灯

26、(Warning Led)和当前温 度状态(Current Temperature State)用来表示温度是否超限。 在温度历史趋势图和温度曲线图上分别单击鼠标右键, 并且选 Dighital Display选项,可以增加图注(Legend)和数字显示。在Legend上单击 鼠标左键出现改变大小手柄(Resizing Handle),鼠标移近手柄当鼠标指针变为横向 工字型按住鼠标左键可以改变Legend大小及增加Legend数量。 3)选择WindowsShow Diagram切换到框图窗口,在框图中 。被虚线框住的部分表示新增程序。 图2-4温度控制框图 11 框图程序说明: 温度设定值做

27、出比较,如果检测温度值高于高限温度,则为温 度超 曲线图均采用双踪输出模式, 簇打 将程序重新命名为Temperature Control.vi,并保存起来。 3、S 习使用顺序(Sequence)结构使用并且实现将采样数据传送 到文 采集后,自动产生数据文件的头文件,它包括操作者名字、文件 名和 检测温度值与高限 限报警状态(Above Limit Warning State),否 则为正常温度范围状态(Normal Scope State)。当为 温度超限报警状态时,报警指示灯(Warning Led) 点亮,同时蜂鸣器鸣响,当前温度状态用文本方式标 明当前处于超温报警状态(Above L

28、imit)。超温报警 程序功能是通过Case结构实现的。当Case结构的判断 条件为TRUE时,TRUE Case框下的程序执行,蜂鸣 器鸣响、送出Above Limit文本;图中的TRUE Case 下面存在一个同属于此Case结构的FALSE Case框,当 Case结构的判断条件为FALSE时,予以执行。FALSE Case框程序结构如图2-5所示。 由于温度历史趋势图和温度 图2-5FALSE Case框程序结构 所以其输入数据均采用 包后送入的方式。温度历史趋势图和温度曲线图分别采用Bundle函数和Build Array函数实现功能(此二函数分别在All FunctionsClus

29、ter和All FunctionsArray 下) 。 4) equence顺序结构使用顺序结构使用 本部分实验目的在于学 件功能。 要求学生修改Temperature Control.vi程序, 以学习使用顺序结构和数据 文件存储的方法。 当程序停止数据 表头信息,然后将采集的数据附在头文件后面存储为文本文件。 12 图2-6 采样数据文件存储前面板 13 图2-7 采样数据文件存储框图 1)如图2-6所示添加增加控件,增加控件在虚线框内。其中,数据操作路径为文 件路径控制器(File Path Control);操作者为字符串控制器(String Control)。(此 二控件均在Cont

30、rolsText Controls下) 2)如图2-7所示,完成框图程序。顺序结构框图的第1帧程序见图2-8所示。 程序框图功能使用了如下的功能模块: Write Characters to File模块(在File I/O子模板)。该功能把一个字符串写入 一个新的文件或者附加到一个已存在的文件中。它在写入前打开或者创建一个文 14 件,在完成时关闭该文件。在本例中,它用来建立头文件格式。 Write to Spreadsheet File模块(在File I/O子模块)。该模块把一个二维 或者一维单精度数组转换成字符串,并把字符串写入一个新文件或者附回在 一个已存在的文件后面。在本例中,它将

31、由温度采集数据和上限值组成的二 维数组附加在一个已创建了头文件的数据文件后面。 Transpose 2D Array模块(在Array子模板)。在本例中,它把二维数组 转换成以列为分界的二维数组,这样在写入数据文件时它就会以列的形式显 示。 Concatenate String模块(在String子模板)。在本例中,它用于创建头 文件字符串。 程序框图中还使用了一些字符串常数。为Tab常数,表示Tab键的操作符; 为Enter(回车)常数,表示回车键的操作符。 顺序结构程序按指定的顺序执行各个程序步骤。在本例中,首先创建数据文件的 头文件,然后再将数据写入文件中。 图2-8采样数据文件存储顺序

32、结构第1帧程序框图 3)返回前面板,在High Limit控制栏中输入90,在操作者(Operator Name)控 制栏中输入你的名字,再输入数据文件名(例如C:jk.txt)。运行该程序。当Enable 开关设置为OFF状态后,将产生如下的ASCII文件。 叶天迟 温度值 极限值 24.204 90.000 20.552 90.000 42.802 90.000 25.099 90.000 27.020 90.000 29.809 90.000 79.033 90.000 65.039 90.000 7.798 90.000 15 64.380 90.000 19.670 90.000 1

33、1.956 90.000 4)将文件重新命名为Temperature Control Logger.vi,并存盘退出。 五、实验思考题:五、实验思考题: 1)循环边框通道索引关闭对程序的运行会造成什么影响。 2)程序框图中的字符串常数。如为Tab常数和为Enter(回车)常数,在程序运 行过程中起到什么作用。 16 实验三实验三 声音信号采集实验声音信号采集实验 一、实验目的:一、实验目的: 1、学习 LabVIEW 数据采样的方法; 2、掌握 LabVIEW 声音采样程序编制方法,熟悉文件存取的控制手段与方法。 二、实验内容:二、实验内容: 声音信号的数据采样及声音文件的存储; 三、实验原理

34、:三、实验原理: 利用LabVIEW提供的声音控件,设计一个基于声卡的声音信号采集程序,通过 麦克将外部的语音信号转化为模拟电信号,再经由声卡作为模拟电信号采集卡,并将 转化后的数字信号传送到微机,经LabVIEW程序控制完成音频信号的采集工作。 四、实验步骤:四、实验步骤: 1、准备工具:、准备工具: 要求必须具有声卡并正确安装声卡驱动程序的微机一台;与声卡兼容的麦克风一 支、耳机或音响自备。 2、声音信号的数据采样及声音文件的存储程序编制、声音信号的数据采样及声音文件的存储程序编制 图 3-1 声音采样程序前面板 1)如图 3-1 所示搭建声音采样程序前面板。录音、暂 停、停止录音三个按钮

35、为布尔型控制器(Boolean Control) ;音质、采样频率、采样位数为打包的声音格式 控件(Sound Format Control) ,在 All FunctionsSelect a VI 即可打开文件选择对话框,LabVIEW7.1 的安装目录 下Vi.libSoundLvsound.lib 打开此 lib 文件,此时会打开 一个控件选择对话框,从中选择 Sound Format.Ctl,打开 后即为此声音控件。样式如图 3-2 所示,可修改为图 3-1 所 示 形 式 。 缓 存 区 大 小 为 数 值 型 控 件 , 在 All 图 3-2 声音控件 17 ControlsCl

36、assic ControlsClassic Numeric 下可以找到。 2)程序框图如图 3-3 所示,此框图完成声音的录入工作。框图中所用的函数介绍 如下: SI Config 声音输入设置声音输入设置 a)功能: 该函数的主要功能是为声音输入配置以硬件声音输入设备。 图 3-3 声音录制程序框图 b)端子介绍: A. device:是指在 Windows 2000/NT/XP 上用于声音存取操作的一个输入设备。 在通常情况下,选 0 作为默认值。 B. sound format:声音格式是指设置声道数(Mono 单声道/Stereo 立体声) 、声音 采样频率(一般 8000,11025

37、,22050,或者 44100Hz 任选其一)和声音位数(8 位/16 位) 。 C. buffer size 缓冲区大小是 LabVIEW 从设备中转换数据的内部缓冲区的大小设 置。 D. error in 端子是指表述当前函数的一种错误条件或在其运行之前就发生的错误 情况。这个默认值是没有错误的。具有 error in 端子的函数会将 error in 的输入值传 送到 error out 端。并一直传下去直到执行 error 处理程序。 E. task ID out:返回一个与特定的输入设备(device)相关联的识别码。它可以 应用到其他的声音输出的 VI 操作中。 F. error

38、out 它包括的是错误的信息。 SI Start 输入声音开始:输入声音开始: a)功能: 该函数用于启动声卡开始采集声音数据。采集到的数据会被暂存在缓冲区中,这 一过程无需程序干预,由声卡硬件使用 DMA 方式直接完成,这样可以有效保证采集 过程的连续性。 18 b)端子介绍: A. task ID in 用于接收之前函数发出的与特定的输入设备(device)相关联的识 别码。 B. error in 同上 C. task ID out 同上 D. error out 同上。 SI Read 输入声音读入:输入声音读入: a)功能: 该函数用于等待采样数据缓冲区满的消息。当产生这一消息时,它

39、将数据缓冲区 的内容读取到用户程序的数组中,产生一个采样数据集合。若计算机速度不够快,使 得缓冲区的内容被覆盖,则会产生一个错误信息。这时应调节缓冲区的大小,在采样 时间与数据读取之间找到一个理想的平衡点。 b)端子介绍略。 SI Stop 输入声音停止:输入声音停止: a)功能: 该函数用于通知声卡停止采集外部数据。已采集而未被读出的数据就会留在缓冲 区中,可以使用 SI Read 函数一次读出。 b)端子介绍略。 SI Clear 输入声音清除:输入声音清除: a)功能: 该函数用于完成最终的清理工作,例如关闭声卡采样通道,释放请求的一系列系 统资源(包括 DMA 缓冲区、内存、声卡等)

40、。关闭与声音输入驱动 task ID in 关联的 设备和释放驱动程序所使用的计算机系统的所有资源。 b)端子介绍略。 程序运行控制说明:程序运行控制说明: 当系统刚启动运行时,通过声音配置函数进行声音控制配置,之后由于没有录音 启动信号和系统故障信号,系统程序停止在录音控制条件循环(While Loop)程序中, 处于等待下一步工作指令状态;当用户按下录音按钮时,系统程序退出录音控制条件 循环,并启动声音读取程序开始录音。 录音过程中,通过暂停按钮对录音过程进行控制。如果按下暂停按钮,声音暂停 录制;再次点按暂停按钮,录音恢复。暂停录音是通过一个 Case 结构进行控制,图 3-3 中列出了

41、当暂停按钮按下,Case 结构条件端子为 TRUE 时的程序编制情况,可以 看出当暂停按钮按下,程序执行 SI Stop 函数暂停声音录入,然后进入条件循环结构 等待暂停按钮发出恢复录音指令;当暂停按钮发出恢复录音指令时,程序退出暂停 Case 结果内部的条件循环,同时执行 SI Start 函数重新启动录音过程。暂停录音的 Case 结构中 FALSE 框程序框图如图 3-4 所示。 19 图 3-4 暂停录音 Case 结构的 FALSE 框程序框图 录音过程中结束录音功能,通过图 3-3 中所示 Stop3 按钮实现。首先,Stop3 按 钮按下,循环记录退出循环条件满足,当本次循环,循

42、环内部程序均执行完毕则退出 录音循环。 另外, Stop3 按钮通过一个 Case 框控制录音过程结束。 当 Stop3 按钮按下, 则其控制 Case 框的条件端子为 TRUE,则执行 SI Stop 函数停止录音;同时,通过属 性节点将录音按钮状态置为 OFF。当退出录音结束控制 Case 框后,系统程序执行 SI Read 函数对缓存中的采样声音数据进行读取。然后,推出录音循环,执行 SI Clear 函数释放录音中占用的系统资源,同时,执行 Write Wave 函数实现对声音文件的保 存。录音结束控制 Case 框的 FALSE 框程序框图如图 3-5 所示。 以上程序中的 SI 开

43、头的 MIC 声音录制控制函数在 All FunctionsGraphics & SoundSoundSound Input 下可以找到;Write Wave 函数在 LabVIEW7.1 安装目录 下Examplessoundsound.lib 下可以找到。Simple Error Handler 函数在 All FunctionsTime & Dialog 下可以找到。 图图 3-5 录音结束控制 Case 框的 FALSE 框程序框图 20 录音按钮属性节点建立方法;在程序框图中用鼠标右键单击录音按钮,弹出快捷 菜单选择 CreateProperty Node 即可。Error Out

44、的 Status 输出采用 Unbundle By Name 函数实现,此函数在 All FunctionsCluster 下可以找到。 五、实验思考题:五、实验思考题: 1、如果不执行 SI Clear 函数,程序对系统硬件会造成什么影响。 2、录音按钮的属性节点在程序中起到了什么作用。 21 实验四实验四 声音信号分析实验声音信号分析实验 一、实验目的:一、实验目的: 1、学习 LabVIEW 数据分析的方法; 2、掌握 LabVIEW 声音采样数据实时分析的手段,熟悉虚拟仪器分析函数的工 作特点。 二、实验内容:二、实验内容: 采样数据提取;数据的实时分析;音频曲线的功率谱分析。 三、实

45、验原理:三、实验原理: 本实验是在实验三的基础上,通过对采样数据的提取,进行实时的数据分析;通 过对LabVIEW提供的滤波函数、加窗函数、功率谱函数的调用实现音频曲线的调理 与分析。 四、实验步骤:四、实验步骤: 图 4-1 为音频信号分析程序前面板图。 本实验 VI 主要使用了 LabVIEW 中 While Loop 结构来实现整个程序的信号采集、存储、运行和退出等功能,并且应用了 Sound Input 和 Signal Processing 模板中的节点完成信号采集、时域图实时显示、加窗和功 率谱分析等操作。在信号分析之前加入了巴特沃思(Butterworth)低通滤波器,对原 始信

46、号进行平滑滤波处理以消除高次谐波失真和噪声干扰,提高信噪比。和模拟滤波 器相比,该数字滤波器不需要精度组件,不会因温度、湿度的变化产生误差。 图 4-1 音频信号分析程序前面板图 22 图 4-2 音频信号分析程序框图 采样数据提取采样数据提取 样数据有 Mono(单声道)和 Stereo(立体声)两种模式,这给音频 信号 由于音频采 的显示和分析带来了麻烦,为了统一输出信号形式,首先利用程序实现采样数据 的提取及分离任务,即将单声道和立体声音频信号统一转换为单声道信号。 程序处理方法如图 4-2 所示,首先 23 图 4-3 单声道音频信号转换程序 利用 Unbundle 函数 (在 All

47、 FunctionsCluster 下) 将 Sound Format 簇数据进行 拆包,通过两个 Case 结构分别对采样数据位数、声道方式进行选择进而将声音信号 转换为统一的单声道音频信号。Case 程序结构见图 4-3 所示。 实时的数据分析与音频曲线的功率谱分析实时的数据分析与音频曲线的功率谱分析 巴特沃思滤波器函数巴特沃思滤波器函数(Butterworth Filter) a)功能: 利用巴特沃思系数 VI 来产生数 字滤波功能。 b)端子介绍: A. filter type:滤波类型,它是通 过滤波的通频带来划分的。 0 低通 1 高通 2 带通 3 带阻 B: X:为滤波器的输入

48、信号端。 C. sampling freq: fs 是指采样频率, 默认值是 1.0,其输入值必须比 0 大。如果其 输入值为小于等于 0 的数值,则经此 VI 滤波后的输出值将会是一个空数组或者返回 一个错误信息。 D. high cutoff freq: fh 就是指高截止频率。当滤波类型为 0 或 1 时,此函数 VI 将忽略了这个参数。当滤波类型为 2 或 3 时,fh 必须比低截止频率 fl 高,并且遵守奈 奎斯特准则。 E. low cutoff freq: fl 是指低截止频率,其值必须遵守奈奎斯特准则。它的默认值 是 0.125。如果 fl 的值小于等于 0,或者大于采样频率

49、fs 值的一半,则经此 VI 滤波后 的输出值将会是一个空数组或者返回一个错误信息。当滤波类型是 2(带通)或 3(带 阻)时,fl 必须比小。 F. order:序列设定滤波序列,并且必须比 0 大。它的默认值是 2。如果序列是比 0 小或者等于 0 时,这个 VI 将会设置滤波 X 为空值或者繁华一个错误信息。 G. init/cont:控制初始化内部状态的。这个默认值是 False。 H. Error:返回错误或从此 VI 中的提取警告信息。 Butterworth Filter.VI 在 All FunctionsAnalyzeSignal ProcessingFilter 下。 多极时域窗口(多极时域窗口(Scaled Time Domain Window ) a)功能:用选择的窗口进行时域信号分析。 b)端子介绍: 24 A. Waveform:输入波形为时域信号波形。 B. Window:是指被应用于时域分析的窗口类型。 C. Windowed Waveform:为加窗分析后输出的时域信号。 D. window constants:窗口常数包括被选择窗口

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育


经营许可证编号:宁ICP备18001539号-1