毕业论文---基于LabVIEW的多功能虚拟信号发生器设计.docx
-
资源ID:1954068
资源大小:322.71KB
全文页数:36页
- 资源格式: DOCX
下载积分:16金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业论文---基于LabVIEW的多功能虚拟信号发生器设计.docx
基于LabVIEW的多功能虚拟信号发生器设计作者姓名:XXX 专业班级:XXXXXXXX 指导教师:XXXXXX摘 要随着微型计算机和软件技术的发展,虚拟仪器在智能化程序、处理能力、性能价格比、可操作性等方面与传统仪器相比都具有明显的技术优势,将虚拟仪器引入高校的实验教学不但可以提高测试效率和教学的质量,而且为降低实验仪器成本提供了有效的途径和方法。本文选用LabVIEW图形化编程语言为开发软件,主要开发虚拟实验仪器:虚拟信号发生器,同时提出了虚拟实验室的建设方案。基于专业虚拟仪器开发工具Labview,设计一虚拟函数信号发生器。该虚拟信号发生器能够产生正弦波、三角波、方波、锯齿波等波形,频率动态范围较宽且可微调。关键字:虚拟仪器 labVIEW 信号发器Abstrack:Along with the development of the microcomputer, compared with traditional instrument, the virtual instrument has the obvious technical advantage in knowledge ware, processing capability, the ratio between function and price, and Maneuver ability. The introduction of the virtual instrument to the university can not only increase the efficiency and quality of testing, teaching, but also provide the effective method to reduce the cost of the experiment instrument. In this paper, selected LabVIEW graphical programming language for software development, mainly the development of virtual experiment equipment, virtual signal generator, virtual laboratory also made the building program. A Virtual Function Signal Generator is designed Based on Labview, The Virtual Function Signal Generator can generate Sine wave, triangle wave, square wave, teeth of a saw wave.etc。Dynamic range of frequency is wide and can regulate slightly。 Keyword : Virtual Instrument Labview Signal Generator目 录第1章 引 言11.1课题的提出11.2课题的主要研究工作11.3课题意义1第2章 虚拟信号发生器概况32.1 信号发生器,虚拟仪器概述32.1.1 信号发生器概述32.1.2 虚拟仪器基本概念32.1.3虚拟仪器的特点52.2 虚拟仪器的现状和发展72.2.1虚拟仪器的现状72.2.2虚拟仪器的展望82.3虚拟信号发生器的介绍82.3.1信号发生器的基本原理82.3.2虚拟信号发生器的工作原理9第3章 虚拟仪器的软件开发平台LABVIEW103.1 LabVIEW简介103.2 LabVIEW的主要窗口103.3 LabVIEW中信号处理与分析1334数据采集系统的构成16第4章 虚拟信号发生器的设计184.1虚拟信号发生器创建过程184.1.1软件设计方案18412 标准频率2042数字信号处理204.3软面板的设计234.3.1 仪器面板和参数设置234.3.2波形的产生与调节2544实现效果图27结 论30致 谢31参考文献32第1章 引 言1.1课题的提出在大学四年学习中,电子产品的操作与制作,软件工具的应用与功能的实现都是我们主要学习的内容。我的毕业论文的题目是用虚拟仪器实现波形发生器的功能。课题的研究是基于虚拟仪器的研究与开发学习而提出的。老师的辛苦用心就是希望我能多学一个软件多会一门技术,在以后工作中多一个特点。1.2课题的主要研究工作 LabVIEW在实际生活中的广泛应用,其主要研究工作是学习LabVIEW的软件功能,了解虚拟仪器的设计方法,设计一个能产生三角波,矩形波,正弦波,且其幅值,频率可根据用户进行选择的虚拟波形发生器。1.3课题意义 随着科学技术的发展,在测量领域中需要不断更新测量设备,以满足越来越高的测量要求。在我国,传统仪器技术还比较落后,目前有大批陈旧的测试仪器等待更新。这些仪器的测量精度和可靠性均低于国外,并且自动化程度较低。高档仪器基本上依靠国外进口,每年都消耗国家大量外汇。然而,花大量资金购买的仪器,可能我们只需要其中的一部分功能,同时有些其他应用的功能要求,该仪器却满足不了。这些情况无疑是大大浪费了投资。设想要是能将仪器稍微改动以实现更大的使用范围该多好。但是这对于传统仪器来说是非常困难的。虚拟仪器的出现,将彻底改变这种局面。利用计算机丰富的软硬件资源,用户可以随心所欲地根据自己的需求,设计自己的仪器系统,满足多种多样的应用需求。数字信号发生器是在科学研究和工程设计中广泛应用的一种通用仪器。目前高精度、具有数据存储能力的信号发生器,生产工艺复杂,价格昂贵。所以虚拟数字存储信号发生器的设计有一定的经济价值;虚拟信号发生器能充分发挥虚拟仪器结构简单、功能丰富、价格低廉、能重复开发、可用户自定义的优势。设计的虚拟数字存储信号发生器,可同时显示、记录和存储多通道输入的波形,并且可以对波形进行数据分析和处理,具有一定的研究意义。第2章 虚拟信号发生器概况2.1 信号发生器,虚拟仪器概述2.1.1 信号发生器概述信号发生器是生产实践和科学研究中应用十分广泛的电子测量仪器。目前常用的模拟信号发生器,外型笨重,功能单一;数字信号发生器虽然有一定的功能扩展,但价格昂贵,维护升级成本高,短时间内难以普及应用。近年来,出现了一种基于计算机和软件的新型仪器虚拟仪器。虚拟仪器以计算机为核心,功能由用户定义和设计,具有虚拟面板,其测试功能由测试软件实现。虚拟仪器的关键是用软件来实现硬件的功能,实现“软件即仪器”。在高等院校理工科教学中,实验教学是整个教学过程中的重要环节,特别是基础课、专业基础课的实验教学在本科教学中尤为重要,他对学生的专业知识起着有效的支撑作用。但是,近年来随着学生人数的增加、实验教学改革不断深入,原有实验室的设备和规模难以满足发展的需要。虚拟仪器的出现很好地解决了这些问题。虚拟仪器是以计算机为核心,功能由用户定义和设计,具有虚拟面板,其测试功能由测试软件实现。虚拟仪器的关键是用软件来实现硬件的功能,实现“软件即仪器”。本文应用虚拟仪器开发平台LabVIEW开发了一种多功能虚拟信号发生器,扩展了信号发生器的分析和计算能力,降低了仪器的价格,增强了仪器的通用性,实现了波形显示、存储、打印和读取以及多个测量参数自动显示、相位差自动计算等功能。2.1.2 虚拟仪器基本概念所谓虚拟仪器,就是在以计算机为核心的硬件平台上,其功能由用户设计和定义,具有虚拟面板,其测试功能由测试软件实现的一种计算机仪器系统。虚拟仪器的实质是利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果;利用计算机强大的软件功能实现信号数据的运算、分析和处理;利用1/O接口设备完成信号的采集测量与调理,从而完成各种测试功能的一种计算机测试系统。使用者用鼠标或键盘操作虚拟面板,就如同使用一台专用测量仪器一样。因此,虚拟仪器的出现,使测量仪器与计算机的界限模糊了.虚拟仪器的“虚拟”两字主要包含以下两方面的含义。虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图1-1反映了常见的虚拟仪器方案。图1-1 虚拟仪器方案框图虚拟仪器的主要特点有:n 尽可能采用了通用的硬件,各种仪器的差异主要是软件。n 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。n 用户可以根据自己的需要定义和制造各种仪器。虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。 (1)虚拟仪器的面板是虚拟的 虚拟仪器面板上的各种“图标”与传统仪器面板上的各种“器件”所完成的功能是相同的:由各种开关、按钮、显示器等图标实现仪器电源的“通”、“断实现被测信号的“输入通道”、“放大倍数”等参数的设置,以及实现测量结果的“数值显示”、“波形显示”等。 传统仪器面板上的器件都是“实物”,而且是由“手动”和“触摸”进行操作的:虚拟仪器前面板是外形与实物相像的“图标”,每个图标的“通、“断”、“放大”等动作通过用户操作计算机鼠标或键盘来完成。因此,设计虚拟仪器前面板就是在前面板设计窗口中摆放所需的图标,然后对图标的属性进行设置。(2)虚拟仪器测量功能是通过对图形化软件流程图的编程来实现的虚拟仪器是在以PC为核心组成的硬件平台支持下,通过软件编程来实现仪器的功能。因为可以通过不同测试功能软件模块的组合来实现多种测试功能,所以,在硬件平台确定后,就有“软件就是仪器”的说法。这也体现了测试技术与计算机深层次的结合。虚拟仪器技术的实质是充分利用最新的计算机技术来实现和扩展传统仪器的功能。软件是虚拟仪器的关键,当硬件确定以后,就可以通过不同的软件实现不同的功能。用户可以根据自己的需要,设计自己的仪器系统,满足多种多样的应用要求。利用计算机丰富的软、硬件资源,可以大大突破传统仪器在数据的分析、处理、表达、传递、储存等方面的限制,达到传统仪器无法比拟的效果。它不仅可以用于电子测量、测试、分析、计量等领域,而且还可以用于进行设备的监控以及工业过程自动化。虚拟仪器还可以广泛应用于电力工程、物矿勘探、医疗、振动分析、声学分析、故障诊断及教学科研等多个方面。2.1.3虚拟仪器的特点LabVIEW是什么?LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。与传统仪器相比虚拟仪器主要有以下优点:(1)传统仪器的面板只有一个,其上布置着种类繁多的显示与操作元件,易于导致许多识别与操作错误。虚拟仪器与之不同,它可以通过在几个分面板上的操作来实现比较复杂的功能。这样,在每个分面板上就可以实现功能操作的单纯化与面板布置的简捷化,从而提高操作的正确性与便捷性。同时,虚拟仪器面板上的显示元件和操作元件的种类与形式不受“标准件”和“加工工艺”的限制,它们是由编程来实现的,设计者可以根据用户的认知要求和操作要求,设计仪器面板。(2)在通用硬件平台确定后,由软件取代传统仪器中的硬件来完成仪器的功育旨。(3)仪器的功能是用户根据需要由软件来定义的,而不是事先由厂家定义好的。(4)仪器性能的改进和功能扩展只需要更新相关软件设计而不需要购买新的器。(5)研制周期较传统仪器大为缩短。(6)虚拟仪器开放、灵活,可与计算机同步发展,与网络及其他周边设备互联。Labview实现的功能虚拟函数信号发生器的功能设计参考了常见信号发生器的功能,并结合虚拟仪器基于计算机的特点,在功能上有所扩展,实现的主要功能如下:(1)可以产生lHz1MHz的正弦波、方波、三角波、锯齿波和任意波形:(2)信号频率、幅度、相位、偏移量和占空比的参数可以调节和控制;(3)能够显示输出信号波形;(4)采样频率和采样点数可以随信号频率在档位变化时调节。2.2 虚拟仪器的现状和发展2.2.1虚拟仪器的现状 虚拟仪器的概念,是美国国家仪器公司(National Instruments Corp,简称NI)于1986年提出的。80年代以来,NI公司研制和推出了许多总线系统的虚拟式仪器,成为这类新型仪器世界第一生产大户。此后,美国的惠普(HP)公司,Tektronix公司,Racal公司等也相继推出了许多此类仪器,并在短短的10余年便占有了世界仪器市场的10%左右。虚拟仪器技术目前在国外发展很快,以NI公司为代表的一批厂商己经在市场上推出了基于虚拟仪器技术而设计的商品化仪器产品。在美国,虚拟仪器系统及其图形编程语言,已作为各大学理工科学生的一门必修课程。美国的斯坦福大学的机械工程系要求三、四年级的学生在实验时应用虚拟仪器进行数据采集和实验控制。据“世界仪表及自动化”杂志预测,21世纪初叶,世界虚拟仪器的生产厂家将超过千家,其品种将达到数千种,市场占有率将达到5096左右。虚拟仪器将成为本世纪仪器发展的方向,而且有逐步取代传统硬件化电子仪器的趋势。 近年来,世界各国的虚拟仪器公司开发了不少虚拟仪器开发平台软件,以便使用者利用这些仪器公司提供的开发平台软件组建自己的虚拟仪器或测试系统,并编制测试软件。LabVIEW采用图形化编程方案,是非常实用的开发软件。LabWindows / CVI是为熟悉C语言的开发人员准备的、在Windows环境下的标准ANSIC开发环境。 作为仪器领域中最新兴的技术,虚拟仪器的开发和研究在国内尚属起步阶段。虚拟仪器的开发厂家,为扩大虚拟仪器的功能,在测量结果的数据处理、表达模式及变换方面也做了许多工作,发布了各种软件,建立了数据处理的高级分析库和开发工具库(例如测量结果的谱分析、快速傅立叶变换、各种数字滤波器、卷积处理和相关函数处理、微积分、峰值和阐值检队波形发生、噪声发生、回归分析、数值运算、时域和频域分析等),使虚拟仪器发展成为可以组建极为复杂自动测试系统的仪器系统。 专家预测:未来的几年内,国内将有大批企业使用虚拟仪器系统对生产设备的运行状况进行实时监测。随着微型计算机的发展,虚拟仪器将会逐步取代传统的测试仪器而成为测试仪器的主流。2.2.2虚拟仪器的展望虚拟仪器技术经过十几年发展,而今正沿着总线与驱动程序标准化、硬/软件模块化、编程平台图形化和硬件模块的即插即用方向前进,以开放式模块化仪器标准为基础的虚拟仪器标准正日趋完善,加上计算机技术和网络技术的迅猛发展,建立在虚拟仪器技术上的各种功能强大、性能优良的先进仪器将层出不穷,价格也会越来越低,使用虚拟仪器进行研究、设计、测试将成为一种趋势,同样,虚拟仪器及技术也将成为学校未来教学科研的重要方法和手段,特别是在理工科学校其应用前景非常广阔。虚拟仪器可以取代测量技术传统领域的各类仪器,“没有测量就没有鉴别,科学技术就不能前进”。虚拟仪器将会在科学技术的各个领域得到广泛应用,对科学技术的发展和工业生产将产生不可估量的影响。2.3虚拟信号发生器的介绍2.3.1信号发生器的基本原理本函数信号发生器的前面板主要由以下几个部分构成:仪器控制按钮,输出频率控制窗口(包括频率显示单位),频率倍成控制,波形选择,频率微调按钮,直流偏置,方波占空比调节,输出波形幅度控制按钮。频率微调范围:O11 Hz;直流偏置:一1010V;方波占空比:0100;输出波形幅度:010V。此外还增加了许多修饰性的元件如面板上的压控输入、记数输入、同步输出、电压输出等。使用这些修饰性的元件的目的是为了增加仪器的美观性,并尽量与真实仪器的使用界面相一致。2.3.2虚拟信号发生器的工作原理 通过软件虚拟信号发生器的功能,信号由特定的虚拟仪器发出,再通过波形显示器表现在大家面前。虚拟仪器以计算机为核心,功能由用户定义和设计,具有虚拟面板,其测试功能由测试软件实现。虚拟仪器的关键是用软件来实现硬件的功能,实现“软件即仪器”。本文应用虚拟仪器开发平台LabVIEW开发了一种多功能虚拟信号发生器,扩展了信号发生器的分析和计算能力,降低了仪器的价格,增强了仪器的通用性,实现了波形显示、存储、以及多个测量参数自动显示、相位差自动计算等功能。第3章 虚拟仪器的软件开发平台LabVIEW3.1 LabVIEW简介虚拟信号发生器软件设计采用的NI公司的虚拟仪器开发工具LabVIEW。LabVIEW是根据G编程语言,为数据采集与控制、数据分析与显示而设计的一种图形编程开发环境。它用图标代码代替编程语言创建应用程序,用数据流编程方法描述程序的执行,用图标和连线代替文本的形式编写程序,为虚拟仪器设计者提供了便捷轻松的设计环境,设计者利用它可以像搭积木一样,轻松组建一个测试系统以及构造自己的仪器面板,而无需进行任何烦琐的程序代码编写。使用LabVIEW开发平台编制的虚拟仪器程序VI包括三个部分:程序前面板、框图程序和图标/连接器。程序前面板用于设置输入数值和观察输出量,生成模仿传统仪器的控制面板。每一个程序前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,类似传统程序的源代码。图标/连接器是子程序SubVI被其它VI调用的接口。LabVIEW采用的是自上向下的模块化编程方法,所生成的各个子程序有利于主程序的设计与实现。这种设计方法可大大减小虚拟仪器开发的难度,利于仪器开发人员之间的分工协作。虚拟仪器由通用仪器硬件平台和应用软件两大部分构成。硬件平台完成被测信号调理与信号采集,即获取被测信号。硬件部分主要包括传感器、信号调理电路及数据采集卡。而传感器和信号调理电路针对不同的测试对象有不同的选择和设计。目前较常用的虚拟仪器系统是数据采集系统(PC-DAQ系统)、GPIB仪器测试系统、VXI仪器测试系统。3.2 LabVIEW的主要窗口前面板前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。图32所示是一个随机信号发生和显示的简单VI是它的前面板,上面有一个显示对象,以曲线的方式显示了所产生的一系列随机数。还有一个控制对象开关,可以启动和停止工作。显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。控制对象(输入)显示对象(输出)图32随机信号发生器的前面板流程图流程图提供VI的图形化源程序。在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。图33是与图2对应的流程图。我们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为了使它持续工作下去,设置了一个While Loop循环,由开关控制这一循环的结束。函数:随机数发生器结构:循环与前面板控件对应的连线端子与前面板控件对应的连线端子图33随机信号发生器的流程图如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图上的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。图标/连接器VI具有层次化和结构化的特征。一个VI可以作为子程序,这里称为子VI(subVI),被其他VI调用。图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。数据采集模块是虚拟信号发生器的软件的核心,主要完成数据采集的控制,包括触发控制、通道控制、时基控制等。其中,触发控制包括触发模式、触发斜坡和触发电平控制,通道控制主要控制哪一通道进行测量和频谱分析,时基控制主要控制采集卡扫描率、每一通道扫描次数(取样数),多功能虚拟信号发生器采用的数据采集卡PCI6024E,它支持DMA方式和双缓冲区模式,保证了实时信号不间断采集与存储。这种数据采集卡支持单极性和双极性模拟信号输入,采样速率可达200kb/s,信号输入范围分别为55V和-10V10V。提供16路单端8路差动模拟输入通道、2路独立的DA输出通道、8位24线的TTL型数字IO、2个24位20MHz的定时计数器,4个模拟输入范围等多种功能。该数据采集卡支持的操作系统有Windows2000/NT/XP/Me/9x、Linux等。使用的软件有LabVIEW、LabWindows/CVI等。这些功能使得用户不仅可以用该卡设计信号发生器,还可以使用该卡设计数字万用表、波形发生器、逻辑分析仪等,做到一卡多用,为系统的后续扩充保留余地。3.3 LabVIEW中信号处理与分析数字信号在我们周围无所不在。因为数字信号具有高保真、低噪声和便于信号处理的优点,所以得到了广泛的应用,例如电话公司使用数字信号传输语音,广播、电视和高保真音响系统也都在逐渐数字化。太空中的卫星将测得数据以数字信号的形式发送到地面接收站。对遥远星球和外部空间拍摄的照片也是采用数字方法处理,去除干扰,获得有用的信息。经济数据、人口普查结果、股票市场价格都可以采用数字信号的形式获得。因为数字信号处理具有这么多优点,在用计算机对模拟信号进行处理之前也常把它们先转换成数字信号。本章将介绍数字信号处理的基本知识,并介绍由上百个数字信号处理和分析的VI构成的LabVIEW分析软件库。 目前,对于实时分析系统,高速浮点运算和数字信号处理已经变得越来越重要。这些系统被广泛应用到生物医学数据处理、语音识别、数字音频和图像处理等各种领域。数据分析的重要性在于,无法从刚刚采集的数据立刻得到有用的信息,如下图所示。必须消除噪音干扰、纠正设备故障而破坏的数据,或者补偿环境影响,如温度和湿度等。 表31通过分析和处理数字信号,可以从噪声中分离出有用的信息,并用比原始数据更全面的表格显示这些信息。下图显示的是经过处理的数据曲线。表32用于测量的虚拟仪器(VI)用于测量的虚拟仪器(VI)执行的典型的测量任务有:l 计算信号中存在的总的谐波失真。l 决定系统的脉冲响应或传递函数。l 估计系统的动态响应参数,例如上升时间、超调量等等。l 计算信号的幅频特性和相频特性。l 估计信号中含有的交流成分和直流成分。在过去,这些计算工作需要通过特定的实验工作台来进行,而用于测量的虚拟仪器可以使这些测量工作通过LabVIEW程序语言在台式机上进行。这些用于测量的虚拟仪器是建立在数据采集和数字信号处理的基础之上,有如下的特性:l 输入的时域信号被假定为实数值。l 输出数据中包含大小、相位,并且用合适的单位进行了刻度,可用来直接进行图形的绘制。l 计算出来的频谱是单边的(single_sided),范围从直流分量到Nyquist频率(二分之一取样频率)。(即没有负频率出现)l 需要时可以使用窗函数,窗是经过刻度地,因此每个窗提供相同的频谱幅度峰值,可以精确地限制信号的幅值。一般情况下,可以将数据采集VI的输出直接连接到测量VI的输入端。测量VI的输出又可以连接到绘图VI以得到可视的显示。有些测量VI用来进行时域到频域的转换,例如计算幅频特性和相频特性、功率谱、网路的传递函数等等。另一些测量VI可以刻度时域窗和对功率和频率进行估算。 本章将介绍测量VI中常用的一些数字信号处理函数。LabVIEW的流程图编程方法和分析VI库的扩展工具箱使得分析软件的开发变得更加简单。LabVIEW 分析VI通过一些可以互相连接的VI,提供了最先进的数据分析技术。你不必像在普通编程语言中那样关心分析步骤的具体细节,而可以集中注意力解决信号处理与分析方面的问题。LabVIEW 6i版本中,有两个子模板涉及信号处理和数学,分别是Analyze子模板和Methematics子模板。这里主要涉及前者。进入Functions模板Analyze Signal Processing子模板。图34其中共有6个分析VI库。其中包括:Signal Generation(信号发生):用于产生数字特性曲线和波形。Time Domain(时域分析):用于进行频域转换、频域分析等。Frequency Domain(频域分析):Measurement(测量函数):用于执行各种测量功能,例如单边FFT、频谱、比例加窗以及泄漏频谱、能量的估算。Digital Filters(数字滤波器):用于执行IIR、FIR 和非线性滤波功能。Windowing(窗函数):用于对数据加窗。在后面几节中,你将学习如何使用分析库中的VI创建函数发生器和简单实用的频谱分析仪,如何使用数字滤波器,窗函数的作用以及不同类型窗函数的优点,怎样执行简单的曲线拟合功能,以及其他一些内容。可以在labviewexamplesanalysis 目录中找到一些演示程序。34数据采集系统的构成图35数据采集系统结构上图表示了数据采集的结构。在数据采集之前,程序将对采集板卡初始化,板卡上和内存中的Buffer是数据采集存储的中间环节。需要注意的两个问题是:是否使用Buffer?是否使用外触发启动、停止或同步一个操作。缓冲(Buffers)这里的缓冲指的是PC内存的一个区域(不是数据采集卡上的FIFO缓冲),它用来临时存放数据。例如,你需要采集每秒采集几千个数据,在一秒内显示或图形化所有数据是困难的。但是将采集卡的数据先送到Buffer,你就可以先将它们快速存储起来,稍后再重新找回它们显示或分析。需要注意的是Buffer与采集操作的速度及容量有关。如果你的卡有DMA性能,模拟输入操作就有一个通向计算机内存的高速硬件通道,这就意味着所采集的数据可以直接送到计算机的内存。不使用Buffer意味着对所采集的每一个数据你都必须及时处理(图形化、分析等),因为这里没有一个场合可以保持你着手处理的数据之前的若干数据点。下列情况需要使用Buffer I/O:l 需要采集或产生许多样本,其速率超过了实际显示、存储到硬件,或实时分析的速度。l 需要连续采集或产生AC数据(>10样本秒),并且要同时分析或显示某些数据。l 采样周期必须准确、均匀地通过数据样本。下列情况可以不使用Buffer I/O:l 数据组短小,例如每秒只从两个通道之一采集一个数据点。需要缩减存储器的开支。第4章 虚拟信号发生器的设计4.1虚拟信号发生器创建过程4.1.1软件设计方案信号产生的应用主要有:l 当无法获得实际信号时,(例如没有DAQ板卡来获得实际信号或者受限制无法访问实际信号),信号发生功能可以产生模拟信号测试程序。l 产生用于D/A转换的信号在LabVIEW 6中提供了波形函数,为制作函数发生器提供了方便。以Waveform>>Waveform Generation中的基本函数发生器(Basic Function Generator.vi)为例,其图标如下:图46其功能是建立一个输出波形,该波形类型有:正弦波、三角波、锯齿波和方波。这个VI会记住产生的前一波形的时间标志并且由此点开始使时间标志连续增长。它的输入参数有波形类型、样本数、起始相位、波形频率(单位:Hz)参数说明:offset:波形的直流偏移量,缺省值为0.0。数据类型DBLreset signal:将波形相位重置为相位控制值且将时间标志置为0。缺省值为FALSE.signal type:产生的波形的类型,缺省值为正弦波。frequency :波形频率(单位 Hz),缺省值为10。amplitude :波形幅值,也称为峰值电压,缺省值为1.0。phase :波形的初始相位(单位 度)缺省值为0.0.error in :在该VI运行之前描述错误环境。缺省值为 no error. 如果一个错误已经发生,该VI在error out端返回错误代码。该VI仅在无错误时正常运行。 错误簇包含如下参数。 status :缺省值为FALSE,发生错误时变为TRUE。code :错误代码,缺省值为0。source :在大多数情况下是产生错误的VI或函数的名称,缺省值为一个空串。sampling info :一个包括采样信息的簇。共有Fs和#s 两个参数。Fs :采样率,单位是样本数/秒,缺省值为1000。#s :波形的样本数,缺省值为1000。duty cycle (%):占空比,对方波信号是反映一个周期内高低电平所占的比例,缺省值为50%。signal out:信号输出端phase out :波形的相位,单位:度。error out :错误信息。如果 error in 指示一个错误,error out 包含同样的错误信息。否则,它描述该VI 引起的错误状态。使用该VI制作的函数发生器如下,由框图可以看出,其中没有附加任何其他部件。图47图48412 标准频率在模拟状态下,信号频率用Hz或者每秒周期数为单位。但是在数字系统中,通常使用数字频率,它是模拟频率和采样频率的比值,表达式如下:数字频率模拟频率/采样频率这种数字频率被称为标准频率,单位是周期数/采样点。有些信号发生VI使用输入频率控制量f,它的单位和标准频率的单位相同:周期数/每个采样点,范围从0到1,对应实际频率中的0到采样频率fs的全部频率。它还以1.0为周期,从而令标准频率中的1.1与0.1相等。例如某个信号的采样频率是奈奎斯特频率(fs/2),就表示每半个周期采样一次(也就是每个周期采样两次)。与之对应的标准频率是1/2 周期数/采样点,也就是0.5 周期数/采样点。标准频率的倒数1/f表示一个周期内采样的次数。如果你所使用的VI需要以标准频率作为输入,就必须把频率单位转换为标准单位:周期数/采样点。42数字信号处理信号的时域显示(采样点的幅值)可以通过离散傅立叶变换(DFT)的方法转换为频域显示。为了快速计算DFT,通常采用一种快速傅立叶变换(FFT)的方法。当信号的采样点数是2的幂时,就可以采用这种方法。FFT的输出都是双边的,它同时显示了正负频率的信息。通过只使用一半FFT输出采样点转换成单边FFT。FFT的采样点之间的频率间隔是fs/N,这里fs是采样频率。Analyze库中有两个可以进行FFT的VI,分别是 Real FFT VI 和 Complex FFT VI。这两个VI之间的区别在于,前者用于计算实数信号的FFT,而后者用于计算复数信号的FFT。它们的输出都是复数。大多数实际采集的信号都是实数,因此对于多数应用都使用Real FFT VI 。当然也可以通过设置信号的虚部为0,使用Complex FFT VI 。使用Complex FFT VI 的一个实例是信号含有实部和虚部。这种信号通常出现在数据通信中,因为这时需要用复指数调制波形。计算每个FFT显示的频率分量的能量的方法是对频率分量的幅值平方。高级分析库中Power Spectrum VI可以自动计算能量频谱。Power Spectrum VI的输出单位是Vrms2 。但是能量频谱不能提供任何相位信息。FFT和能量频谱可以用于测量静止或者动态信号的频率信息。FFT提供了信号在整个采样期间的平均频率信息。因此,FFT主要用于固定信号的分析(即信号在采样期间的频率变化不大)或者只需要求取每个频率分量的平均能量。图492流程图中的Array Size 函数用来根据样本数转换FFT的输出,得到频率分量的正确幅值。3把该VI保存为LabVIEWActivity目录中的FFT_2sided.vi。4选择频率(Hz)=10,采样率= 100,样本数= 100。执行该VI。注意这时的时域图和频谱图。因为采样率=样本数= 100 ,所以时域图中的正弦波的周期数与选择的频率相等,即可以显示10个周期。(如果把频率改成5,那么就会显示5个周期)图4105检查频谱图可以看到有两个波峰,一个位于10Hz,另一个位于90Hz,90Hz处的波峰实际上是10Hz处的波峰的负值