基于LabVIEW虚拟频谱分析仪的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业论文(设计)
题目:基于LabVIEW虚拟频谱分析仪的设计
学生姓名
学号
专业电子信息工程
班级
指导教师
学部计算机科学与电气工程
答辩日期2012年5月19日
基于LABVIEW虚拟频谱分析仪的设计
摘要
LABVIEW是一种有效的进行虚拟仪器设计和通信电路系统仿真的有效工具。
本设计基于“硬件的软件化”思想,在对信号分析、虚拟仪器技术和声卡的实用性进行理论分析的基础上,利用虚拟仪器专用语言LabVIEW开发环境,设计了基于虚拟仪器技术的语音信号分析仪。
用普通的计算机声卡代替数据采集卡,利用声卡和LABVIEW的多线程技术实现音频信号的数据采集,开发基于PC机声卡的虚拟音频信号分析仪。
该系统实现了数据采集、时域分析和频域分析等多种功能。
其中时域分析包括实时显示波形,测量信号电压、频率、周期等参数;频域分析包括幅值谱、相位谱、功率谱和FFT变换等。
实验表明:这类系统具有程序设计简单、通用性好、可移植性高、界面设计简单大方、易于操作等优点。
关键词:LABVIEW;虚拟仪器;数据采集;信号分析
Design the Virtual Spectrum Analysis Instrument Based on
LABVIEW
Abstract
LabVIEW is an effective tool in virtual electronic equipment design and simulation of communication circuit system. This article designed a kind of voice analyzer by using LabVIEW based on the theoretical analysis of digital signal processing theories, virtual instrument technology and sound card application. Substitute commercial DAQ card with sound card, combined with sound card and multithread technology of LABVIEW, the acquisition of volume was realized. This analyzer has realized signal functions such as data acquisition, time-domain analysis and frequency-domain analysis. The time-domain analysis includes the real-time display of the waveform, the signal parameter measurements of voltage, frequency and period. The frequency-domain analysis contains amplitude spectrum, phase spectrum, power spectrum and FFT transform. The system experiments show that: this design proposal takes some advantage of easy programmer, high versatility, good transplantation and easily worked, and so on.
Keywords:LABVIEW; Virtual Instrument; data acquisition; signal analysis
目录
摘要 ...................................................................................................................................... I I Abstract .. (III)
第1章绪论 (1)
1.1 研究背景 (1)
1.2 虚拟仪器的特点和发展 (1)
1.3 本设计的结构 (3)
第2章虚拟仪器及LabVIEW介绍 (5)
2.1 虚拟仪器的基本概念 (5)
2.2 虚拟仪器的构成及分类 (6)
2.3 LabVIEW简介 (8)
第3章基于LabVIEW虚拟频谱分析仪设计与实现 (11)
3.1abVIEW软件的应用方法 (11)
3.2频谱分析函数的设计 (15)
3.3 基于LabVIEW的虚拟频谱分析仪信号发生器模块 (17)
3.4 所用控件模块的设计 (18)
3.5虚拟频谱仪前面板与程序框图 (22)
第四章总结 (31)
4.1 本设计小结 (31)
4.2 存在的不足与展望 (31)
第4章参考文献 (32)
第5章致谢............................................................................................ 错误!未定义书签。
基于LABVIEW虚拟频谱分析仪的设计
第1章绪论
1.1 研究背景
随着微电子技术、计算机技术、软件技术、网络技术和现代测量技术的迅速发展,一种新型的先进仪器——虚拟仪器成为当前系统研究的热点。
虚拟仪器通过软件开发平台将计算机硬件资源与仪器硬件有机的融为一体,把计算机强大的数据处理能力和仪器硬件的测量、控制能力结合在一起,通过软件实现对数据的现实、存储以及分析处理。
在对大规模、集成化、智能化及数字电子仪器需求愈加迫切的形势下,计算机技术、仪器技术和通信技术相结合,产生了具有里程碑意义的新一代仪器——虚拟仪器。
虚拟仪器的出现开辟了仪器技术的新纪元,它是多门技术与计算机技术结合的产物,其基本思想逐步代替仪器完成某些功能,如数据的采集、分析、显示和存储等,最终达到取代传统电子仪器的目的。
虚拟仪器是计算机硬件资源、仪器硬件、数据分析处理、软件、通信软件及图形用户界面的有效结合,具有传统仪器所具有的信号采集、信号分析处理、信号输出等功能。
其基本构成包括计算机、虚拟仪器软件、硬件接口和测试仪器等。
1.2 虚拟仪器的特点和发展
虚拟仪器作为一种新型的仪器种类,具有以下特点[1]:
(1),不强调物理上的实现形式
虚拟仪器通过软件功能来实现数据采集与控制、数据处理与分析及数据的显示这3部分的物理功能。
其充分利用计算机系统强大的数据处理能力,在基本硬件的支持下,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等,通过软、硬件的配合来实现传统仪器的各种功能。
(2),在系统内实现软硬件资源共享
虚拟仪器的最大特点是将计算机资源与仪器硬件、DSP技术相结合,在系统内共享软硬件资源。
它打破了以往由厂家定义仪器功能的模式,而变成了由用户自己定义器功能。
使用相同的硬件系统,通过不同的软件编程,就可实现功能完全不同的测量
仪器。
(3),图形化的软件面板
虚拟仪器没有常规仪器的控制面板,而是利用计算机强大的图形环境,采用可视化的图形编程语言和平台,以在计算机屏幕上建立图形化的软面板来替代常规的传统仪器面板。
软面板上具有与实际仪器相似的旋钮、开关、指示灯及其他控制部件。
在操作时,用户通过鼠标或键盘操作软面板,来检验仪器的通信和操作。
除上述特点之外,与传统仪器相比,虚拟仪器还有如下几个方面的优势。
a.虚拟仪器用户可以根据自己的需要灵活地定义仪器的功能,通过不同功能模块的组合可构成多种仪器,而不必受限于仪器厂商提供的特定功能。
b.虚拟仪器将所有的仪器控制信息均集中在软件模块中,可以采用多种方式显示采集的数据、分析的结果和控制过程。
这种对关键部分的转移进一步增加了虚拟仪器的灵活性。
c.由于虚拟仪器关键在于软件,硬件的局限性较小,因此与其他仪器设各连接比较容埸实现。
而且虚拟仪器可以方便地与网络、外设及其他应用连接,还可利用网络进行多用户数据共享。
d.虚拟仪器可实时、直接地对数据进行编辑,也可通过计算机总线将数据传输到存储器或打印机。
这样做一方面解决了数据的传输问题,一方面充分利用了计算机的存储能力,从而使虚拟仪器具有几乎无限的数据记录容量。
e.虚拟仪器利用计算机强大的图形用户界面(GUI)[2]计算机直接读数。
根据工程的实际需要,使用人员可以通过软件编程或采用现有分析软件,实时、直接地对测试数据进行各种分析与处理。
f.虚拟仪器价格低,而且其基于软件的体系结构还大大节省了开发和维护费用。
上述虚拟仪器的特点不仅推进了仪器为基础的界面系统改造,同时也影响了以虚拟仪器为主的图形构造方法的进化。
过去独立分散、互不相干的许多领域,虚拟仪器通过软件开发平台将计算机硬件资源与仪器硬件有机的融为一体,把计算机强大的数据处理能力和仪器硬件的测量、控制能力结合在一起,通过软件实现数据的显示、存储和分析处理。
虚拟仪器的出现时仪器发展史上的一场革命,代表着仪器发展的最新方向和
潮流,是信息技术的一个重要领域,必将对科学技术的发展和工业生产产生不可估量的影响。
电子仪器发展至今,大体可分为四代:模拟仪器、数字仪器、智能仪器和虚拟仪器。
第一代模拟仪器如指针式万用表、晶体管电压表等,他们的基本结构是电磁机械式的,借助指针来显示最终结果。
第二代数字化仪器相当普及,如数字电压表等。
这类仪器将模拟信号的测量转化为数字信号的测量,并以数字方式输出最终结果,实用于快速响应和较高准确度的测量。
第三代智能仪器内置微处理器,既能进行自动测试,又具有一定的数据处理,可取代部分脑力劳动,习惯上称为智能仪器。
它的功能块全部是以硬件的形式存在的,无论是开发还是应用,都缺乏灵活性。
第四代虚拟仪器是现代计算机技术和测量技术相结合的产物,是传统仪器观念的一侧巨大的变革,是将来虚拟产业发展的一个重要方向。
虚拟仪器的功能和性能已被不断地提高,如今在许多应用中它已成为传统仪器的主要替代方式。
随着PC、半导体和软件功能的进一步更新,未来虚拟仪器技术的发展将为测试系统的设计提供一个极佳的模式,并且在测量和控制方面都有无以伦比的强大功能和灵活性。
可广泛应用于电子测量、振动分析、声学分析、故障诊断、航天航空、军事工程、电力工程、机械工程、建筑工程、铁路交通、地质勘探、生物医疗、教学及科研等诸多方面。
从1988年开始,陆续有虚拟仪器产品面市。
此后,虚拟仪器产品的陆续飞速增加。
1.3 本设计的结构
本设计的核心内容是采用PC技术、DSP技术和LabVIEW多线程技术,实现了对声卡采集的音频信号实时、高保真的采集与处理,同时也可完成对波形生成模块产生的模拟信号的时域分析和频域分析。
对于虚拟频谱分析仪我们必须从虚拟仪器讲起,使大家了解虚拟仪器的背景、发展情况及其应用领域,更深一步了解到虚拟仪器的广泛应用。
然后提出虚拟仪器的特点,即虚拟频谱分析仪与传统频谱分析仪相比之下的
明显优势,因此研究虚拟频谱分析仪就意义深刻了。
讲到虚拟频谱分析仪就首先要了解图形化设计软件LabVIEW。
本设计第三章着重讲到LabVIEW软件的用法以及基于LabVIEW的虚拟频谱分析仪器所用模块和分析函数的设计,因为在虚拟频谱分析仪的设计中全部应用的LabVIEW软件,对其的研究有相当大的潜力。
第四章是对虚拟频谱分析仪器实现的功能和特性以及不足之处的描述,最后对本设计过程及设计内容做了总结。
第2章虚拟仪器及LabVIEW介绍
2.1 虚拟仪器的基本概念
传统仪器一般是一台独立的装置,从外观上看,它是一般由操作面板、信号输入端口、检测结果输出这几个部分组成。
操作面板上一般有一些开关、按钮、旋钮等。
检测结果的输出方式有数字显示、指针式表头显示、图形显示及其打印输出等[3]。
从功能方面分析,传统仪器可以分为信号的采集与控制、信号的分析与处理、结果的表达与输出这几部分。
传统仪器的功能都是通过硬件电路或固化软件实现的,而且由仪器生产厂家给定,其功能和规模一般都是固定的,用户无法随意改变结构和功能。
传统仪器大都是一个封闭的系统,与其它设备的连接受到限制。
另外,传统仪器价格昂贵,技术更新慢、开发费用高。
随着计算机技术、微电子技术和大规模集成电路技术的发展,出现了数字化仪器和智能化仪器。
尽管如此,传统仪器还是没有摆脱独立使用和受同操作的模式,在较为复杂的应用场合或测试参加较多的情况下,使用起来就不太方便了。
这三方方面的原因,是传统仪器很难满足信息时代对仪器的要求。
那么如何解决这个问题呢?可以设想,在必要的数据采集硬件和通用计算机支持下,通过软件来实现仪器的部分或全部的功能,这就是设计虚拟仪器的核心思想。
所谓虚拟仪器,就是在通用计算机平台上定义和设计仪器的功能,用户操作计算机的同时就是在应用一台专门的电子仪器。
虚拟仪器以计算机为核心,充分利用计算机强大的图形界面和数据处理能力,提供对测量数据的分析和显示功能。
虚拟仪器技术给用户一个充分发挥自己的才能、想象力的空间。
表2-1为传统仪器与虚拟仪器的比较一览表。
表2-1 传统仪器与虚拟仪器的比较
传统仪器虚拟仪器
仪器厂商定义用户自己定义
硬件是关键软件是关键
仪器的功能、规模均已固定系统功能和规模可通过软件修改
和增减
封闭的系统,与其它设备连接限制
基于计算机的开放系统,可方便的同外设、网络设备连接
价格昂贵价格低,可重复利用
技术更新慢技术更新快
开发和维护费用高软件结构可大大节省开发和维护
的费用
多为实验室拥有个人可拥有的实验室
2.2 虚拟仪器的构成及分类
虚拟仪器可以由多种接口(如GPIB、VXI、PXI等)或具有这些接口的仪器,来连接构成被测控对象和计算机。
虚拟仪器的结构图如图2-1所示
图2-1 虚拟仪器结构
虚拟仪器系统包括仪器硬件和应用软件两大部分。
仪器硬件是计算机的外围电路,与计算机一起构成了虚拟仪器的硬件环境,是应用软件的基础;应用软件则是虚拟仪器的核心,在基本硬件确定以后,软件通过不同功能模块即软件模块的组合构成
多种仪器,赋予系统特有的功能,以实现不同的测量功能。
虚拟仪器的构成方式主要有5种类型[4]:
1,PC-DAQ系统PC-DAQ系统是以数据采集卡、信号调理电路及计算机为仪器硬件平台组成的插卡式虚拟仪器系统。
这种系统采用计算机的PCI或工SA总线,数据采集卡直接插入计算机底板上的相应总线插槽.
2,GPIB系统GPB系统是以PB标准总线仪器与计算机为仪器平台组成的虚拟仪器测试系统。
3,VXI系统VX 6是以VXI标准总线仪器模块与计算机为仪器平台组成的虚拟仪器测试系统。
4,PXI系统PX工系统是以PXI标准总线仪器模块与计算机为仪器平台组成的虚拟仪器测试系统。
5,串口系统串口系统是以Serial标准总线仪器与计算机为仪器平台组成的虚拟仪器测试系统。
虚拟仪器硬件连接被测对象和计算机。
根据不同的接口类型,虚拟仪器的硬件结构包括数据采集系统、GPIB仪器控制系统等不同部分,如图2-2所示。
图2-2 虚拟软件体系结构
虚拟仪器软件系统结构VISA(Virtual Instrumentation Software Architecture)主要包含两个层次:用户应用程序和设备驱动程序。
如图1-2所示,设备驱动程序是联系用户应用程序与底层时间设备的基础。
每一种设备驱动程序都是为曾加编程灵活性和提高数据
吞吐量而设计的,每个设备驱动程序都具有一个共同的应用程序编程的接口(API)。
因此,不管虚拟仪器使用什么计算机或操作系统,最终所编写的用户应用程序都是可
以移植的。
2.3 LabVIEW简介
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一个完全的、开放式的虚拟仪器开发系统应用软件,利用它组建仪器测试系统和数据采集系统可以大大简化程序的设计。
LabVIEW与Visual C++、Visual Basic、Lab Windows、CVI等编程语言不同,后者采用的是基于文本语言的程序代码(Code),而LabVIEW则是使用图形化程序设计语言G(Graphic),用框图代替了传统的程序代码。
LabVIEW所运用的设备图标与科学家、工程师习惯的大部分图标基本一致,这使得编程过程和思维过程非常的相似[5][6]。
如下图2-3所示为LabVIEW的初始界面。
图2-3 LabVIEW 初始界面
LabVIEW包含有专门用于设计数据采集程序和仪器控制程序的函数库和开发工具库。
LabVIEW的程序设计实质上就是设计一个个的“虚拟仪器”,即“VI”。
在计算机显示屏幕上利用函数库和开发工具库产生一个前面版(Front Panel);在后台则是利用图形化的编程语言编制用于控制前面板的框图程序。
程序的前面板具有与传统仪器相类似的界面,可接受用户的鼠标和键盘指令。
一般来说,每一个VI都可以被其他VI 调用,其功能类似于文本语言的子程序嵌套;而这种嵌套的层次,从理论上讲,是不
受任何限制的[7]。
LabVIEW是带有可扩展函数库和子程序库的通用程序设计系统。
它提供了用于GPIB设备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储的应用程序模块[8]。
传统的计算机语言(如C)中的顺序执行结构在LabVIEW中被并行机制所代替;从本质上讲,它是一种带有图形控制流结构的数据流模式(Data Flow Mode),这种方式确保了程序中的函数节点(Function Node)只有在获得它的全部数据后才能够被执行。
也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响。
既然LabVIEW程序是数据流驱动的,数据流程序设计规定,一个目标只有当它的所有输入有效时才能够被执行;而目标的输出只有当它的功能完全时才是有效的。
这样,LabVIEW中被连接的函数节点之间的数据流控制着程序的执行次序,而不像文本程序受到行顺序执行的约束。
从而,我们可以通过相互连接函数节点快速简洁的开发应用程序,甚至还可以有多个数据通道同步运行,即所谓的多线程(Multithreading)。
LabVIEW的核心是VI。
VI有一个人机对话的用户界面——前面板(Front Panel)和相当于源代码功能的框图程序(Diagram)。
前面板接受来自框图程序的指令。
在VI的前面板中,控件(Controls)模拟了仪器的输入装置并把数据提供给VI的框图程序;而指示器(Indicators)则是模拟了仪器的输出装置并显示由框图程序获得或产生的数据。
当把一个控件或指示器放置到前面板上时,LabVIEW便在框图程序中相应的产生了一个终端(Terminals),这个从属于控件或指示器的终端不能随意的被删除,只有删除它对应的控件或指示器时它才会随之一起被删除。
用LabVIEW编制框图程序时,不必受常规程序设计语法细节的限制。
首先,从函数面板(Function Palette)中选择需要的函数节点(Function Node),将之置于框图上适当的位置;然后用连线(Wires)连接各函数节点在框图程序中的端口(Port),用来在函数节点之间传输数据。
这些函数节点包括了简单的计算函数、高级的采集和分析VI以及用来存储和检索数据的文件输入输出函数和网络函数。
用LabVIEW编制出的图形化VI是分层次和模块化的。
我们可以将之用于顶层
(Top Level)程序,也可用作其他程序或子程序的子程序。
一个VI用在其它VI中,称之为suave,suave在调用它的程序中同样是以一个图标的形式出现的;为了区分各个suave,它们的图标是可编辑的[9]。
LabVIEW依附并发展了模块化程序设计的概念。
用户可以把一个应用任务分解成为一系列的子任务,每个子任务还可以分解成许多更低一级的子任务,直到把一个复杂的问题分解成为许多子任务的组合。
首先设计suave完成每个子任务,然后将之逐步组合成为能够解决最终问题的VI。
图形化的程序设计编程简单、直观、开发效率高。
随着虚拟仪器技术的不断发展,图形化的编程语言必将成为测试和控制领域内最有前途的发展方向。
第3章基于LabVIEW虚拟频谱分析仪设计与实现
3.1abVIEW软件的应用方法
一、创建新VI
在启动窗口中选择“新建VI”或在已打开窗口的主菜单选择“文件--新建VI”,新建一个空白VI程序。
此时,系统将自动显示LabVIEW的前面板工作界面,工具选板和控件选板出现在前面板工作界面中。
在该面板中可以添加所需要的控件对象。
一个VI程序,需要设计前面板、程序框图和图标/连接器这三部分。
1).创建前面板
在前面板窗口中,添加输入控件和显示控件。
从控件选板中选择所需的输入和显示控件,按住鼠标不放,拖拽至合适位置后再松开鼠标,即可将所需控件置于前面板窗口工作区。
也可单击选择所需控件后,将光标移至工作区适当的位置再单击,同样可以将所需控件置于工作区。
在已添加到前面板窗口工作区的控件上单击鼠标右键,在弹出的快捷菜单中选择项目可以对该控件的参数进行配置。
2).创建程序框图
创建前面板后,前面板窗口中的空间在程序框图窗口中对应为接线端。
在前面板窗口的主菜单选择“窗口—显示程序框图”(快捷键为<Ctrl+E>),或者直接双击所添加的框图对象,即可将前面板的设计界面切换到程序框图窗口,即程序框图的创建界面。
在该界面中将会自动显示函数选择面板,从该面板中可以选择或添加所需要的函数对象、变成对象等各种喝编程有关的函数对象。
在程序框图窗口中创建于前面板对象相对应的程序框图时,需要在改程序框图界面中添加节点对象和应用连线连接各对象。
3).创建图标/连线板
(1)创建图标
创建VI图标就是使用图标编辑器对VI图标进行编辑。
在VI图标上单击鼠标右键,从弹出的快捷菜单中选择“编辑图标”,进入图标编辑器窗口,即可使用图标编辑工具设计修改图标。
第1步:可以选择保留LabVIEW自带的图标图形,在此基础上进行修改;也可以通过菜单选项“编辑—清除”,清除所有图形,再在空白工作区编辑图标。
第2步:在图标编辑工具中单击前景色或背景色,通过颜色宣办设置前景色或背景色。
第3步:使用画笔、直线、填充、矩形、填充矩形或文本工具,在编辑区内添加前景颜色图案组成图标。
选择画笔、直线等工具,在图形编辑区点击或拖动可以添加前景颜色的图案,再次点击或拖动则可删除前景色。
第4步:图标编辑完成后,单击图标编辑器右侧的“确定”按钮,保存几经编辑好的图标。
(2)创建连线板
在前面板窗口的VI图标上单击鼠标右键,在弹出的快捷菜单中选择“显示连线板”,切换到连线板状态。
创建连线板包括选择连线板接线端模式、设置连线板接线端、将连线板中接线端分配至前面板控件。
从连线板的右键快捷菜单选项“模式”中选择一个连线板接线端模式。
如果与前面板中的控件不匹配,可以通过连线板的右键快捷菜单中的“添加/删除接线端”来设置接线端,直至前面板中的控件匹配。
将接线端分配至前面板控件上输入控件和显示控件的具体操作为:选择连线工具(或使用自动选择工具),将光标移至连线板接线端并单击左键,表示将分配完成。
此时连线板中接线端的颜色和控件数据类型一致。
二、编辑VI
在前面板和程序框图窗口中。
使用工具栏和工具板中的工具,可以对VI进行编辑。
1).选择单个对象
在工具选板中选择定位工具,将光标置于目标对象上并单击,如果对象周围出现流动虚线选框,则表示该对象已被选中。
2).选择对个对象
使用定位工具选择多个对象有两种方法。
一种是:在需要的对象外的空白区
域,按住鼠标左键并向右下方拖拽,画出一个虚线框。
此时,虚线框中的多个对象被选中。
这种方法也用于选择单个对象。
另一种方法是:按住<shift>键不放,再用鼠标逐个单击要选择的对象,直至所有对象均被选中;若要去掉选择的某个对象,只需再单击该对象一次。
用这种方法选择时需要注意,在整个过程中,都要按住<shift>键不放,直到选择完毕。
3).改变单个对象大小
使用定位工具将光标置于目标对象上,目标对象两侧或四周出现小方框,哪个方向出现小方框就表示目标可以向那个方向改变大小。
4).对齐和分布对象
选中多个对象,再用工具栏中的对齐对象工具和分布对象工具来调整对象的对齐方式和分布方式。
5).改变多个对象大小
使用前面板工具栏中的调整对象大小的工具,可以调整对个对象的大小。
6).组合、锁定对象
使用排序工具中的“组合”选项可以将多个对象组合成为一个对象,以便于对这些对象进行同步操作。
如果对象的所有操作均已执行完毕,使用“锁定”选项可以锁定对象,以避免误操作。
对被锁定的对象不能再进行任何操作;如果要进行修改,需要先使用“解锁”选项解除锁定状态,才能进行下一步操作。
三、运行调试VI
创建或编辑完一个VI对象后,需要通过调试来排除VI对象中的问题。
完成调试后,可以通过运行来检查所编写VI的功能。
1).运行VI
在运行VI程序之前,必须要保证VI程序没有语法错误且处于可运行的状态。
VI
处于可运行状态时,工具栏中的运行按钮显示为。
在创建程序框图连线时提到,如果VI程序中有断线,VI是不可执行的;要使VI能够运行,必须保证VI程序中的所有节点和前面板接线端都连接正确。
在VI断开的情况下,单击按钮或选择主菜单“查看—错误列表”,弹出“错。