基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx

上传人:b****4 文档编号:5200862 上传时间:2022-12-13 格式:DOCX 页数:13 大小:78.83KB
下载 相关 举报
基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx_第1页
第1页 / 共13页
基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx_第2页
第2页 / 共13页
基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx_第3页
第3页 / 共13页
基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx_第4页
第4页 / 共13页
基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx

《基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx》由会员分享,可在线阅读,更多相关《基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx(13页珍藏版)》请在冰豆网上搜索。

基于LABVIEW的虚拟信号分析系统方案设计书与开发.docx

基于LABVIEW的虚拟信号分析系统方案设计书与开发

毕业设计(论文)

题目:

基于LABVIEW的虚拟信号分析系统设计与开发

学习中心:

重庆信息工程专修学院奥鹏学习中心

年级专业:

0409级电气工程及自动化

学生姓名:

姜和峰学号:

0451480146

指导教师:

韩亚军职称:

讲师

导师单位:

重庆信息工程专修学院

 

中国石油大学(华东)远程与继续教育学院

论文完成时间:

2008年5月15日

中国石油大学(华东)现代远程教育

毕业设计(论文)任务书

发给学员姜 和 峰

1.设计(论文)题目:

基于LabVIEW的虚拟信号分析系统设计与开发

2.学生完成设计(论文)期限:

2007年11月1日至2007年12月1日

3.设计(论文)课题要求:

首先规划好个人的设计方案,结合所学的知识对论文进行进一步的探讨,论文要内容鲜明,题目新颖,文字流畅,内容阐述清楚。

格式严格按照学校规定排序。

如有不熟悉的知识点,向指导老师请教。

4.实验(上机、调研)部分要求内容:

在规定的时间内,到网上搜寻LabVIEW的相关信息然后摘抄下来,首先虚拟仪器是基于计算机的仪器,对虚拟信号系统设计进行一个了解,阐述波形的采集,波形存储,波形读取等程序的编程方法,框图程序和关键技术。

把相关的内容用Microsoftword2003排版论文的版面和图象处理软件来加工文中的图表。

5.文献查阅要求:

[1]刘君华.基于LabVIEW的虚拟仪器设计.电子工业出版社,2003.

[2]袁渊、古军.LabVIEW程序设计与应用.电子科技大学出版社,2000.

6.发出日期:

年月日

7.学员完成日期:

年月日

指导教师签名:

学生签名:

摘 要

本文介绍了用LabVIEW6.1采集卡实现虚拟信号分析仪基本功能的方法,并重点阐述了波形的采集,波形存储,波形读取等程序的编程方法,框图程序和关键技术。

虚拟仪器是基于计算机的仪器。

计算机和仪器的密切结合是目前仪器发展的一个重要方向。

粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。

随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。

另一种方式将仪器装入计算机。

以通用的计算机硬件及操作系统为依托,实现各种仪器功能。

虚拟仪器主要是指这种方式。

结合实例详细介绍了LabVIEW通过ActvieX自动化技术与MATLAB进行混合编程,达到了利用MATLAB优化算法库的目的。

将LabVIEW与MATLAB有机结合,是一条开发智能虚拟仪器的有效途径。

关键词:

LabVIEW数据采集MATLABActiveX自动化虚拟仪器

 

目录

摘 要i

目录ii

第1章前言1

第2章虚拟仪器的主要特点2

第3章工作原理及性能指标4

第4章系统功能设计6

4.1硬件实现6

4.2软件设计6

4.2.1数据采集7

4.2.2信号分析9

4.3应用举例12

4.3.1方法一:

使用MATLABScript节点12

4.3.2方法二:

使用ActiveX函数模板13

4.3.3两种调用方法的比较16

第5章结论18

致谢19

参考文献20

第1章前言

LabVIEW是美国NI公司具有革命性的图形化虚拟仪器开发环境,是业界领先的测试、测量和控制系统的开发工具。

它内置信号采集、测量分析与数据显示功能,集开发、调试、运行于一体,不仅提供了几乎所有经典的信号处理函数和大量现代的高级信号分析工具,而且LabVIEW虚拟仪器程序(VirtualInstrument,简称VI)可以非常容易的与各种数据采集硬件、以太网系统无缝集成,与各种主流的现场总线通信以及与大多数通用数据库链接。

“软件就是仪器”反映了其虚拟仪器技术的本质特征[1]。

