文摘随着计算机技术的发展,传统仪器开始转向计算机化。虚拟仪器是现代计算机技术、仪器技术以及其他新技术完美结合的产物,其强大的功能已完全超出了仪器概念本身。本文首先叙述了虚拟仪器的概念、发展、组成等,接着采用图形化编程软件Labview设计了虚拟示波器以及它的虚拟频谱分析功能,重点介绍了Labview中使用第三方板卡——研华PCL-812PG实现外部模拟信号采集的方法。最后总结了本文所做的主要工作并提出了进一步研究的设想:虚拟仪器在internet网中的远程测控。关键词:虚拟仪器、PCL-812PG、 the development of computer, traditional instrument has developed into computerize instrument. Virtual Instrument is a perfect combination of modern computer technology, instrument technology and other new technology. Its strong function is beyond the instrument itself. This paper first introduce the development, concept, form of the virtual instrument, design the virtual scope, virtual-frequency-analysis instrument by using the programming software Labview, then gather the analogue signal outsides by PCL-812PG, transferred into digital signal, show in the computer. At last, this paper put forward the further research: the distance-usage of the virtual instrument in the : Virtual Instrument、PCL-812PG、Labview.目录第一章绪论1. 1虚拟仪器的概述----------------------------------------------(1)1. 2软件开发工具的简介----------------------------------------(1)1. 3本文的主要工作----------------------------------------------(2)第二章 虚拟示波器的实现2. 1图形化的编程语言Labview---------------------------------(3)2. 2虚拟示波器实时波形显示界面的实现和框图程序-----(3)2. 3快速傅立叶变换(FFT)和Labview分析库中的FFT VI-(6) 2. 4虚拟频谱分析功能软面板和方框图的实现--------------(7)第三章声卡的作用和主要技术参数3. 1声卡的作用-------------------------------------------------(10)3. 2声卡的主要技术参数--------------------------------------(10)3. 3 LabVIEW中相关声卡操作函数简介------------------(10)四章 实验分析结果4. 1实验设备-------------------------------------------------------(14)4. 2实验内容-------------------------------------------------------(14)4. 3实验步骤-------------------------------------------------------(14)第五章 结束语----------------------------------------------------------(16)参考文献--------------------------------------------------------------------(17)第一章绪论随着计算机技术的发展,传统仪器开始向计算机化的方向发展。虚拟仪器是20世纪90年代提出的新概念,是现代计算机技术,仪器技术及其他新技术完美结合的产物。虚拟仪器技术的提出与发展,是21世纪自动测试与电子测量仪器技术发展的一个重要方向。1. 1虚拟仪器的概述 虚拟仪器是现代技术与计算机技术结合的产物。随着计算机技术特别是计算机的快速发展,CPU处理能力的增强,总线吞吐能力的提高以及显示器技术的进步,人们逐渐认识到,可以把仪器的信号分析和处理、结果的表达与输出功能转移给计算机来完成。这样,可以利用计算机的高速计算能力和宽大的显示屏更好地完成原来的功能。如果在计算机内插上一块数据采集卡,就可以把传统仪器的所有功能模块都集中在一台计算机中了,而软件就成了虚拟仪器的关键,任何一个使用者都可以通过修改虚拟仪器的软件来改变它的功能,这就是美国NI公司“软件就是仪器”一说的来历[1]。 所谓虚拟仪器,就是在通用的计算机平台上定义和设计仪器的功能,用户操作计算机的同时就是在使用一台专门的电子仪器。虚拟仪器以计算机为核心,充分利用计算机强大的图形界面和数据处理能力,提供对测量数据的分析和显示功能。虚拟仪器的最大特点是其灵活性,用户在使用过程中,可以根据需要添加或删除仪器功能,以满足各种需求和各种环境,并且突破了传统仪器在数据处理、表达、传送以及存储方面的限制。虚拟仪器的组成与传统仪器一样,由数据采集与控制、数据分析与处理、结果显示三部分组成。对于传统仪器,三部分几乎均由硬件完成,对于虚拟仪器,后两部分主要由软件来实现。与传统仪器相比,虚拟仪器设计日趋模块化、标准化,设计的工作量和复杂性都大大减小。1. 2软件开发工具的简介应用软件开发环境是设计虚拟仪器所必需的软件工具。应用软件开发环境的选择,可以开发人员的喜好不同而不同,但最终都必须提供给用户一个界面友好、功能强大的应用程序。软件在虚拟仪器中处于重要的地位,它肩负着对数据进行分析处理的任务,如数字滤波,频谱变换等。通常在编制虚拟仪器软件时,有两种方法:一种是传统的编程方法,采用高级语言,如VC、C++,C++ Buider;另一种是采用流行的图形化编程方法,如采用NI公司的labview。这次的毕业设计我主要是采用labview编程方法,因为它是图形化的编程语言,界面形象直观,有很多按钮、控件可以直接用来表示实际的仪器。虚拟仪器系统的软件主要包括仪器驱动程序、应用程序和软面板程序。仪器驱动程序主要用来初始化虚拟仪器,设定特定的参数和工作方式,使虚拟仪器保持正常的工作状态。应用程序主要对采集来的数据信号进行分(1)析处理,用户可以根据编制应用程序来定义虚拟仪器的功能。软面板程序用来提供与虚拟仪器的接口,它可以在计算机屏幕上生成一个和传统仪器相似的图形界面,用于显示测量和处理的结果;另一方面,用户也可以通过控制软面板上的开关和按钮,模拟传统仪器的操作,通过键盘和鼠标,实现对虚拟仪器系统的控制。1. 3本文的主要工作数字示波器是实验、教学、科研中常用的电子仪器,可以采集信号并进行分析,但传统仪器都具有设备更新慢、功能单一、价格贵等缺点。本文主要是实现虚拟示波器的功能:从外界采样模拟信号,转化为相应的数字信号,在计算机上实现波形的显示,并能够进行简单的波形处理,比如说,可以延时采样,可以显示波形的最大值、最小值、平均值,并能够根据需要放大波形的倍数,在采样的任何时期可以结束采样。另外,还利用快速傅立叶变换实现了简单的频谱分析功能的实现。具体如下:(1)具有声卡采集参数设定功能;具有录音和重放功能;可以实现声音数据的采集;能够完成功率谱信号的显示与分析;(2)声音采集数据能够储存并根据需要调用;(3)具有声音信号滤波及处理功能。(4) 基于LABVIEW的声卡虚拟示波器应具有美观实用的用户界面。音频格式设置数据采集(声卡)数据处理波形显示频谱分析数 据 储 存虚拟示波器结构框图第二章虚拟示波器的具体实现2. 1图形化的编程语言labviewlabview主要用于仪器控制、数据采集、数据分析等领域,它是一种基于图形编程语言(G语言)的开发环境,主要是以框图形式编写程序。它与C等传统编程语言有着诸多相似之处,如:相似的数据类型、数据流控制结构、程序调制工具,以及层次化、模块化的编程特点。但二者最大的区别在于:传统编程语言用文本语言编程;而labview使用图形语言(即:各种图标、图形符号、连线等),以框图的形式编写程序。用labview编程无须太多的编程经验,因为labview使用的都是测试工程师熟悉的术语和图标,如各种旋钮,开关,波形图等,界面直观形象。labview是一个功能强大的集成开发环境,它完整的集成了与GPIB、VXI、RS-232和内插式数据采集卡等硬件的通讯。Labview还具有内置程序库,提供了大量的连接机制,通过DLLs、共享库、OLE等途径实现与外部程序代码的连接。使用labview开发环境,用户可以创建32位的编译程序,从而为常规的数据采集、测试等任务提供了更快的执行速度。labview是真正的编译器,用户可以创建独立的可执行程序,能够脱离开发环境而单独运行[2]。 一个labview程序包含三个主要部分:前面板、框图程序、图标/连接端口。前面板是labview程序的交互式图形化用户界面,用于设置用户输入和显示程序输出,目的是仿真真实仪器的前面板。框图程序则是利用图形语言对前面板上的控制量和指示量进行控制。图标/连接端口用于把labview程序定义成一个子程序,以便在其他程序中加以调用,这使labview得以实现层次化,模块化编程。2. 2虚拟示波器的界面实现 图2-1是虚拟示波器的主界面:上半部分是波形显示部分,用于显示采集的波形,下半部分是对波形的频谱分析。图2-1 示波器主界面的实现采集来的信号首先要在图2-1的波形实时显示部分进行显示,即图2-2。图2-2 波形实时显示界面如图2-2的软面板是实时波形显示窗口,可以显示实时采样波形。右上边可以直接得到采样数据的最大值、最小值、平均值。右下边包含了放大倍数、采样延迟时间两个旋钮。通过这两个旋钮,可以调整实时波形在屏幕上的显示效果。另外,面板上还有采样结束按钮,用于结束采样。波形实时显示面板下面是一个工具面板:用X和Y按钮可以改变X、Y轴的比例。如果想让绘制的图形自动适应变化的坐标比例,可以单击每个按钮左边的锁定(4)开关,使其自动锁定。第二列的两个是设置X、Y轴刻度值数字表示方式的快捷方式,单击后可以对精度等特性进行设置。第三列的第一个是波形缩放工具,当用赋值工具单击它时,可弹出波形缩放方式的选择项,如图2-3所示:各功能如下:第一个按钮是矩形缩放。选择该项后,在显示区上,按住鼠标左键可以拉出一个方框,方框内的波形将被放大。横着第二个是水平缩放按钮:波形只在水平方向上被放大,垂直方向上保持不变。第三个是垂直缩放按钮:波形只在垂直方向上被放大,水平方向上保持不变。第二行第一个是取消缩放:取消最近的一次缩放操作。接下来的两个是连续缩放按钮。选中该项后,在显示区内按住鼠标左键,波形将以鼠标指针停留位置为中心进行连续缩放。图2-3 工具面板的演示(5)2-4 实时波形的框图程序2-4的框图中,左面是一个while循环框,图框中随机采样信号与面板上的放大倍数旋钮对应的图标相乘(板卡的驱动先不考虑),然后输入到实时波形屏幕中,接着信号流向图框外,并变成数组型数据。框图下方,设置采样延迟时间,由面板上的旋钮控制。另外还有采样结束的控制按钮。 右边循环框外是对数组信号进行处理。通过labview 6i本身提供的子程序,可以得到数据的最大值、最小值和平均值。 该虚拟示波器是单通道虚拟示波器,要想设计多通道的示波器,只需在这个基础上,在面板上加上几个屏幕显示控件,框图程序类似上图即可。当需要把信号进行其他的处理时,我们可以选择labview自带的信号处理部件,也可以把编好的C程序或是matlab程序加入到系统中,扩充系统的功能。2. 3快速傅立叶变换(FFT)和labview分析库中的FFT VI 从DAQ板上获得的采样信号是时域信号,这种信号给出了采样时刻信号的幅度,但是很多情况下,更想了解的是频率成分,而不是幅度值。频域表示法就表示了单个频率成分,这种表示法可以给出更多关于信号和系统的信息。 从时域的采样数据变为频域的算法,称为离散傅立叶变化(DFT)。DFT将采样信号的时域跟频域联系起来。DFT广泛应用于谱分析、应用力学、光学、医学图像、数据分析、仪器及远程通信等方面[2]。(6)假设从DAQ板上获得N个采样信号,对这N个样本进行DAT变换,结果仍将为N个样本,但它却是频域表示法。时域的N个样本与频域的N个样本之间的关系如下:假设信号采样率为fs,采样间隔为t,有t=1/fs,采样信号表示为Xi,0<i<N-1(即有N个样本),对这N个样本进行傅立叶变换,公式如下:Xk=X1*e(-j2**0/N)+X2*e(-j2**1/N)+……+Xi*e[-j2**(N-1)/N]注意时域跟频域中均有N个样本。同时域中的时间间隔对应的频率间隔f为:f=fs/N=1/Nt,f也称为频率分辨率,增多采样次数N或减小采样频率fs均能减小f(提高频率分辨率)。对N个采样数据进行DFT是个非常耗时的过程,大约需要n的平方次复数运算;但如果N是2的幂,假设N=2m,对N进行DFT就只需要m*N/2次操作,大大提高了速度,这种算法叫做快速傅立叶变换(FFT),它其实就是当采样N是2的幂时,进行DFT的一种快速算法。FFT的优点在于速度快,且节省内存,这是因为当VI操作FFT时,无需额外的存储缓冲区,但它要求输入序列N必须是2的幂。而DFT速度比FFT慢得多,这是由于它需要额外的缓冲区来存储中间的结果,但是DFT对任一个序列都适用。FFT中为了使采样次数N等于2的幂,可以在输入序列末尾加0。例如:若N=10,可以在输入序列末尾加6个0,使得采样次数的总数为16(2的4次方)。分析库中有两种VI用来计算信号的FFT,即Real FFT VI和Complex FFT VI。两者的区别在于,Real FFT对实信号进行FFT,Complex FFT对复信号进行FFT,值得注意的是,两者的输出均为复数。由于大多数信号都是实数值,因此可以用 Real FFT VI,当然也可以用Complex FFT VI,只是将虚数部分置为0。由于远程通信中的信号一般都为复数信号(实部、虚部均不为0),此时应该使用Comlex FFT VI,对复电位进行调制将产生复信号。2. 4虚拟频谱分析功能软面板和方框图的实现图2-5中,按界面上的运行按钮,在显示界面上分别会显示时域波形和经过FFT以后的频域波形。(7)2-5虚拟频谱分析功能软面板的实现2-6 虚拟频谱分析功能框图的实现(8)图2-6中: Arbitrary Wave—— 用于产生一个随机的波形,RealFFT —— 对输入的采样数据进行FFT,Complex To Polar —— 将FFT的复数输出分为实、虚两部分(幅值和相位),相位部分以弧度为单位,但屏幕上只显示FFT的幅值。(9)第三章声卡在虚拟示波器设计与实现1.认识声卡随着计算机技术和虚拟仪器技术的发展,虚拟仪器逐渐成为现代仪器的发展方向,其中大部分虚拟仪器都是基于各种数据采集卡的,如NI公司的PCI-6221数据采集卡,研华公司PCL-1800型数据采集卡,ISA型数据采集卡AC1820。在对采样频率要求不高的情况下,可以利用计算机的声卡进行数据的输入和输出。声卡是一个非常优秀的音频信号采集系统,其数字信号处理包括模数变换器ADC(Analogue Digital Converter)和 数模变换器DAC(Digital Analogue Converter),ADC用于采集音频信号,DAC则用于重现这些数字声音。声卡已成为多媒体计算机的一个标准配置,因此基于声卡的虚拟仪器具有成本低,兼容性好,通用性和灵活性强的优点,可以不接受硬件限制,安装在多台计算机上。本文利用中的数字声音记录节点,编程实现了基于声卡的虚拟双踪数字存储示波器,采样速率为,线路输入端口最高电压限制为1V,对高于1V的信号采用比例运算放大电路衰减后输入,能适合