LabVIEW是一个业界领先的工业标准软件工具,用于开发测试、测量和控制系统,前段时间神六的工程师接受采访时提到了LABVIEW应用。

LabVIEW自1986年问世以来,世界各国的工程师和科学家们都已将NILabVIEW图形化开发工具用于产品设计周期的各个环节,从而改善了产品质量、缩短了产品投放市场的时间,并提高了产品开发和生产效率。

使用集成化的LabVIEW环境与现实世界的信号相连,分析数据以获取实用信息,共享信息成果,有助于在整个企业范围内提高生产效率。

由于LabVIEW具有编程语言的灵活性,可以结合专为测试,测量和控制设计的内置工具,因此您可以建立各种应用程序,其范围可从温度监控到复杂的仿真和控制系统。

LabVIEW6.1版本推出了Express技术,简化了测试测量应用系统的开发进程,其灵活的交互式VI易与各种范围的I/O信号连接,用户只需点击鼠标配置应用系统,即可完成搭建工作并开始运行。

通过简单地修改ExpressVI的配置,可以快速反复地修改应用程序以适应新的测试测量需求。

第2章虚拟仪器的主要特点

虚拟仪器的主要特点有:

尽可能采用了通用的硬件,各种仪器的差异主要是软件。

可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。

用户可以根据自己的需要定义和制造各种仪器。

虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。

虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。

目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。

虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防,航天等领域已经有了相当的发展。

PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在MACINTOSH计算机上推出了LabVIEW2.0以前的版本。

对虚拟仪器和LabVIEW长期,系统,有效的研究开发使得该公司成为业界公认的权威。

普通的PC有一些不可避免的弱点。

用它构建的虚拟仪器或计算机测试系统性能不可能太高。

目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式仪器本身都没有面板,其面板仍然用虚拟方式在计算机屏幕上出现。

这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。

VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。

虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。

目前使用较多的是IEEE488或GPIB协议。

未来的仪器也应当是网络化的。

LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界,学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。

LabVIEW集成了与满足GPIB,VXI,RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。

它还内置了便于应用TCP/IP,ActiveX等软件标准的库函数。

这是一个功能强大且灵活的软件。

利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。

图形化的程序语言,又称为“G”语言。

使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。

它尽可能利用了技术人员,科学家,工程师所熟悉的术语,图标和概念,因此,LabVIEW是一个面向最终用户的工具。

它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。

使用它进行原理研究,设计,测试并实现仪器系统时,可以大大提高工作效率。

利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。

像许多重要的软件一样,LabVIEW提供了Windows,UNIX,Linux,Macintosh的多种版本。

第3章工作原理及性能指标

ActiveX自动化是基于组件对象模型COM(ComponentObjectModel)的技术,允许应用程序或组件控制另一个应用程序或组件的运行,它包括自动化服务器和自动化控制器。

MATLAB支持ActiveX自动化技术。

通过使用MATLAB自动化服务器功能,可以在其它应用程序中执行MATLAB命令,并与MATLAB的工作空间进行数据交换。

因此可以借助这一特性,把LabVIEW与MATLAB结合,充分利用MATLAB提供的大量高效可靠的算法和LabVIEW的图形化编程能力,混合开发出功能强大的应用软件。

基于数据库技术的专家系统将数据库技术与知识库技术结合起来,构造大规模的知识库系统,其知识量可达海量条规则与事实,而且从知识库中存取知识如同从数据库中存取数据一样迅速方便。

充分利用关系型数据库管理系统功能,可以方便知识库管理,缩短系统的开发周期,并方便的实现知识库的易维护性与可扩充性,这将是知识库系统的发展趋势。

同样利用数据库技术可以简化其它搜索策略的设计,实现了对正向推理和逆向推理设计的简化,使推理更快速、准确。

对于作为监测对象的机械系统本身来说,其运行过程复杂多变,因此系统既要能把每一运行时刻的各个测点数据获取到,还要同时能够把数据处理成简约易懂的图形、数字显示给用户,为此系统开启了双线程。

系统启动后同时有两个线程在运行,一个是工作者(worker)线程,另一个是用户界面(UI)线程。

前者(采样线程)负责数据的采集、计算、报警及文件的保存等后台工作;后者负责显示用户界面、控制第一个线程及数据的实时监测。

对机器运行情况进行监测时,首先要获取到监测部位的数据,因此,设置采样线程优先级较高,用户界面线程优先级一般。

这样保证了系统监测时,时刻都能得到需要数据。

声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。

声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经过DSP音效芯片的处理,将该数字信号转换为模拟信号输出。

声卡的基本工作流程为[2]:

输入时,麦克风或线路输入(LineIn)获取的音频信号通过A/D转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以PCM(脉冲编码调制)方式送到D/A转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(LineOut)送到音箱等设备转换为声波,人耳侦测到环境空气压力的改变,大脑将其解释为声音。

衡量声卡的技术指标包括复音数量、采样频率、采样位数(即量化精度)、声道数、信噪比(SNR)和总谐波失真(THD)等,主要介绍如下:

(1)复音数量代表了声卡能够同时发出多少种声音。

复音数越大,音色就越好,播放声音时可以听到的声部越多、越细腻。

(2)采样频率每秒采集声音样本的数量。

采样频率越高,记录的声音波形就越准确,保真度就越高,但采样数据量相应变大,要求的存储空间也越多。

(3)采样位数将声音从模拟信号转化为数字信号的二进制位数(bit)。

位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高。

例如,16位声卡把音频信号的大小分为216=65536个量化等级来实施上述转换。

目前一般的声卡最高采样频率可达96KHz;采样位数可达16位甚至32位;声道数为2,即立体声双声道,可同时采集两路信号,需要时还可选用多路输入的高档声卡或配置多块声卡;每路输入信号的最高频率可达22.05KHz,输出16位的数字音频信号,而16位数字系统的信噪比可达96dB。

第4章系统功能设计

4.1硬件实现

声卡一般有LineIn和MicIn两个信号输入插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。

若由MicIn输入,由于有前置放大器,容易引入噪声且会导致信号过负荷,故推荐使用LineIn,其噪声干扰小且动态特性良好。

声卡测量信号的引入应采用音频电缆或屏蔽电缆以降低噪声干扰。

若输入信号电平高于声卡所规定的最大输入电平,则应在声卡输入插孔和被测信号之间配置一个衰减器,将被测信号衰减至不大于声卡最大允许输入电平。

此外,将声卡的LineOut端口接到耳机上还可以实时的监听声音信号。

LabVIEW对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,对于高级的声卡采集信号时,要注意关闭如混响之类的一些特效,避免影响测量结果的真实性。

4.2软件设计

根据VI结构化的特征,把整个系统分为数据采集和信号分析两个模块,以友好的图形界面与用户进行交互。

LabVIEWSignalExpress提供与基于USB的模块化数据采集系统CompactDAQ的单次点击、即插即用的设置并且可用于270余种数据采集仪器。

NICompactDAQ现有30余种模块选择,帮助用户轻松地结合众多测量,例如RTD、电流I/O、高密度数字I/O、高速模拟I/O和高精度模拟I/O。

使用台式仪器进行重复测量或使用多种仪器测试(例如激励响应测量)通常要手工重复去调整仪器上的旋钮和按钮。

从数学上讲,对于确定的初始值,由动力系统就可以推知该系统长期行为甚至追溯其过去形态。

但在20世纪60年代,美国气象学家Lorenz在研究大气时发现,当选取一定参数的时候,一个由确定的三阶常微分方程组描述的大气对流模型,变得不可预测了。

如果模拟大气动力学特性的微分方程的解确定是混沌的,那么就不可能进行长时期的天气预报。

因为一个任意小的扰动,如蝴蝶翅膀的振动都有可能在将来某个时候改变地球另一边的天气。

这就是著名的蝴蝶效应。

一个LabVIEW程序分为3部分:

前面板、框图程序、图标/接线端口。

前面板用于模拟真实仪器的前面板;框图程序则是利用图形语言对前面板上的控件对象(分为控制量和指示量两种)进行控制;图标/接线端口用于把LabVIEW程序定义成一个子程序,从而实现模块化编程。

利用LABVIEW设计者可以向搭积木一样,轻松组建一个虚拟仪器软面板。

但图形化语言在软件设计中有一定的限制,因此,在虚拟仪器软件设计中可采用以LABVIEW为主,LABVIEW和C语言混合编程的方法。

Lorenz在耗散系统中首先发现了混沌运动,这为以后的混沌研究开辟了道路。

通过LabVIEWSignalExpress,工程师们可以轻松地在400多种模块化和独立仪器上进行自动化的数据采集、分析和存储。

工程师们可以通过使用LabVIEWSignalExpress节省大量宝贵的实验室工作时间,完成许多通用测量任务的自动化,例如电路特特性、扫频和数据记录。

4.2.1数据采集

数据采集模块根据用户设置的声音格式从声卡获得数据。

采集到的数据及其频谱特性以直观的图形方式呈现于用户面前。

该模块还提供保存所有或部分数据以及转到信号分析模块的功能。

由于PCM波形音频格式输出的信号质量最好,所以本文使用该格式对信号进行数字化处理、存盘和重载。

数据采集过程分为三步:

①初始化/配置声卡;②采样;③释放声卡。

图3.1为数据存盘部分框图程序。

图4.1数据存盘框图程序

LabVIEW把声卡的声道分为mono8-bit(单声道8位)、mono16-bit(单声道16位)、stereo8-bit(立体声8位)和stereo16-bit(立体声16位)。

若用单声道采样,左右声道信号都相同,而且幅值为原信号的1/2;用立体声采样,左右声道互不干扰,可以采集两路不同的信号,而且幅值与原信号相同。

声卡的采样频率分为8000Hz、11025Hz、22050Hz和44100Hz,应根据具体情况采用合适的频率。

本文根据主流声卡的性能指标,默认设置采样频率为44.1KHz,采样位数为16位,采样方式为单声道,这样采样的波形稳定,而且干扰小。

声卡对外部信号的采样在起始部分会有几十个不稳定的数据,所以无特殊要求时忽略了前100个数据。

图3.2所示局部用户界面中的波形是通过麦克风实时采集的女士高音,其效果已经满足了普通测量要求,在采集暂停和终止时可以通过LabVIEW波形显示器(WaveformGraph)自带的功能对波形进行观察和测量,对稳定的周期信号还可以直接准确的读出幅值和频率。

图4.2数据采集和谱分析预览部分的用户界面

4.2.2信号分析

首先我们先对信号分析仪作一个简介。

信号分析仪是用来对电信号进行测量,显示,波形存储,时域和频域分析的仪器。

虚拟信号分析仪主要由参数设置,功能选择,信号一,信号二和互相关分析文革模块构成:

1.参数设置模块。

完成波形显示,波形存储,读取波形数据,更新信号和退出。

2.功能选择模块。

实现波形显示,波形存储,读取波形数据,更新信号和退出。

3.信号一。

对应采集通道一,可实现滤波及加窗,自相关分析,自功率谱分析,统计分析和幅值分析。

4.信号二。

对应采集通道二,功能与信号一类似。

5.互相关分析。

对信号一和信号二进行互相关分析和功率谱分析。

程序运行时,首先通过往通道控件中输入通道号,来控制数据采集时的通道数,同时对扫描数,扫描率和缓冲大小进行配置。

配置完成后,可以点击波形采集,先观察信号的具体波形,如果不满足要求,则可以重新进行参数配置。

当所要采集的波形满足要求后,可以点击波形存储,把波形数据保存到指定的文件当中。

点击读取波形数据,把以前存储到文件中的数据读出来,并把相应的信号输送到信号一和信号二。

此时通过点击滤波及加窗,对信号进行滤波及加窗函数处理,同时把处理之后的数据输出到相关分析单元,对输出信号进行相关分析。

信号分析模块从采集模块获得数据,或者从文件重载以前采集并存盘的数据;对全部数据进行时域和频域分析并显示相应的时域图和频域图;重新做增强的数据保存工作,即保存所选时段数据的谱信息,以便作进一步的分析。

用户还可以对数据进行分段处理,甚至对该段数据按频段进行分析。

LabVIEW完全图形化的编程环境和数据流的驱动方式使用户可以非常直观的观察到程序代码的并行执行。

该系统充分利用LabVIEW的多线程(Multithreading)技术,为整个系统中的用户接口、数据采集、信号分析以及文件读写等多个操作自动分配优先级,让它们相互独立运行,避免了单线程系统中的调用阻塞,且不会浪费CPU时间[3]。

例如,用户接口操作被分配在一个特定的线程并被赋予较低的优先级,移动面板窗口这样的事件不会影响数据采集等对时间要求非常严格的操作,从而保证了系统的可靠性。

LabVIEW还有自动错误处理功能[1],利用其函数节点的errorin和errorout端口可在程序运行中某一个函数发生错误时自动挂起,弹出错误信息对话框,高亮显示出错函数的图标并将出错信息依次向后传递,后续函数将不再进行任何操作,直到程序最后做出相应的错误处理。

图3.3为信号分析模块的框图程序。

该VI主要使用了LabVIEW中WhileLoop结构来实现整个程序的信号采集、存储和运行退出等功能,并且应用了SoundInput和SignalProcessing模板中的节点完成信号采集、时域图实时显示、加窗和功率谱分析等操作。

在信号分析之前加入了Butterworth低通滤波器,对原始信号进行平滑滤波处理以消除高次谐波失真和噪声干扰,提高信噪比。

和模拟滤波器相比,该数字滤波器不需要精度组件,不会因温度、湿度的变化产生误差。

图4.3信号分析模块的局部框图程

4.3应用举例

在混合编程中,通常用LabVIEW设计用户图形界面,负责数据采集和网络通信;MATLAB在后台提供大型算法供LabVIEW调用。

4.3.1方法一:

使用MATLABScript节点

为了简化调用过程,LabVIEW提供了MATLABScript节点。

LabVIEW使用ActiveX技术执行该节点,启动一个MATLAB进程。

这样用户就可以很方便地在自己的LabVIEW应用程序中使用MATLAB,包括执行MATLAB命令、使用功能丰富的各种工具箱,如神经网络工具箱(NeuralNetworkToolbox)、优化工具箱(OptimizationToolbox)。

值得注意的是:

LabVIEWgnMATLAB之间的数据通信仅支持Real、RealVector、RealMatrix、Complex、VectorComplex、Matrix六种格式的数据,且必须根据具体情况进行选择。

当开发涉及工业控制的应用程序时,常常由于控制参数的非线性变化,而无法建立合适的模型。

由于此类问题,神经网络提供了一条有效的解决途径。

在LabVIEW开发环境下新建一个三层BP神经网络的VI程序,网络结构部分主要设置隐层(Hidelay)神经元的个数、传递函数(TransferFunction)以及网络训练算法(Algorithm)。

经过样本数据(TrainingData)训练过的网络,即可进行仿真测试了。

MATLAB脚本程序可以在MATLAB环境下调试,再使用MATLABScript节点导入MATLAB脚本;也可以直接在MATLABScript节点中编写。

位于Function>>Mathematics>>Formula模板中的MATLABScript节点可以导入MATLAB脚本。

脚本程序使用CASE语句进行传递函数和训练算法的选择。

MATLABScript节点中神经网络的输入层和隐层之间的权值矩阵inweight应指定为RealMatrix,在LabVIEW中对应的数据类型是二维实数据组Net.I-Weight。

变量名LabVIEW数据类型MATLAB数据类型sizeofalgorithmDoublefloatingpointnumericRealtoutweighthideboutbresult1DarraydoublefloatingnumericRealVectorpdatainweightMultidimensionalarraydoublefloatingpointnumericRealMatrix

在此程序中,得到的BP网络各层的权值矩阵、阈值向量和传递函数三类参非常有用的,它们决定了神经网络的结构与特性。

因此当神经网络训练好后,可以直接使用这些参数处理新的数据,得到预测值,而不必重新调用MATLAB。

这样程序的运行效率会更高。

另一方面,将调试好的神经网络VI创建成一个子VI,作为模块保存,当需要更新网络时,可以随时调用。

虽然通过MATLABScript节点进行通信比较易于实现,但以这种方式调用MATLAB时,在任务栏中将出现一个MATLAB图标,单击该图形会打开MATLAB窗口,在其中可以任意输入。

通常,这会干扰前台程序的运行,甚至造成程序的崩溃。

另一方面,当MATLABScript节点中的脚本执行完后,MATLAB也不能自动关闭。

4.3.2方法二:

使用ActiveX函数模板

在LabVIEW中使用引用(Refnum,也称“参考”)作为某个对象的唯一标识符,对象可以是文件、设备、网络连接等。

由于引用是指向某一对象的临时指针,因此它仅在对象被打开时有效,一旦对象被关闭,LabVIEW就会自动断开连接。

为了获得对MATLAB更多的控制,可以在框图程序中使用LabVIEW提供的相关子VI创建和获取自动化对象,然后在代码中调用对象拥有的方法和属性。

当不再需要对象时,可以随时释放。

LabVIEW可以调用MATLAB(Ver6.5)ActiveX接口提供的8个方法和1个属性:

(1)BSTRExecute([in]BSTRCommand):

Execute方法调用MATLAB执行一个合法的MATLAB命令,并将结果以字符串的形式输出。

其输入参数Command为字符串类型变量,表示一个合法的MATLAB命令。

(2)voidGetFullMatrix([in]BSTRName,[in]BSTRWorkspace,[in

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1