资源目录
压缩包内文档预览:(预览前20页/共72页)
编号:25427823
类型:共享资源
大小:1.51MB
格式:ZIP
上传时间:2019-11-19
上传人:遗****
认证信息
个人认证
刘**(实名认证)
湖北
IP属地:湖北
15
积分
- 关 键 词:
-
机电
基于
声卡
数据
采集
- 资源描述:
-
机电-基于声卡的数据采集,机电,基于,声卡,数据,采集
- 内容简介:
-
基于声卡的数据采集,机械设计及自动化机电03.1-文先彬,前言,当今,科学技术的不断进步,对测量技术的要求越来越高,并且测量技术在各个领域得到了广泛的应用。本文采用虚拟仪器的思想,结合计算机的结构特点,提出了一种以计算机为平台,基于声卡数据采集、显示与分析的虚拟仪器系统。介绍了声卡数据采集系统的制作要点,运用LabVIEW程序开发系统,在普通配备有声卡的计算机上,实现了双通道数据采集系统。,目录,第一章绪论问题的提出虚拟仪器的概述及国内外发展动态本课题研究的意义本次设计的主要内容,第二章基于声卡数据采集的总体设计方案,硬件的选择与设置软件的实现第三章ab编程环境介绍ab简介声卡设置模块虚拟仪器的创建过程,第四章声卡,声卡工作原理及性能指标声卡的硬件结构设计声卡的作用声卡的主要技术参数及设置第五章数据采集与数据采集卡数据采集系统的构成数据采集卡的简介数据采集系统的测试与分析,第六章ab程序实现,数据采集程序模块数据存盘与重载程序模块数据分析与处理程序模块,第一章绪论,1.1问题的提出现代科技发展日新月异,计算机尤其如此。计算机强大的处理能力,使得它成为一种很好的工具,其应用范围也越来越广泛。虽然传统仪器已经得到迅猛的发展,仪器精度越来越高,功能越来越强,性能越来越好,但传统仪器基本上没有摆脱单独使用、手动操作的模式。在工业自动化测试及测量领域,传统的方法有许多重复建设,使用起来很不方便,其局限性非常明显,显然己经不能适应时代发展的需要了。传统台式仪器是由厂家设计并定义好功能的一个封闭结构,它有固定的输人/输出接口和仪器操作面板。每种仪器只能实现一类特定的测量功能,并以确定的方式提供给用户。常用的数字示波器、数字万用表、信号发生器、数据记录仪及温度和压力监控器就是传统仪器的代表。一方面,目前我国高档台式仪器如数字示波器、频谱分析仪、逻辑分析仪等还主要依赖进口,这些仪器加工工艺复杂、对制造水平要求高,生产突破有困难。另一方面,用户可以将一些先进的数字信号处理算法应用于虚拟仪器的设计,提供传统台式仪器所不具备的功能,而且完全可以通过软件配置实现多功能集成的仪器设计。因此,目前研制一种结构简单、操作方便、生产技术要求不高、费用低的数字示波器是非常必要的。如何利用先进的计算机技术提高效率则成为测量领域迫切需要解决的问题。,1.2虚拟仪器概述及国内外发展动态,1.2.1虚拟仪器的概述虚拟仪器(virtualinstrument)是基于计算机的仪器计算机和仪器的密切结合是目前仪器发展的一个重要方向。简单的说,这种结合有两种方式。一种方式是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器的功能也越来越强大,目前已经出现含有嵌入式系统的仪器。另一种方式是将仪器装入计算机,以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。虚拟仪器是利用PC计算机显示器的显示功能模拟传统仪器的功能面板,以多种形式表达输出检测结果,利用PC计算机强大的软件功能实现信号数据的运算、分析、处理,由工/0接口设备完成信号的采集、测量和调理,从而完成各种测试功能的一种计算机仪器系统。虚拟仪器以透明的方式,通过软件对数据的分析处理、表达以及图形化用户接口,把计算机资源(如微处理器、显示器等和仪器硬件(如A/D,D/A,数字I/O、定时器、信号调理等)的测量能力、控制能力结合在一起。虚拟仪器突破了传统仪器以硬件为主体的模式,实际上使用者是在操作具有测试软件的电子计算机进行测量,犹如操作一台虚设的电子仪器。虚拟仪器技术的实质是充分利用最新的计算机技术来实现和扩展传统仪器的功能。虚拟仪器是基于计算机的仪器。软件是虚拟仪器的关键,当基本硬件确定以后,就可以通过不同的软件实现不同的功能。用户可以根据自己的需要,设计自己的仪器系统,满足多种多样的应用要求。利用计算机丰富的软、硬件资源,可以大大突破传统仪器在数据的分析、处理、表达、传递、储存等方面的限制,达到传统仪器无法比拟的效果。它不仅可以用于电子测量、测试、分析、计量等领域,而且还可以用于进行设备的监控以及工业过程自动化。虚拟仪器还可以广泛应用于电力工程、物矿勘探、医疗、振动分析、声学分析、故障诊断及教学科研等多个方面。,1.2.2虚拟仪器国内外发展动态,目前一般的声卡最高采样频率可达96KHz;采样位数可达16位甚至32位;声道数为2,即立体声双声道,可同时采集两路信号,需要时还可选用多路输入的高档声卡或配置多块声卡;每路输入信号的最高频率可达22.05KHz,输出16位的数字音频信号,而16位数字系统的信噪比可达96dB。当前的独立声卡或者板载声卡都包括有晶振、A/D、D/A转换芯片和数字信号处理芯片及其它辅助电路,因此它可作为数据采集卡使用。现在的声卡一般都采用PCI接口,完全满足最高16bit的采样精度、44.1kHz的采样频率所需705.6kb的数据采集传输率要求。而且,声卡是用DMA方式进行数据采传送的,这样就级大地降低CPU的占有率。计算机采集卡是信号纪录仪器中的重要组成部分,主要起A/D转换功能。目前市场上主流的数据采集卡都包含了完整的数据采集电路和计算机的接口电路,但其价格与性能成正比,如NI公司的E型数据采集卡、研华的数据采集卡等,一般都比较昂贵。随着DSP(数字信号处理)技术走向成熟,PC声卡本身就成为一个优秀的数据采集系统,它同时具有A/D和D/A转换功能,不仅价格低廉,而且兼容性好,性能稳定,灵活通用,软件特别是驱动程序升级方便。ISA总线向PCI总线的过渡,解决了以往声卡与系统交换数据的问题,同时充分发挥了DSP芯片的性能。而且声卡用DMA(直接内存读取)方式传输数据,极大的降低了CPU的占有率。一般声卡16位的A/D转换精度,比通常12位A/D卡的精度高,对于许多工程测量和科学试验来说都是足够高的,其价格却比后者便宜很多。如果利用声卡作为数据采集设备,可以组成一个低成本高性能的数据采集系统。当然,它只适合采集音频域的信号,即输入信号频率必须在20-20000Hz的音频域范围内。如果需要处理直流或缓变信号,则需要其他技术的配合,()国外虚拟仪器的现状,虚拟仪器技术目前在国外发展很快,以美国国家仪器公司(NI公司)为代表的一批厂商已经在市场上推出了基于虚拟仪器技术而设计的商品化仪器产品。在美国虚拟仪器系统及其图形编程语言,已作为各大学理工科学生的一门必修课程。美国的斯坦福大学的机械工程系要求三、四年级的学生在实验时应用虚拟仪器进行数据采集和实验控制。虚拟仪器的概念使得现代计算机技术、通信技术和测量技术达到了前所未有的紧密结合,进而引发了传统仪器观念的一次巨大变革。当今虚拟仪器的系统开发采用的总线包括传统的RS232串行总线、GPIB通用接口总线、VXI总线,以及己经被PC机广泛采用的USB通用串行总线和IEEE1394总线(即Firewire,也叫做火线)。世界各国的公司,特别是美国NI公司,为使虚拟仪器能够适应上述各种总线的配置,开发了大量的软件以及适应要求的硬件(插件),可以灵活地组建不同复杂程度的虚拟仪器自动测试系统。虚拟仪器开发商不仅注意使虚拟仪器能够适应各种通用计算机总线系统,使之为虚拟仪器服务,而且也注意建立各种仪器专用的总线系统。美国NI公司在1997年9月1日推出模块化仪器的主流平台PXI,这是与CompactPCI完全兼容的系统。这种虚拟仪器模块化主流平台PXI/CompactPCI的传输速度己经达到100Mb/s,是目前已经发布的最高传输速度。虚拟仪器的开发厂家,为扩大虚拟仪器的功能,在测量结果的数据处理、表达模式及其变换方面也做了许多工作,发布了各种软件,建立了数据处理的高级分析库和开发工具库(例如测量结果的谱分析、快速傅立叶变换、各种数字滤波器、卷积处理和相关函数处理、微积分、峰值检测、波形发生噪声发生、回归分析、数值运算、时域和频域分析等),使虚拟仪器发展成为可以组建极为复杂自动测试系统的仪器系统。,()国内虚拟仪器的发展现状,在国内己有部分院校的实验室引人了虚拟仪器系统,上海复旦大学、上海交通大学、广州暨南大学、华中理工大学、四川联合大学等。近一、两年来这些学校在原有的基础上,又开发了一批新的虚拟仪器系统用于教学和科研。其中,华中理工大学机械学院工程测试实验室将其开发成果在网上公开展示。四川联合大学的教师基于虚拟仪器的设计思想,研制了“航空电台二线综合测试仪”将8台仪器集成于一体,组成虚拟仪器系统,使用方便、灵活。清华大学汽车系利用虚拟仪器技术构建的汽车发动机检测系统,用于汽车发动机的出厂检验。主要检测发动机的功率特性、负荷特性等。一台发动机检测完后,就可打印出完整的检测报告。此外,国内己有几家企业在研制PC虚拟仪器,哈工大仪器王电子有限责任公司就是其中之一,它的产品已达到一定的批量。其主要产品有数字存储示波器系列、任意波形发生器及频率计系列、多通道大容量波形记录仪系列。国内专家预测:未来的几年内,我国将有50的仪器为虚拟仪器,国内将有大批企业使用虚拟仪器系统对生产设备的运行状况进行实时监测。随着微型计算机的发展,虚拟仪器将会逐步取代传统的测试仪器而成为测试仪器的主流。虚拟仪器技术的提出与发展,标志着二十一世纪自动测试与电子测量仪器领域技术发展的一个重要方向。,1.2.3虚拟仪器的发展趋势,虚拟仪器正在继续迅速发展。它可以取代测量技术在传统领域的各类仪器。虚拟仪器在组成和改变仪器的功能和技术性能方面具有灵活性与经济性,因而特别适应于当代科学技术迅速发展和科学研究不断深化所提出的更高更新的测量课题和测量需求。“没有测量就没有鉴别,科学技术就不能前进”。虚拟仪器将会在科学技术的各个领域得到广泛应用。图形化编程平台的进一步发展与完善是虚拟仪器发展的一个重要方向。如何使用户进行少量的学习甚至不需要学习就可使用功能强大的虚拟仪器,如何使用构成简单的虚拟仪器系统并完成复杂的测试内容,如何帮助用户对测试结果进行分析和判断等内容,是虚拟仪器技术的努力方向。我国还基本处于传统仪表与计算机化仪器互相分离的态,世界各大相关产品商家都在向中国这个巨大的市场进军。结合我国的实际情况,我们必须走引进与自行开发相结合的道路。一方面,大力引进国外虚拟仪器方面的生产技术;另一方面,发展基于计算机的插卡式硬件模块为主的测控技术,发展图形化平台的软件产品,充分利用我们现有的计算机及测控技术硬件,缩短与国际先进水平的差距。VXI总线将成为未来虚拟仪器的理想硬件平台,这是由于VX工总线的性能决定的;另一方面,基于PCI,DAQ的虚拟仪器系统由于性价比高、灵活性好而受到大多数用户的青睐,将得到高速的发展。随着计算机硬件、软件技术的迅速发展,虚拟仪器将向高性能、多功能、集成化、网络化方向发展。,1.3本课题研究的意义,在声卡数据采集系统设计中,硬件解决信号的输人和输出,软件可以方便地修改、改变仪器系统的功能,以适应不同使用者的需要。其中信号的输人部分一般使用数据采集卡实现,商用的数据采集卡具有较大的通用性,但其价格昂贵。在具体的应用场合,有些功能可能不实用。普通声卡具有16位的量化精度、数据采集频率是44kH完全可以满足特定应用范围内数据采集的需要,个别性能指标还优于商用数据采集卡,而价格却为商用数据采集卡的十几分之一甚至几十分之一。本文利用普通声卡作采集卡,美国NI公司的虚拟仪器软件LabV工EW作开发平台,设计实现了一种方便的、灵活性强的虚拟示波器,该系统能够正确采集声卡设计频率范围内的信号(如声音、脉搏、心电、脑电、电话等),对一些应用领域是一种很好的选择。目前高精度、具有数据存储能力的示波器,由于工艺复杂、技术要求高,因而价格昂贵,所以虚拟数字存储示波器的设计有一定的经济价值;虚拟示波器能充分发挥虚拟仪器结构简单、灵活方便、功能丰富、价格低廉、一机多用、能重复开发、可由用户自定义的优势。基于声卡的数据采集,声卡输入信号的同时,还可同时显示、记录、采集、存储、处理等功能,对存储的曲线可通过“回放功能”显示在屏幕上,“回放”过程可暂停波形扫描,以便能更清楚地观察波形的变化,以便使用者能及时进行数据处理,观察和分析实验结果。所以本课题具有一定的研究意义。,.本次设计主要内容,第二章基于声卡数据采集总体方案设计,2.1硬件的选择目前的独立声卡或者板载声卡都包括有晶振、A/D、D/A转换芯片和数字信号处理芯片及其它辅助电路,因此它可作为数据采集卡使用。现在的声卡一般都采用PCI接口,完全满足最高16bit的采样精度、44.1kHz的采样频率所需705.6kb的数据采集传输率要求。而且,声卡是用DMA方式进行数据采传送的,这样就级大地降低CPU的占有率。LabVIEW对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,计算机配置为AMD2400+/512M内存,板载C-MediaAC97声卡。对于高级的声卡采集信号时,要注意关闭如混响之类的一些特效,避免影响测量结果的真实性。商用的数据采集卡虽具有较大的通用性,但其价格昂贵,在具体的应用场合,有些功能可能并不实用。普通声卡,具有16位的量化精度、数据采集频率是44kHz完全可以满足特定应用范围内数据采集的需要,个别性能指标还优于普通商用数据采集卡,而价格却为商用数据采集卡的十几分之一甚至几十分之一,本文选用普通声卡作采集卡大大降低了成本。数据采集卡的选择主要与采样率、测量通道、分辨率和测量精度有关。采样率即在单位时间内的测量次数,一般用H:即采样频率来表示。采样率的选择,取决于被测量的信号的变化速度,根据奈奎斯特采样定理,所需的采样频率应为所测信号的最高频率分量的两倍以上,即应选用100kH的板卡才能完成最高频率为50kHz的被测信号的侧量工作。测量中都需将模拟信号经A/D转换成二进制的数字信号,分辨率就是将满量程信号经A/D转换后得到的二进数的位数。分辨率越高,意味着可检测出来的电压变化越小,它和测量范围(可测量的最高电平和最高电平)及增益(板卡的放大倍数)一起决定了该板卡可测的最小电压变化量,也称为二进码的宽度,现在产品中有8位、12位、16位的最多。,.软件的实现,声卡数据采集流程图,第三章ab编程环境简介,.ab简介LabVIEW是一种图形化的编程语言(G语言)。与VisualC+,VisualBasic,LabWindows/CVI等编侧吾言不同,LabVIEW用图标、连线和框图代替传统的程序代码,并且LabVIEW所运用的设备图标与科学家、工程师们常用的大部分图标基本一致,这使得编程过程和思维过程非常地相似。G语言是一种适合应用于任何编程任务、具有扩展函数库的编程语言。和Basic或C语言一样,G语言定义了数据模型、结构类型和模块调用语法规则等编程语言的基本要素,在功能完整和应用灵活上不逊于任何高级语言,同时G语言丰富的扩展函数库还为用户编程提供了极大的方便。这些扩展函数库主要面向数据采集、GPIB和串行仪器控制以及数据分析、数据显示和数据存储。G语言还包含常用的程序调试工具,比如允许设置断点、单步调试、数据探针和动态显示执行流程等功能。G语言与传统编程语言最大的差别在于编程方式,一般高级语言采用文本编程,而G语言采用图形化编程方式。G语言的典型代表LabVIEW是带有可扩展函数库和子程序库的通用程序设计系统。它提供了用于GPIB设备控制、VX工总线控制、串行口设备控制、数据分析、显示和存储的应用程序模块。LabVIEW可方便地调用Window。动态链接库和用户自定义的动态链接库中的函数;LabIEW还提供了CIN(CInterfaceNode)节点使得用户可以使用由C或C+十语言,编译的程序模块,使得LabIEW成为一个开放的开发平台。LabVIEW还直接支持动态数据交换(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。此外,LabIEW还提供了专门用于程序开发的工具箱,使得用户能够很方便地设置断点,动态地执行程序来非常直观形象地观察数据的传输过程,以及方便地进行调试。,LabVIEW编辑环境包含包括三个部分:程序前面板、框图程序和图标/连接端口。程序前面板用于设置输人数值和观察输出量,用于模拟真实仪表的前面板。在程序前面板上,输人量被称为控制(Controls),为虚拟仪器的框图程序提供数据:输出量被称为显示(Indicators),显示虚拟仪器流程图中获得或产生的数据。控制和显示是以各种图标形式出现在前面板上,如旋钮、开关、按钮、图表、图形等,这使得前面板直观易懂。,一个程序前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,可以把它理解成传统程序的源代码。框图程序由节点(Node)、数据连线(Wire)构成。节点是vi程序中的执行元素,类似于文本编程语言程序中的语句、函数或子程序。节点之间数据连线按照一定的逻辑关系相互连接,可定义框图程序内的数据流动方向。节点之间、节点与前面板对象之间是用数据端口和数据连线来传递数据的。数据端口是数据在前面板对象和框图程序之间传输的通道,是数据在框图程序内节点之间传输的接口。LabVIEW中有两种类型的数据端口:控制端口和指示端口以及节点端口。控制端口和指示端口用于前面板对象,当VI程序运行时,从控制输人的数据通过控制端传递到框图程序,供其中的程序使用,产生的输出数据在通过指示端口传输到前面板对应的指示中显示。每个节点端口都有一个或数个数据端口用于输人或输出.LabVIEW采用的一种获得专利的数据流编程模式,这不同于一些基于文本的编程语言的线性结构,不同于执行一个传统的控制流方法。控制流执行的是指令驱动,而数据流执行的是数据流驱动。但一个虚拟仪器的图标被放置在另一个虚拟仪器的流程图中时,它就是一个子仪器(SubVI)。图标/连接端口可以把VI变成一个SubVI,然后像子程序一样在其他程序中调用。图标是SubVI的直观标记,是SubVI在其他程序框图中被调用的节点表现形式;而连接端口则表示该SubVI与调用它的VI之何进行数据交换的输人/输出口,就像传统编程语言子程序的参数。,3.2声卡模块设置,LabVIEW提供了一系列使用Windows底层函数编写的与声卡有关的函数。这些函数使用Windows底层函数(不用更高级更方便的MCI函数以及DirectX接口)直接与声卡驱动程序打交道,因而封装层次低,速度快,而且可以访问、采集缓冲区中任意位置的数据,具有很大的灵活性,能够满足实时不间断采集的需要。LabVIEW有强大的信号处理能力。其中音频输人的相关节点从功能模板中的调用路径为AllFunctions/GraphicsSIClear.VI用来释放己经打开的声卡。,.虚拟仪器的创建过程,创建前面版创建框图程序创建图标运行和调试程序,第四章声卡,.声卡工作原理及性能指标声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经过DSP音效芯片的处理,将该数字信号转换为模拟信号输出。声卡的基本工作流程为:输入时,麦克风或线路输入(LineIn)获取的音频信号通过A/D转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以PCM(脉冲编码调制)方式送到D/A转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(LineOut)送到音箱等设备转换为声波,人耳侦测到环境空气压力的改变,大脑将其解释为声音。下图是声卡的工作框图,模拟声信号经过声卡前置处理及A/D转换后变成数字信号,送人输人缓冲区,然后通过各种数字信号处理的方法对波形输人缓冲区的数据进行处理,完成声音消噪、音效处理、声音合成等功能,最后把处理好的数据把保存到存储设备,这就是声音信号的录制过程。相应的声音信号回放过程为:把处理好的数据送到输出缓冲区,再由声卡的D/A转换,将数字音频转换为模拟信号,经过功率放大,送到喇叭。如果将工程中所需采集的信号仿照声音信号输人,即可实现对信号的采集和存储。,声卡工作框图,衡量声卡的技术指标包括复音数量、采样频率、采样位数(即量化精度)、道数、信噪比(SNR)和总谐波失真(TDH)等,主要介绍如下:,(1)复音数量代表了声卡能够同时发出多少种声音。复音数越大,音色就越好,播放声音时可以听到的声部越多、越细腻。,(2)采样频率每秒采集声音样本的数量。采样频率越高,记录的声音波形就越准确,保真度就越高,但采样数据量相应变大,要求的存储空间也越多。(3)采样位数将声音从模拟信号转化为数字信号的二进制位数(bit)。位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高。例如,16位声卡把音频信号的大小分为216=65536个量化等级来实施上述转换。,.声卡的作用,从数据采集的角度来看,声卡是一种音频范围内的数据采集卡,是计算机与外部的模拟量环境联系的重要途径。过去声卡多以插卡的形式安装在微机的扩展槽上,现在越来越多的主板上集成有声卡。民用声卡的价格十分低廉,如果测量对象的频率在音频范围之内,而且对指标又没有太高要求,就可以考虑使用声卡。LabVIEW提供了操作声卡的函数。声卡的主要功能包括录制与播放、编辑与合成处理、MIDI接口3个部分。(1)录制与播放通过声卡,人们可将来自话筒、收录机等外部音源的声音录入计算机,并转换成数字文件进行储存和编辑等操作;人们也可以将数字文件还原成声音信号,通过扬声器回放,例如为电子游戏配音,以及播放CD、VCD、DVD、MP3、MP4和卡拉OK等。注意,在录制和回放时,不仅要进行A/D和D/A转换,还要进行压缩和解压缩处理。(2)编辑和合成处理通过对声音文件进行多种特技效果的处理,包括加入回音,倒放,谈入谈出,往返放音以及左右两个声道交叉放音等,可以实现对各种声源音量的控制与混合。(3)MIDI接口通过对MIDI接口和波表面合成,可以纪录和回放各种接近真实乐器原音的音乐。从一般意义上来看,上述功能主要是数据采集和性能好处理,很自然地就可以联想到用声卡实现示波器、信号发生器、频谱分析仪等虚拟仪器。,.声卡的硬件结构图,硬件连接采用两种连接线:(1)一条一头是3.5mm插孔,另外一头是鳄鱼夹的连接线;(2)是一条双头为3.5mm插孔的音频连接线(在市面上可以买到);为测试声卡的频率特性,可使用测试线(2)将声卡的输入端与输出端连接起来,形成一个闭合的环路。连接时要注意区分MicIn和SPKOut口,不要把它们当作LineIn与LineOut接入。如果测试输入信号,则使用测试线(1)把信号源接到声卡输入端LineIn口;如果测试输出信号,就把该测试线接到声卡输出端LineOut口。,可以使用坏的立体声耳机做一个双通道的输入线,减去耳机,保留线和插头即可。注意这两个通道是共地的。,声卡一般有LineIn和MicIn两个信号输入插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。若由MicIn输入,由于有前置放大器,容易引入噪音且会导致信号过负载,故推荐使用LineIn,其噪音干扰小且动态特性良好。声卡测量信号的引入应用音频电缆或屏蔽电缆以降低噪音干扰。若输入信号电平高于声卡所规定的最大允许输入电平。此外,将声卡的LineOut端口接到耳机上还可以实现的监听声音信号。LabVIEW对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,由于存在隔直耦合电容,一般声卡的信号频率测量范围受限为10Hz22KHz,输入电压范围为1Vpp5Vpp。另外,对于高级的声卡采集信号时,要注意关闭如混响之内的一些特效,避免影响测量结果的真实性。目前的独立声卡或者板载声卡都包括有晶振、A/D、D/A转换芯片和数字信号处理芯片及其它辅助电路,因此它可作为数据采集卡使用。现在的声卡一般都采用PCI接口,完全满足最高16bit的采样精度、44.1kHz的采样频率所需705.6kb的数据采集传输率要求。而且,声卡是用DMA方式进行数据采传送的,这样就级大地降低CPU的占有率。,采样位数采样频率缓冲区没有基准电压声卡用于数据采集时的一些设置,第五章数据采集与数据采集卡,.数据采集系统的构成数据采集是LabVIEW的核心技术之一。要将数据采集到计算机里,并对其进行合理的组织,需要构件一个完整的数据采集(DataAcQuisition,DAQ)系统。它包括:传感器和变换器、信号调理设备、数据采集卡(或装置)、驱动程序、硬件配置管理软件、应用软件和计算机等。使用不同的传感器和变换器可以测量各种不同的物理,并将他们转化为电信号;信号调理设备可对采集到的电信号进行加工,使它们适合数据采集卡等设备的需求;计算机通过数据采集卡等获得测量数据;软件则控制着整个测量系统,它告诉采集设备什么时候从哪个通道采集获得的数据,同时还对原始数据作分析处理,并将最后结果表示成容易理解的方式,例如图表或文件等。下面为DAQ功能:()()()数字()定时器计数器,数据采集系统的结构图,.数据采集卡的简介一个典型的数据采集卡的功能有模拟输入(简称“模入”)、模拟输出(简称“模出”)、数字I/O、计数器/计时器等。模拟输入是采集卡最基本的功能。它一般由多路开关(MUX)、放大器(Amplifier)、采样保持电路(S/H)以及模数转换器(ADC)来实现。一个模拟信号通过上述各部分后可以转化为数字信号。ADC的性能和参数直接影响着采集数据的质量,应根据实际测量所需要的精度来选择合适的ADC。,模拟输出通常是为采集数据系统提供激励信号。输入信号受数模转换器(DAC)的建立时间、分辨率等因素影响。建立时间反映了输出信号副值改变的快慢,例如建立时间短的ADC可以提供频率较高的信号。应根据实际需要DAC的参数指标,例如,如果需要用DAC的输入信号驱动一个加热器,则不需要使用速度很快的DAC,因为加热器的温度本来就难以快速地跟踪电压变化。,一般来说,数据采集卡都有自己的驱动程序,通过该程序来控制采集卡的硬件操作。当然这个驱动程序是由采集卡的供应商提供的,用户一般无需对驱动程序的编写做过多的了解,只要能使用驱动程序与采集卡硬件打交道即可。NI公司还提供了一个数据采集卡的配置工具软件-Measurement与AutomationExplorer(MAX),它的功能比较丰富,例如使用它可以实现如下功能:,浏览系统中的设备和仪器,并快速检测及配置硬件和软件;通过测试面板验证和诊断硬件的运作情况;创建新的通道、任务、接口和比例等。,MAX给每块DAQ卡分配一个逻辑设备号,以提供LabVIEW调用时使用。在数据采集卡配置程序主界面里,左栏里有DataNeighborhood,DevicesandInterfaces和Scales等目录。,第六章ab程序的实现,运行ab程序演示:数据采集程序模块数据存盘与重载程序模块数据分析与处理程序模块,声卡,图,使用ab进行数据采集,分析与显示,图,四川理工学院毕业设计(论文)四 川 理 工 学 院毕 业 设 计(论 文)说 明 书题 目 基于声卡的数据采集 学 生 文先彬 系 别 机电工程系 专 业 班 级 机械设计制造及自动化机电03.1班 学 号 030110225 指 导 教 师 孙祥国 3四 川 理 工 学 院毕业设计(论文)任务书设计(论文)题目: 基于声卡的数据采集 系: 机 电 专业: 机 电 班级: 031 学号: 030110225 学生: 文先彬 指导教师: 孙祥国 接受任务时间 2007.03.05 教研室主任 (签名)系主任 (签名)1毕业设计(论文)的主要内容及基本要求 1.整体设计方案;2.声卡编程分析;3.程序设计; 4.编写设计说明书;2指定查阅的主要参考文献及说明 1.LabVIEW7.1编写与虚拟仪器设计2.LabVIEW程序设计与应用3.LabVIEW基础教程3进度安排设计(论文)各阶段名称起 止 日 期1查阅和搜集设计资料,在此基础上制定设计方案2007.3.5-2007.3.252进行整体方案设计2007.3.26-2007.4.23声卡编程分析2007.4.3-2007.5.34程序设计2007.5.4-2007.5.225编写设计说明书、检查2007.5.23-2007.6.56准备毕业设计答辩及相关工作2007.6.6-2007.6.24摘 要当今,科学技术的不断进步,对测量技术的要求越来越高,并且测量技术在各个领域得到了广泛的应用。本文采用虚拟仪器的思想,结合计算机的结构特点,提出了一种以计算机为平台,基于声卡数据采集、显示与分析的虚拟仪器系统。介绍了声卡数据采集系统的制作要点,运用LabVIEW程序开发系统,在普通配备有声卡的计算机上,实现了双通道数据采集系统。实验结果表明:系统能够正确采集声卡设计频率内的信号,可用于该范围内的一般数据采集与应用。此方法生成的采集软件交互性好,性价比高,且实现简单,还可以根据用户的需求进行功能扩充,为低成本构建数据采集系统提供了一种思路。在LabVIEW环境中简单、界面友好、实现了音频信号的采集分析及数据存盘重载。可以推广到语音识别、环境噪声监测和实验室测量等多种领域,应用前景广阔。关键词:LabVIEW;声卡;数据采集;虚拟仪器;信号分析AbstractToday, with the development of science and technology, the requirement measurement technology is getting more and more important. The application electronic measurement technology has extended to more fields than before.the paper design a data acquisition, signal analysis and virtual instrument system based on computer. Introduced the sound card data acquisition system manufacture main point, utilizes the LabVIEW procedure development system, has a Cardin the ordinary equipment on the computer, has realized double channel data acquisition system.Experiment results prove that the system can acquire signals in the frequency range designed for sound card correctly, and can be applied in the domains of data acquisitions and general analysis. In the range of voice frequency, data saving and overloading is successful in LabVIEW .If more sound cards configured in a PC,its feasible to build a muli-channel real-time DAQ system with high SNR.With broad application prospect, this solution can be extended to the field of speech recognition,embient noise monitoring and laboratory measurement etc.Key words: LabVIEW; Date acquisitions; Sound card; Virtual instrument; Signal analysis目 录中 文 摘 要英 文 摘 要第一章 绪论11.1 问题的提出11.2 虚拟仪器LabVIEW的概述11.2.1虚拟仪器的产生31.2.2 虚拟仪器概念31.2.3虚拟仪器的构成41.2.4虚拟仪器的优点51.3 基于LabVIEW和声卡数据采集系统在国内外的发展动态51.3.1 LabVIEW前景展望51.3.2 声卡与数据采集系统的发展动态61.3.3 国外虚拟仪器的现状61.3.4 国内虚拟仪器的现状71.3.5 虚拟仪器的发展趋势81.4 本课题研究意义101.5 本次设计的主要内容10第二章 基于声卡数据采集系统的总体设计方案122.1 硬件的选择122.2 软件的实现12第三章 LabVIEW编程环境介绍143.1 LabVIEW简介143.2 图形化的编程环境143.2.1 G语言简述143.2.2 LabVIEW程序组成153.2.3 LabVIEW的操作模板163.3 声卡设置模块203.4 虚拟仪器创建过程21第四章 声卡224.1 从数据采集角度认识声卡224.1.1声卡工作原理及性能指标224.1.2声卡的作用234.1.3 声卡的硬件结构设计234.1.4 声卡的软件设计254.2 声卡的主要技术参数264.2.1 采样的位数264.2.2 采样频率264.2.3 缓冲区264.2.4 没有基准电压274.3 声卡用于数据采集时的一些设置27第五章 数据采集和数据采集卡295.1 数据采集系统的构成295.2 数据采集卡305.2.1 数据采集卡的功能简介305.2.2 数据采集卡的软件配置305.3 数据采集系统的测试与分析32第六章 波形显示及其采样346.1 波形输入设备346.2 输入缓冲区的分配和管理346.3波形的显示356.4数据的存储356.5 波形输入设备的停止与关闭37第七章 信号分析与处理397.1 概述397.2信号的产生417.3 标准频率437.4数字信号处理437.4.1FFT变换437.4.2 单边、双边FFT457-5 谐波失真与频谱分析467-6 数字滤波487-7 IIR和FIR滤波器507.8 信号分析与处理模块程序51第八章 结束语54参考文献55致 谢56附图5731四川理工学院毕业设计(论文)第一章 绪论1.1 问题的提出现代科技发展日新月异,计算机尤其如此。计算机强大的处理能力,使得它成为一种很好的工具,其应用范围也越来越广泛。虽然传统仪器已经得到迅猛的发展,仪器精度越来越高,功能越来越强,性能越来越好,但传统仪器基本上没有摆脱单独使用、手动操作的模式。在工业自动化测试及测量领域,传统的方法有许多重复建设,使用起来很不方便,其局限性非常明显,显然己经不能适应时代发展的需要了。传统台式仪器是由厂家设计并定义好功能的一个封闭结构,它有固定的输人/输出接口和仪器操作面板。每种仪器只能实现一类特定的测量功能,并以确定的方式提供给用户。常用的数字示波器、数字万用表、信号发生器、数据记录仪及温度和压力监控器就是传统仪器的代表。一方面,目前我国高档台式仪器如数字示波器、频谱分析仪、逻辑分析仪等还主要依赖进口,这些仪器加工工艺复杂、对制造水平要求高,生产突破有困难。另一方面,用户可以将一些先进的数字信号处理算法应用于虚拟仪器的设计,提供传统台式仪器所不具备的功能,而且完全可以通过软件配置实现多功能集成的仪器设计。因此,目前研制一种结构简单、操作方便、生产技术要求不高、费用低的数字示波器是非常必要的。如何利用先进的计算机技术提高效率则成为测量领域迫切需要解决的问题。 LabVIEW(laboratory virtual instrument engineering workbench)是美国NI公司具有革命性的图形化编程语言和虚拟仪器开发环境,它广泛地被工业界、学术界和研究试验室所接受,被公认为是标准的数据采集和仪器控制软件。LabVIEW不仅提供了与遵从GPIB,VXI,RS-232和RS-485协议的硬件及数据采集卡通行的全部功能,还内置了支持TCP/IP,ActiveX等软件标准的库函数,而且其图形化的编程界面使编程过程变的有趣生动。LabVIEW是一个功能强大且灵活的软件,利用它可以方便地建立自己的虚拟仪器。以LabVIEW为代表的图形化程序语言,又称为“G”语言。使用这种语言编程语言时,基本上不需要编写程序代码,而是“绘制”程序流程图。LabVIEW尽可能利用工程技术人员构建自己的科学和工程系统能力,可为实现仪器编程和数据采集系统提供便捷途径。1.2 虚拟仪器LabVIEW的概述LabVIEW7.1版本增加的Express技术,简化了测试测量应用系统的开发进程,其灵活性的交互式VI易与各种范围的I/O信号连接,用户甚至只需要点击鼠标配置应用系统,即可完成搭建工作并开始运行。通过简单地修改Express VI的配置,可以快速的反复修改应用程序以适应新的测试测量需求。虚拟仪器(virtual instrument)是基于计算机的仪器计算机和仪器的密切结合是目前仪器发展的一个重要方向。简单的说,这种结合有两种方式。一种方式是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器的功能也越来越强大,目前已经出现含有嵌入式系统的仪器。另一种方式是将仪器装入计算机,以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。如图1-1反映了常见的虚拟仪器组建方案。被测对象信号调理数据采集卡数据处理虚拟仪器面板图1-1 常见的虚拟仪器组建方案Fig1-1 virtual device precept of familiar虚拟仪器的主要特点有:(1)尽可能采用通用的硬件,各种仪器的差异主要是软件。(2)可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能强大的仪器。(3)用户可以根据自己的需要定义和制造各种仪器。数据采集系统的主要任务是将被测对象的各种参数做A/D转换后送入计算机,并对采集到的信号做相应的处理。数据采集系统分为软件和硬件两个部分。数据采集软件通常根据用户的要求进行编写,选择好的开发平台可以起到事半功倍的效果。LabVIEW是一个较好的图形化开发环境,它内置了信号采集、测量分析与数据显示功能,提供超过450个内置函数用于分析测量数据及处理信号,将数据采集、分析与显示功能集中在了同一个开方式的开发环境中。LabVIEW的交互式测量、自动代码生成以及与多种设备的简易连接功能,使它能够较好的完成数据采集。 虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.。以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。 普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VX工标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插人标准的VX工机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是工EEE488或GPIB协议。未来的仪器也应当是网络化的。虚拟仪器技术指在包含数据采集设备的通用计算机平台上,根据需求可以高效率地构建形形色色的测量系统。对大多数用户而言,主要的工作变成了软件设计。虚拟仪器技术突破了传统仪器的局限,可以将许多信号处理的方法方便地应用于军事、航空、航天、等领域和科研院所,现在已经越来越多地出现在工厂及其他的民用场合。1.2.1虚拟仪器的产生虚拟仪器技术是现代计算机系统和仪器系统相结合的产物,是当今计算机辅助测试领域的一项重要技术。它推动着传统仪器朝着数字化、智能化、模块化、网络化的方向发展。电子测量仪器发展至今,大体上可以分为四代:模拟仪器、数字化仪器、智能仪器和虚拟仪器。第一代模拟仪器,这类仪器在某些实验室仍能看到,如指针式万用表、晶体管电压表等。它们的基本结构是电磁机械式的,借助指针来显示最终结果。第二代数字化仪器,这类仪器目前相当普及,如数字电压表、数字示波器、数字频率计等。这类仪器将模拟信号的测量值转化为数字信号,并以数字方式输出最终结果,适用于快速响应和较高准确度的测量。第三代智能仪器,这类仪器内置微处理器,既能进行自动测试又具有一定的数据处理能力,可取代部分脑脑力劳动,习惯上称为智能仪器。它的功能块全部都是以硬件或固定软件的形式存在,无论是开发还是应用,都缺乏灵活性。第四代虚拟仪器,它是现代计算机技术、通信技术和测量技术相结合的产物,是传统仪器观念的一次巨大变革,是将来仪器产业发展的一个重要方向。虚拟仪器(Virtual Instrument。,简称VI)的概念,是美国国家仪器公司(National Instruments .简称NI)于1986年提出的。NI公司时也提出了“软件即仪器”的口号,彻底打破了传统仪器只能由厂家定义,用户无法改变的局面,从而引起了仪器和自动化工业的一场革命。随着现代软件和硬件技术的飞速发展,仪器的智能化和虚拟化已经成为各级实验室以及研究结构发展的方向。虚拟仪器,它既具有传统仪器的功能,又有别于其他传统仪器。它能够充分利用和发挥现有计算机的先进技术,使仪器的测试和测量及自动化工业的系统测试和监控变得异常方便和快捷。1.2.2 虚拟仪器概念虚拟仪器是利用PC计算机显示器的显示功能模拟传统仪器的功能面板,以多种形式表达输出检测结果,利用PC计算机强大的软件功能实现信号数据的运算、分析、处理,由工/0接口设备完成信号的采集、测量和调理,从而完成各种测试功能的一种计算机仪器系统。虚拟仪器以透明的方式,通过软件对数据的分析处理、表达以及图形化用户接口,把计算机资源(如微处理器、显示器等和仪器硬件(如A/D, D/A,数字I/O、定时器、信号调理等)的测量能力、控制能力结合在一起。虚拟仪器突破了传统仪器以硬件为主体的模式,实际上使用者是在操作具有测试软件的电子计算机进行测量,犹如操作一台虚设的电子仪器。虚拟仪器技术的实质是充分利用最新的计算机技术来实现和扩展传统仪器的功能。虚拟仪器是基于计算机的仪器。软件是虚拟仪器的关键,当基本硬件确定以后,就可以通过不同的软件实现不同的功能。用户可以根据自己的需要,设计自己的仪器系统,满足多种多样的应用要求。利用计算机丰富的软、硬件资源,可以大大突破传统仪器在数据的分析、处理、表达、传递、储存等方面的限制,达到传统仪器无法比拟的效果。它不仅可以用于电子测量、测试、分析、计量等领域,而且还可以用于进行设备的监控以及工业过程自动化。虚拟仪器还可以广泛应用于电力工程、物矿勘探、医疗、振动分析、声学分析、故障诊断及教学科研等多个方面。1.2.3虚拟仪器的构成虚拟仪器从构成要素上讲,由计算机、应用软件和仪器硬件等构成:从构成方式上讲,则由以DAQ板和信号调理为仪器硬件而组成的PC-DAQ测试系统,或以GPIB,VXI,Serial和Field bus等标准总线仪器为硬件组成的GPIB系统、VX工系统、串口系统和现场总线系统等多种形式。虚拟仪器的构成如图1-2所示。无论哪种VI系统,都是将仪器硬件搭载到笔记本电脑、台式微机或工作站等各种计算机平台加应用软件而构成的。图1-2 虚拟仪器的构成Figure 1-2 Virtual instrument1.2.4虚拟仪器的优点一台性能优良的虚拟仪器不仅可以实现传统仪器的大部分功能,而且在许多方面有传统仪器无法比拟的优点,如使用灵活方便、功能丰富、价格低廉、可一机多用、可重复开发等。与传统仪器相比虚拟仪器主要有以下优点:(1)融合了计算机强大的硬件资源,突破了传统仪器在数据处理、显示、存储等方面的限制,大大增强了传统仪器的功能。而且高性能处理器、高分辨率显示器、大容量硬盘等已成为虚拟仪器的标准配置。(2)利用了计算机丰富的软件资源,一方面,实现了部分仪器硬件的软件化,节省了物质资源,增加了系统的灵活性:一方面,通过软件技术和相应的数值算法,实时、直接地对测量数据进行各种分析与处理;另一方面,通过图形用户界面(Graph User Interface)技术,真正做到界面友好、人机交互。1.3 基于LabVIEW和声卡数据采集系统在国内外的发展动态1.3.1 LabVIEW前景展望LabVIEW的概念开始来源于特鲁查德和柯德斯凯两人20世纪70年代末期在ARL(Applied Research Laboratory,应用研究实验室)完成的一个大型测试系统。该系统主要用于测试美国海军声呐探测器,也可以用该系统开展水声学试验研究。这套测试系统的应用十分灵活,因为为各层次用户提供了不同的交互接口。通过几年的时间,柯德斯凯把从该测试系统得到的启示发展到测试系统软件由多层虚拟仪器(Virtual Instruments,简称VI)构成的新概念。一个VI可以由更低层的多个VI组成,底层VI代表了最基本的软件功能计算与输入/输出(I/O),操作。柯德斯凯特别重视多层软件的互连和嵌套。创造性地提出了各层VI都有相同结构形式的思想。在硬件领域,将IC装配为电路板和将电路板装配为仪器是完全不同;在软件领域,又语句组成的子程序和子程序组成程序也是有差别的,更不用说由多个程序构成一个系统。所以柯德斯凯提出的所有层次VI一致性的结构和接口模型,极大地简化了软件结构,是对传统结构化软件设计思想的一个新发展。虚拟仪器实际上是一个按照仪器需求组织的数据采集系统,其研究中涉及到的基础理论主要是数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言和开发环境是美国NI公司的LabVIEW。虚拟仪器的发展主要取决于三个重要因素。计算机是动力,软件是主宰,高质量的A/I)采集卡及调理放大器与传感器是关键C3610无沦哪种VI系统,都是将硬件仪器(传感器、调理放大器、A/D)搭载到笔记本电脑、台式机或工作站等各种计算机平台上,加上应用软件面板构成,实现使用计算机的全数字采集测试分析。VI的发展完全跟计算机的发展同步,所以显示出VI的灵活性和强大的生命力。虚拟仪器的兴起是测试仪器技术的一次“革命”,是仪器领域的一个新的里程碑。未来的VI完全可以覆盖计算机辅助测试的全部领域、几乎能替代所有的模拟测试设备。它的重要意义在于尚是一块处女地,有待大家来开拓。基于计算机的全数字化测量分析是采集测试分析的未来。虚拟仪器必将在电子测量、电气工程、机电一体化、教育和关系国计民生的越来越多的领域中广泛普及;标准化、通用化、系列比、模块化以及开放式的体系结构等,VXI系统的观念将成为电测量仪器仪表变革的重要方向。数据采集、测试、过程控制、信息传输与通信等现代信息技术汇聚在一起,将最终导致标准化、规范化卡式仪器和软件化仪器的更广泛流行。虚拟仪器其发展将跟着通用计算机走、跟着通用软件走、跟着网络走的指导思想。继“软件就是仪器”的概念之后,很可能出现“网络就是仪器”的新观念。1.3.2 声卡与数据采集系统的发展动态 目前一般的声卡最高采样频率可达96KHz;采样位数可达16位甚至32位;声道数为2,即立体声双声道,可同时采集两路信号,需要时还可选用多路输入的高档声卡或配置多块声卡;每路输入信号的最高频率可达22.05KHz,输出16位的数字音频信号,而16位数字系统的信噪比可达96dB。当前的独立声卡或者板载声卡都包括有晶振、A/D、D/A转换芯片和数字信号处理芯片及其它辅助电路,因此它可作为数据采集卡使用。现在的声卡一般都采用PCI接口,完全满足最高16bit的采样精度、44.1kHz的采样频率所需705.6kb的数据采集传输率要求。而且,声卡是用DMA方式进行数据采传送的,这样就级大地降低CPU的占有率。计算机采集卡是信号纪录仪器中的重要组成部分,主要起A/D转换功能。目前市场上主流的数据采集卡都包含了完整的数据采集电路和计算机的接口电路,但其价格与性能成正比,如NI公司的E型数据采集卡、研华的数据采集卡等,一般都比较昂贵。随着DSP(数字信号处理)技术走向成熟,PC声卡本身就成为一个优秀的数据采集系统,它同时具有A/D和D/A转换功能,不仅价格低廉,而且兼容性好,性能稳定,灵活通用,软件特别是驱动程序升级方便。ISA总线向PCI总线的过渡,解决了以往声卡与系统交换数据的问题,同时充分发挥了DSP芯片的性能。 而且声卡用DMA(直接内存读取)方式传输数据,极大的降低了CPU的占有率。一般声卡16位的A/D转换精度,比通常12位A/D卡的精度高,对于许多工程测量和科学试验来说都是足够高的,其价格却比后者便宜很多。如果利用声卡作为数据采集设备,可以组成一个低成本高性能的数据采集系统。当然,它只适合采集音频域的信号,即输入信号频率必须在2020000Hz的音频域范围内。如果需要处理直流或缓变信号,则需要其他技术的配合。1.3.3 国外虚拟仪器的现状虚拟仪器技术目前在国外发展很快,以美国国家仪器公司(NI公司)为代表的一批厂商已经在市场上推出了基于虚拟仪器技术而设计的商品化仪器产品。在美国虚拟仪器系统及其图形编程语言,已作为各大学理工科学生的一门必修课程。美国的斯坦福大学的机械工程系要求三、四年级的学生在实验时应用虚拟仪器进行数据采集和实验控制。虚拟仪器的概念使得现代计算机技术、通信技术和测量技术达到了前所未有的紧密结合,进而引发了传统仪器观念的一次巨大变革。近年来,世界各国的虚拟仪器公司开发了不少虚拟仪器开发平台软件,以便使用者利用这些公司提供的开发平台软件组建自己的虚拟仪器或测试系统,并编制测试软件。最早和最具影响力的开发软件,是NI公司的LABVIEW软件和Lab Windows/CVI开发软件。LABVIEW采用图形化编程方案,是非常实用的开发软件。LabWindows/CV工是为熟悉C语言的开发人员准备的、在Windows环境下的标准ANSIC开发环境。除了上述的优秀开发软件之外,美国HP公司的HP-VEE和HPTIG平台软件,美国Tektronix公司Ez-TestTek-TNS软件,以及美国HEMData公司的Snap-Master平台软件,也是国际上公认的优秀虚拟仪器开发平台软件。当今虚拟仪器的系统开发采用的总线包括传统的RS232串行总线、GP工B通用接口总线、VXI总线,以及己经被PC机广泛采用的USB通用串行总线和工EEE1394总线(即Firewire,也叫做火线)。世界各国的公司,特别是美国NI公司,为使虚拟仪器能够适应上述各种总线的配置,开发了大量的软件以及适应要求的硬件(插件),可以灵活地组建不同复杂程度的虚拟仪器自动测试系统。虚拟仪器开发商不仅注意使虚拟仪器能够适应各种通用计算机总线系统,使之为虚拟仪器服务,而且也注意建立各种仪器专用的总线系统。美国NI公司在1997年9月1日推出模块化仪器的主流平台PXI,这是与Compact PCI完全兼容的系统。这种虚拟仪器模块化主流平台PX工/Compact PCI的传输速度己经达到100Mb/s,是目前已经发布的最高传输速度。虚拟仪器的开发厂家,为扩大虚拟仪器的功能,在测量结果的数据处理、表达模式及其变换方面也做了许多工作,发布了各种软件,建立了数据处理的高级分析库和开发工具库(例如测量结果的谱分析、快速傅立叶变换、各种数字滤波器、卷积处理和相关函数处理、微积分、峰值检测、波形发生噪声发生、回归分析、数值运算、时域和频域分析等),使虚拟仪器发展成为可以组建极为复杂自动测试系统的仪器系统。1.3.4 国内虚拟仪器的现状在国内己有部分院校的实验室引人了虚拟仪器系统,上海复旦大学、上海交通大学、广州暨南大学、华中理工大学、四川联合大学等。近一、两年来这些学校在原有的基础上,又开发了一批新的虚拟仪器系统用于教学和科研。其中,华中理工大学机械学院工程测试实验室将其开发成果在网上公开展示。四川联合大学的教师基于虚拟仪器的设计思想,研制了“航空电台二线综合测试仪”将8台仪器集成于一体,组成虚拟仪器系统,使用方便、灵活。清华大学汽车系利用虚拟仪器技术构建的汽车发动机检测系统,用于汽车发动机的出厂检验。主要检测发动机的功率特性、负荷特性等。一台发动机检测完后,就可打印出完整的检测报告。此外,国内己有几家企业在研制PC虚拟仪器,哈工大仪器王电子有限责任公司就是其中之一,它的产品已达到一定的批量。其主要产品有数字存储示波器系列、任意波形发生器及频率计系列、多通道大容量波形记录仪系列。国内专家预测:未来的几年内,我国将有50$的仪器为虚拟仪器,国内将有大批企业使用虚拟仪器系统对生产设备的运行状况进行实时监测。随着微型计算机的发展,虚拟仪器将会逐步取代传统的测试仪器而成为测试仪器的主流。虚拟仪器技术的提出与发展,标志着二十一世纪自动测试与电子测量仪器领域技术发展的一个重要方向。1.3.5 虚拟仪器的发展趋势 虚拟仪器正在继续迅速发展。它可以取代测量技术在传统领域的各类仪器。虚拟仪器在组成和改变仪器的功能和技术性能方面具有灵活性与经济性,因而特别适应于当代科学技术迅速发展和科学研究不断深化所提出的更高更新的测量课题和测量需求。“没有测量就没有鉴别,科学技术就不能前进”。虚拟仪器将会在科学技术的各个领域得到广泛应用。 图形化编程平台的进一步发展与完善是虚拟仪器发展的一个重要方向。如何使用户进行少量的学习甚至不需要学习就可使用功能强大的虚拟仪器,如何使用构成简单的虚拟仪器系统并完成复杂的测试内容,如何帮助用户对测试结果进行分析和判断等内容,是虚拟仪器技术的努力方向。我国还基本处于传统仪表与计算机化仪器互相分离的态,世界各大相关产品商家都在向中国这个巨大的市场进军。结合我国的实际情况,我们必须走引进与自行开发相结合的道路。一方面,大力引进国外虚拟仪器方面的生产技术;另一方面,发展基于计算机的插卡式硬件模块为主的测控技术,发展图形化平台的软件产品,充分利用我们现有的计算机及测控技术硬件,缩短与国际先进水平的差距。 VX工总线将成为未来虚拟仪器的理想硬件平台,这是由于VX工总线的性能决定的;另一方面,基于PC工,DAQ的虚拟仪器系统由于性价比高、灵活性好而受到大多数用户的青睐,将得到高速的发展。随着计算机硬件、软件技术的迅速发展,虚拟仪器将向高性能、多功能、集成化、网络化方向发展。 所谓虚拟仪器是基于计算机的软硬件测试平台,它可代替传统的测量仪器,如示波器,逻辑分析仪,信号发生器,频谱分析仪等;可集成于自动控制,工业控制系统;可自由构建成专有仪器系统。它由计算机,应用软件和仪器硬件组成。无论哪种虚拟仪器系统,都是将仪器硬件搭载到笔记本电脑,台式Pe或工作站等各种计算机平台(甚至可以是掌上电脑)加上应用软件而构成的。 虚拟仪器通过软件将计算机硬件资源与仪器硬件有机的融合为一体,从而把计算机强大的计算处理能力和仪器硬件的测量,控制能力结合在一起,大大缩小了仪器硬件的成本和体积,并通过软件实现对数据的显示、存储以及分析处理。从发展史看,电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器,由于计算机性能以摩尔定律(每半年提高一倍)飞速发展,已把传统仪器远远抛到后面,并给虚拟仪器生产厂家带来较高的技术更新速率。 虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。尤其在科研、开发、测量、检测、计量、测控等领域更是不可多得的好工具。虚拟仪器技术先进,十分符合国际上流行的“硬件软件化”的发展趋势,因而常被称作“软件仪器”。它功能强大,可实现示波器、逻辑分析仪、频谱仪、信号发生器等多种普通仪器全部功能,配以专用探头和软件还可检测特定系统的参数,如汽车发动机参数、汽油标号、炉窑温度、血液脉搏波、心电参数等多种数据;它操作灵活,完全图形化界面,风格简约,符合传统设备的使用习惯,用户不经培训既可迅速掌握操作规程;它集成方便,不但可以和高速数据采集设备构成自动测址系统,而且可以和控制设备构成自动控制系统。 在仪器计量系统方面,示波器、频谱仪、信号发生器、逻辑分析仪、电压电流表是科研机关、企业研发实验室、大专院所的必备测量设备。随着计算机技术在测绘系统的广泛应用,传统的仪器设备缺乏相应的计算机接口,因而配合数据采集及数据处理十分困难。而且,传统仪器体积相对庞大,多种数据测量时常感到捉襟见肘,手足无措。我们常见到硬件工程师的工作台上堆着纷乱的仪器,交错的线缆和繁多待测器件。然而在集成的虚拟测量系统中,我们见到的是整洁的桌面,条理的操作,不但使测量人员从繁复的仪器堆中解放出来,而且还可实现自动测量、自动记录、自动数据处理。其方便之极固不必多言,而设备成本的大幅降低却不可不提。一套完整的实验测量设备少则几万元,多则几十万元。在同等的性能条件下,相应的虚拟仪器价格要低二分之一甚至更多。虚拟仪器强大的功能和价格优势,使得它在仪器计量领域具有很强的生命力和十分广阔的前景。 在专用测量系统方面,虚拟仪器的发展空间更为广阔。环顾当今社会,信息技术的迅猛发展,各行各业无不转向智能化、自动化、集成化。无所不在的计算机应用为虚拟仪器的推广提供了良好的基础。虚拟仪器的概念就是用专用的软硬件配合计算机实现专有设备的功能,并使其自动化、智能化。因此,虚拟仪器适合于一切需要计算机辅助进行数据存储、数据处理、数据传输的计量场合。测量与处理、结果与分析相税节的面貌将大为改观。数据的拾取、存储、处理、分析一条龙操作,既有条不紊又迅捷快速。推而广之,一切计量系统,只要技术上可行,都可用虚拟仪器代替,由此可见虚拟仪器应用空间是多么的宽广。在自动控制和工业控制领域,虚拟仪器同样应用广泛。决大部分闭环控制系统要长精确的采样,及时的数据处理和快速的数据传输。虚拟仪器系统恰恰符合上述特点,十分适合测控一体化的设计。尤其在制造业,虚拟仪器的卓越计算能力和巨大数据吞生能力必将使其在温控系统、在线监测系统、电力仪表系统、流程控制系统等工控领或发挥更大的作用。1.4 本课题研究意义在声卡数据采集系统设计中,硬件解决信号的输人和输出,软件可以方便地修改、改变仪器系统的功能,以适应不同使用者的需要。其中信号的输人部分一般使用数据采集卡实现,商用的数据采集卡具有较大的通用性,但其价格昂贵。在具体的应用场合,有些功能可能不实用。普通声卡具有16位的量化精度、数据采集频率是44kH完全可以满足特定应用范围内数据采集的需要,个别性能指标还优于商用数据采集卡,而价格却为商用数据采集卡的十几分之一甚至几十分之一。本文利用普通声卡作采集卡,美国NI公司的虚拟仪器软件LabV工EW作开发平台,设计实现了一种方便的、灵活性强的虚拟示波器,该系统能够正确采集声卡设计频率范围内的信号(如声音、脉搏、心电、脑电、电话等),对一些应用领域是一种很好的选择。目前高精度、具有数据存储能力的示波器,由于工艺复杂、技术要求高,因而价格昂贵,所以虚拟数字存储示波器的设计有一定的经济价值;虚拟示波器能充分发挥虚拟仪器结构简单、灵活方便、功能丰富、价格低廉、一机多用、能重复开发、可由用户自定义的优势。 基于声卡的数据采集,声卡输入信号的同时,还可同时显示、记录、采集、存储、处理等功能,对存储的曲线可通过“回放功能”显示在屏幕上,“回放”过程可暂停波形扫描,以便能更清楚地观察波形的变化,以便使用者能及时进行数据处理,观察和分析实验结果。所以本课题具有一定的研究意义。1.5 本次设计的主要内容本设计首先要进行声卡数据采集总体方案设计;由于技术条件有限,所以本次设计采用单通道的数据采集方式。设计中应掌握虚拟仪器的软件编程环境LabVIEW的使用;熟悉声卡的使用,进行示波器硬件模块的设计;用图形化编程语言LabVIEW实现虚拟示波器的声卡设置模块、核心是数据采集程序的实现,其中也包括数据存盘与重载、波形显示及采样、信号分析与处理等几个环节。本设计各章的安排如下:第二章是基于声卡数据采集的总体设计方案。主要介绍以下几个方面的内容:声卡和数据采集卡的选择,对其信号A/D转换和分辨率做出了分析。第三章主要介绍了从数据采集角度认识声卡,声卡的工作原理,在硬件和软件方面的实现,最后讲述了声卡主要技术参数的设置。第四章是本论文的关键部分,详细地介绍了声卡数据采集最核心的部分数据采集和数据采集卡。通过对数据采集功能模块的描述,说明了数据采集系统的构成,测试与分析。最后通过LabVIEW程序来实现数据的采集。第五章主要介绍了波形的显示及采样,这章主要介绍了数据存盘与重载,波形输入设备功能简介,采样试验等功能。第六章首先是对LabVIEW信号分析与处理函数功能作了初步的简介,主要是对采集出来的声音信号噪音与波形的分析,最后运用LabVIEW程序编写了信号处理与分析的程序框图。最后,对论文进行了总结。设计内容流程图为:基于声卡数据采集的总体设计方案信号处理与分析波形显示及采样数据采集和数据采集卡声卡的认识程序的实现图1-3 设计内容流程图Fig1-3 Design contents flow chart第二章 基于声卡数据采集系统的总体设计方案2.1 硬件的选择目前的独立声卡或者板载声卡都包括有晶振、A/D、D/A转换芯片和数字信号处理芯片及其它辅助电路,因此它可作为数据采集卡使用。现在的声卡一般都采用PCI接口,完全满足最高16bit的采样精度、44.1kHz的采样频率所需705.6kb的数据采集传输率要求。而且,声卡是用DMA方式进行数据采传送的,这样就级大地降低CPU的占有率。LabVIEW对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,计算机配置为AMD2400+/512M内存,板载C-Media AC97声卡。对于高级的声卡采集信号时,要注意关闭如混响之类的一些特效,避免影响测量结果的真实性。LabVIEW数据采集库包含了许多有关采样和生成数据的函数,它们与NI的插卡式或远程数据采集产品协同工作。数据采集卡是进行高速直接控制以及低速控制的理想设备。由于数据采集卡价格低廉、操作携带方便,因此大大的降低了每个通道的成本。商用的数据采集卡虽具有较大的通用性,但其价格昂贵,在具体的应用场合,有些功能可能并不实用。普通声卡,具有16位的量化精度、数据采集频率是44 kHz完全可以满足特定应用范围内数据采集的需要,个别性能指标还优于普通商用数据采集卡,而价格却为商用数据采集卡的十几分之一甚至几十分之一,本文选用普通声卡作采集卡大大降低了成本。数据采集系统的任务是采集原始的数字信号,其主要指标有采样精度、采样速度。采样精度由转换器的位数来决定,而采样速度是与采样频率不可分的。从提高精度的角度出发,模数转换器的位数与采样频率之间是相互制约的。数据采集卡的选择主要与采样率、测量通道、分辨率和测量精度有关。采样率即在单位时间内的测量次数,一般用H:即采样频率来表示。采样率的选择,取决于被测量的信号的变化速度,根据奈奎斯特采样定理,所需的采样频率应为所测信号的最高频率分量的两倍以上,即应选用100kH的板卡才能完成最高频率为50kHz的被测信号的侧量工作。测量中都需将模拟信号经A/D转换成二进制的数字信号,分辨率就是将满量程信号经A/D转换后得到的二进数的位数。分辨率越高,意味着可检测出来的电压变化越小,它和测量范围(可测量的最高电平和最高电平)及增益(板卡的放大倍数)一起决定了该板卡可测的最小电压变化量,也称为二进码的宽度,现在产品中有8位、12位、16位的最多。2.2 软件的实现如图2-1所示,这个流程与一般数据采集卡并无多大差别,这也是本设计的最基本的骨干。图2-1 声卡数据采集流程图Fig2-1 Audio card dates collect procedure flow chart声卡数据采集虚拟示波器是采用基于计算机的虚拟技术,用以模拟通用示波器的面板操作和处理功能,也就是使用个人计算机及其接口电路来采集现场或实验室信号,并通过图形用户界面(GUI)来模仿示波器的操作面板,完成信号采集、调理、分析处理和显示输出等功能。我所设计的虚拟示波器,是在数据采集硬件的支持下,配备一定功能的软件,完成波形的存储、分析、显示等功能。一般测试仪器由信号采集、信号处理和结果显示三大部分组成,这三部分均由硬件构成。虚拟示波器也是由这三大部分组成,但是除了信号采集部分是由硬样实现之外,其它两部分都是由软件实现。总体设计方案软件方面的实现:信号和谱分析程序模块数据存盘程序模块数据采集程序模块采样初始化配置声卡释放声卡 RIFF波形块格式子块数据子块信号采集、存储时域图实显示加窗和功率谱分析图2-2 设计方案软件流程图Fig Design project software flow chart第三章 LabVIEW编程环境介绍3.1 LabVIEW简介LabVIEW是一种图形化的编程语言和开发环境,它广泛地被工业界和研究实验室所接受,被公认为是标准的数据采集控制软件。不仅提供了与遵从GPIB,VXI,RS-232和RS-485协议的硬件及数据采集卡通信的全部功能,还内置了支持TCP/IP,ActiveX等软件标准的库函数,而且其图形化的编程界面使编程过程变得生动有趣。LabVIEW是一个功能大而且灵活的软件,利用它可以很方便地建立自己的虚拟仪器。利用LabVIEW,可以产生独立运行的可执行文件。LabVIEW是真正的32位编译器。像其他的软件一样,提供了LabWindows, Linux和Macintosh等多种版本。3.2 图形化的编程环境3.2.1 G语言简述LabVIEW是一种图形化的编程语言(G语言)。与Visual C+, Visual Basic,LabWindows/CVI等编侧吾言不同,LabVIEW用图标、连线和框图代替传统的程序代码,并且LabVIEW所运用的设备图标与科学家、工程师们常用的大部分图标基本一致,这使得编程过程和思维过程非常地相似。G语言是一种适合应用于任何编程任务、具有扩展函数库的编程语言。和Basic或C语言一样,G语言定义了数据模型、结构类型和模块调用语法规则等编程语言的基本要素,在功能完整和应用灵活上不逊于任何高级语言,同时G语言丰富的扩展函数库还为用户编程提供了极大的方便。这些扩展函数库主要面向数据采集、GPIB和串行仪器控制以及数据分析、数据显示和数据存储。G语言还包含常用的程序调试工具,比如允许设置断点、单步调试、数据探针和动态显示执行流程等功能。G语言与传统编程语言最大的差别在于编程方式,一般高级语言采用文本编程,而G语言采用图形化编程方式。G语言的典型代表LabVIEW是带有可扩展函数库和子程序库的通用程序设计系统。它提供了用于GPIB设备控制、VX工总线控制、串行口设备控制、数据分析、显示和存储的应用程序模块。LabVIEW可方便地调用Window。动态链接库和用户自定义的动态链接库中的函数;LabIEW还提供了CIN (C Interface Node)节点使得用户可以使用由C或C+十语言,编译的程序模块,使得LabIEW成为一个开放的开发平台。LabVIEW还直接支持动态数据交换(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。此外,LabIEW还提供了专门用于程序开发的工具箱,使得用户能够很方便地设置断点,动态地执行程序来非常直观形象地观察数据的传输过程,以及方便地进行调试。LabIEW的运行机制就宏观上讲已经不再是传统上的冯诺伊曼计算机体系结构的执行方式了。传统的计算机语言(如c语言)中的顺序执行结构在LabIEW中被并行机制所代替;本质上讲,它是一种带有图形控制流结构的数据流模式(Data Flow Mode),这种方式确保了程序中的函数节点(Function Node)只有在获得它的全部数据后才能被执行。也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响。LabIEW的程序是数据流驱动的。数据流程序规定,一个目标只有当它的所有输入有效时才能执行;而目标的输出,只有当它的功能完全时才是有效的。这样,LabVIEW中被连接的方框图之间的数据流控制着程序的执行次序,而不像文本程序受到执行顺序执行的约束。从而,可以通过相互连接功能框图快速简洁地开发应用程序,甚至还可以有多个通道同步运行。3.2.2 LabVIEW程序组成 该环境包含包括三个部分:程序前面板、框图程序和图标/连接端口。程序前面板用于设置输人数值和观察输出量,用于模拟真实仪表的前面板。在程序前面板上,输人量被称为控制(Controls),为虚拟仪器的框图程序提供数据:输出量被称为显示(Indicators),显示虚拟仪器流程图中获得或产生的数据。控制和显示是以各种图标形式出现在前面板上,如旋钮、开关、按钮、图表、图形等,这使得前面板直观易懂。 一个程序前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,可以把它理解成传统程序的源代码。框图程序由节点(Node)、数据连线(Wire )构成。节点是vi程序中的执行元素,类似于文本编程语言程序中的语句、函数或子程序。节点之间数据连线按照一定的逻辑关系相互连接,可定义框图程序内的数据流动方向。节点之间、节点与前面板对象之间是用数据端口和数据连线来传递数据的。数据端口是数据在前面板对象和框图程序之间传输的通道,是数据在框图程序内节点之间传输的接口。 LabVIEW中有两种类型的数据端口:控制端口和指示端口以及节点端口。控制端口和指示端口用于前面板对象,当VI程序运行时,从控制输人的数据通过控制端传递到框图程序,供其中的程序使用,产生的输出数据在通过指示端口传输到前面板对应的指示中显示。每个节点端口都有一个或数个数据端口用于输人或输出.LabVIEW采用的一种获得专利的数据流编程模式,这不同于一些基于文本的编程语言的线性结构,不同于执行一个传统的控制流方法。控制流执行的是指令驱动,而数据流执行的是数据流驱动。但一个虚拟仪器的图标被放置在另一个虚拟仪器的流程图中时,它就是一个子仪器(Sub VI)。 图标/连接端口可以把VI变成一个Sub VI,然后像子程序一样在其他程序中调用。图标是Sub VI的直观标记,是Sub VI在其他程序框图中被调用的节点表现形式;而连接端口则表示该Sub VI与调用它的VI之何进行数据交换的输人/输出口,就像传统编程语言子程序的参数。3.2.3 LabVIEW的操作模板 LabVIEW具有多个图形化的操作模板,用于创建和运行程序。这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。操纵模板共有三类,为工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。(1)工具模板(Tools Palette)工具模板为编程者提供了各种用于创建、修改和调试VI程序的工具。如果该模板没有出现,则可以在Window。菜单下选择Show Tools Palette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从Windows菜单下选择了Show Help Window功能后,把工具模板内选定的任一种工具光标放在框图程序的子程序(sub VI)或图标上,就会显示相应的帮助信息。工具图标有如下几种:操作工具:使用该工具来操作前面板的控制和显示。使用它向数字或字符串控制中键人值时,工具会变成标签工具的形状。选择工具:用于选择、移动或改变对象的大小。当它用于改变对象的连框大小时,会变成相应形状。标签工具:用于输人标签文本或者创建自由标签。当创建自由标签时它会变成相应形状。连线工具:用于在框图程序上连接对象。如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。对象弹出菜单工具:用左鼠标键可以弹出对象的弹出式菜单。漫游工具:使用该工具就可以不需要使用滚动条而在窗口中漫游。断点工具:使用该工具在VI的框图对象上设置断点。探针工具:可以在框图程序内的数据流线上设置探针。程序调试员可以通过控针窗口来观察该数据流线上的数据变化状况。颜色提取工具:使用该工具来提取颜色用于编辑其他的对象。颜色工具:用来给对象定义颜色。它也显示对象的前景色和背景色。与上述工具模板不同,控制和功能模板只显示顶层子模板的图标。在这些顶层子模板中包含许多不同的控制或功能子模板。通过这些控制或功能子模板可以找到创建程序所需的面板对象和框图对象。用鼠标点击顶层子模板图标就可以展开对应的控制或功能子模板,只需按下控制或功能子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上。(2)控制模板(Controls Palette) 用控制模板可以给前面板添加输人控制和输出显示。每个图标代表一个子模板。如果控制模板不显示,可以用Windows菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。控制模板如左图所示,它包括如图所示的几个子模板。数值子模板:包含数值的控制和显示。布尔值子模块:逻辑数值的控制和显示。字符串子模板:字符串和表格的控制和显示。列表和环(Ring)子模板:菜单环和列表栏的控制和显示。数组和群子模板:复合型数据类型的控制和显示。图形子模板:显示数据结果的趋势图和曲线图。路径和参考名Regnum子模板:文件路径和各种标识的控制和显示。控件容器库子模板:用于操作。LE, ActiveX等功能。对话框子模板:用于输人对话框的显示控制。修饰子模板:用于给前面板进行装饰的各种图形对象。用户自定义的控制和显示。调用存储在文件中的控制和显示的接口。(3)功能模板(Functions Palette) 功能模板是创建框图程序的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在框图程序窗口的空白处点击鼠标右键以弹出功能模板。功能模板如左图所示。结构子模板:包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。数值运算子模板:包括各种常用的数值运算符,如+、等;以及各种常见的数值运算式,如+1运算;还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。布尔逻辑子模板:包括各种逻辑运算符以及布尔常数。字符串运算子模板:包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。数组子模板:包括数组运算函数、数组转换函数,以及常数数组等。群子模板:包括群的处理函数,以及群常数等。这里的群相当于c语言中的结构。比较子模板:包括各种比较运算函数,如大于、小于、等于。时间和对话框子模板:包括对话框窗口、时间和出错处理函数等。文件输人/输出子模板:包括处理文件输人/输出的程序和函数。仪器控制子模板:包括GPIB(488, 488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。仪器驱动程序库:用于装人各种仪器驱动程序。数据采集子模板: 包括数据采集硬件的驱动程序,以及信号调理所豁的各种功能模块。信号处理子模板:包括信号发生、时域及频域分析功能模块。数学模型子模块:包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。图形与声音子模块:包括3D, OpenGL, 声音播放等功能模块。通讯子模板:包括TCP, DDE. ActiveX和LE等功能的处理模块。应用程序控制子模块:包括动态调用VI、标准可执行程序的功能函数。底层接口子模块:包括调用动态连接库和CIN节点等功能的处理模块。文档生成子模板。示教课程子模板:包括LabVIEW示教程序。用户自定义的子VI模板。“选择I子程序”子模板:包括一个对话框,可以选择一个VI程序作为子程序(SUB VI)插人当前程序中。3.3 声卡设置模块LabVIEW提供了一系列使用Windows底层函数编写的与声卡有关的函数。这些函数使用Windows底层函数(不用更高级更方便的MCI函数以及DirectX接口)直接与声卡驱动程序打交道,因而封装层次低,速度快,而且可以访问、采集缓冲区中任意位置的数据,具有很大的灵活性,能够满足实时不间断采集的需要。LabVIEW有强大的信号处理能力。其中音频输人的相关节点从功能模板中的调用路径为All Functions/ Graphics& Sound/Sound用LabVIEW处理声卡的操作步骤如下:在使用声卡之前。必须先对其进行初始化。一般声音输人设备不可共享,若在某个程序运行之前。设备己被其他应用程序占用,则此应用程序不能再使用该设备。所以,在程序中一旦对声卡使用完毕,应立即释放它。函数SI Config.VI和SI Start.VI分另用于配置和开启声卡;SI Clear.VI用来释放己经打开的声卡。图3-1声卡函数及声卡设置前面板Fig 3-1 Sound card function and sound card establishment front panel声卡的有关函数介绍:该函数的主要功能是设置声卡中与数据采集相关的一些硬件参数,如采样率、数据格式、缓冲区长度等。声卡的采样率由内部时钟控制,只有3-4种固定频率可选,一般将采样频率设置为44100Hz,数据格式设置为16位字长。缓冲区长度可取默认值。该函数用于通知声卡开始采集外部数据。采集到的数据会被暂存在缓冲区中,这一过程无需程序干扰,由声卡硬件使用DMA直接完成,保证了采集过程的连续性。该函数用于等待采样数据缓冲区满的消息。当产生这一消息时,它将数据缓冲区中的内容读取到用户程序的数组中,产生一个采样数据集合。若计算机速度不够快,使得缓冲区内容被覆盖,则会产生一个错误信息。这时应调节缓冲区大小,在采样时间与数据读取之间找到一个理想的平衡点。该函数用于通知声卡停止采集外部数据。已采集而未被读出的数据会留在缓冲区中,可以使用SI Read函数一次读完。该函数用于完成最终的清理工作,例如关闭声卡的采样通道,释放请求的一系列系统资源(包括DMA、缓冲区内存、声卡端口等)。如果声卡是16位的,那么将其设置为8位是没有输出的,声卡设置为立体声采样,这样保证双通道工作,缓冲区的大小设置为16384,经过SI Config和SI Start的准备后,进人循环体。声卡首先将数据送到缓冲区,SI Read负责将缓冲区中的数据整块读出,放入内存中的用户数组。3.4 虚拟仪器创建过程创建虚拟仪器的过程为四步:(1)创建前面板。前面板是图形化用户界面,用于设置输人数值和观察输出量。它模仿了实际仪器的面板。前面板包含了旋钮、按钮、图形和其他控制与显示对象。通过鼠标和键盘输人数据、控制按钮,也可在计算机显示器上直接观看结果。若想要在数字控制中输人或修改数值,你只需要用操作工具,点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行输人数值修改。(2)创建框图程序。在前面板窗口的主菜单Windows中选择Show Diagram,将前面板窗口切换到框图程序窗口,此时会看到与前面板对象对应的端口。根据需要在功能模板中找到所需的节点,并将节点图标放到框图程序窗口。用数据连线将这些端口和节点的图标连接起来,形成一个完整的框图程序。(3)创建图标。一个虚拟仪器的图标/连接端口就像一个图形(表示某一虚拟仪器)的参数列表。这样,其它的虚拟仪器才能将数据传输给一个子仪器。图标和连接允许将此仪器作为最高级的程序,也可以作为其它程序或于程序中的子程序(子仪器)。 (4)运行和调试程序。运行和调试程序是任何一门编程语言编程的最重要的一步。在LabVIEW中,用户可以通过两种方式来运行程序:运行和连续运行,如果一个VI程序存在语法错误,则在面板工具条上的运行按钮将会变成一个折断的箭头,表示程序不能被执行.这时这个按钮被称作错误列表。点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。调试程序时可以利用单步执行、设置断点、设置探针来显示数据流动方向。第四章 声卡4.1 从数据采集角度认识声卡4.1.1声卡工作原理及性能指标声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经过DSP音效芯片的处理,将该数字信号转换为模拟信号输出。声卡的基本工作流程为:输入时,麦克风或线路输入(Line In)获取的音频信号通过A/D转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以PCM(脉冲编码调制)方式送到D/A转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(Line Out)送到音箱等设备转换为声波,人耳侦测到环境空气压力的改变,大脑将其解释为声音。图4-1是声卡的工作框图,模拟声信号经过声卡前置处理及A/D转换后变成数字信号,送人输人缓冲区,然后通过各种数字信号处理的方法对波形输人缓冲区的数据进行处理,完成声音消噪、音效处理、声音合成等功能,最后把处理好的数据把保存到存储设备,这就是声音信号的录制过程。相应的声音信号回放过程为:把处理好的数据送到输出缓冲区,再由声卡的D/A转换,将数字音频转换为模拟信号,经过功率放大,送到喇叭。如果将工程中所需采集的信号仿照声音信号输人,即可实现对信号的采集和存储。图4-1声卡工作框图Fig4-1 working diagram of sound card衡量声卡的技术指标包括复音数量、采样频率、采样位数(即量化精度)、道数、信噪比(SNR)和总谐波失真(TDH)等,主要介绍如下:(1)复音数量代表了声卡能够同时发出多少种声音。复音数越大,音色就越好,播放声音时可以听到的声部越多、越细腻。(2)采样频率每秒采集声音样本的数量。采样频率越高,记录的声音波形就越准确,保真度就越高,但采样数据量相应变大,要求的存储空间也越多。(3)采样位数将声音从模拟信号转化为数字信号的二进制位数(bit)。位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高。例如,16位声卡把音频信号的大小分为216=65536个量化等级来实施上述转换。4.1.2声卡的作用从数据采集的角度来看,声卡是一种音频范围内的数据采集卡,是计算机与外部的模拟量环境联系的重要途径。过去声卡多以插卡的形式安装在微机的扩展槽上,现在越来越多的主板上集成有声卡。民用声卡的价格十分低廉,如果测量对象的频率在音频范围之内,而且对指标又没有太高要求,就可以考虑使用声卡。LabVIEW提供了操作声卡的函数。声卡的主要功能包括录制与播放、编辑与合成处理、MIDI接口3个部分。(1)录制与播放 通过声卡,人们可将来自话筒、收录机等外部音源的声音录入计算机,并转换成数字文件进行储存和编辑等操作; 人们也可以将数字文件还原成声音信号,通过扬声器回放,例如为电子游戏配音,以及播放CD、VCD、DVD、MP3、MP4和卡拉OK等。注意,在录制和回放时,不仅要进行A/D和D/A转换,还要进行压缩和解压缩处理。(2)编辑和合成处理通过对声音文件进行多种特技效果的处理,包括加入回音,倒放,谈入谈出,往返放音以及左右两个声道交叉放音等,可以实现对各种声源音量的控制与混合。(3)MIDI接口 通过对MIDI接口和波表面合成,可以纪录和回放各种接近真实乐器原音的音乐。 从一般意义上来看,上述功能主要是数据采集和性能好处理,很自然地就可以联想到用声卡实现示波器、信号发生器、频谱分析仪等虚拟仪器。4.1.3 声卡的硬件结构设计 声卡虚拟仪器的硬件组成如(图4-2)所示:图4-2声卡接口示意图Fig4-2 Schematic drawing of sound card interface硬件连接采用两种连接线:(1)一条一头是3.5mm插孔,另外一头是鳄鱼夹的连接线;(2)是一条双头为3.5mm插孔的音频连接线(在市面上可以买到)。为测试声卡的频率特性,可使用测试线(2)将声卡的输入端与输出端连接起来,形成一个闭合的环路。连接时要注意区分Mic In和SPK Out口,不要把它们当作Line In与Line Out接入。如果测试输入信号,则使用测试线(1)把信号源接到声卡输入端Line In口;如果测试输出信号,就把该测试线接到声卡输出端Line Out口。可以使用坏的立体声耳机做一个双通道的输入线,减去耳机,保留线和插头即可。注意这两个通道是共地的。声卡一般有Line In和Mic In两个信号输入插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。若由Mic In输入,由于有前置放大器,容易引入噪音且会导致信号过负载,故推荐使用Line In,其噪音干扰小且动态特性良好。声卡测量信号的引入应用音频电缆或屏蔽电缆以降低噪音干扰。若输入信号电平高于声卡所规定的最大允许输入电平。此外,将声卡的Line Out端口接到耳机上还可以实现的监听声音信号。LabVIEW对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,由于存在隔直耦合电容,一般声卡的信号频率测量范围受限为10Hz22KHz,输入电压范围为1Vpp5Vpp。另外,对于高级的声卡采集信号时,要注意关闭如混响之内的一些特效,避免影响测量结果的真实性。目前的独立声卡或者板载声卡都包括有晶振、A/D、D/A转换芯片和数字信号处理芯片及其它辅助电路,因此它可作为数据采集卡使用。现在的声卡一般都采用PCI接口,完全满足最高16bit的采样精度、44.1kHz的采样频率所需705.6kb的数据采集传输率要求。而且,声卡是用DMA方式进行数据采传送的,这样就级大地降低CPU的占有率。4.1.4 声卡的软件设计在Windows环境下,应用程序对声卡波形音频设备进行处理有3种方法。第一种是使用高层音频服务的MCI函数来控制波形设备。第二种是应用DirectX的音频服务技术。第三种则是使用低层音频服务API函数。MCI提供了一组与设备无关的控制命令,是一种访问多媒体设备的高层次方法。它使用简便,但灵活性较差,在录音的过程中不能直接访问内存中的采样数据,无法满足实时性要求。采用DirectSound的方法,控制灵活,但实现起来比较困难,而且它在信号采集方面的应用性能并不比低层音频函数优越。Windows的低层音频函数可直接与声卡驱动程序进行通信,提供了对声卡的最大灵活性的操作,允许在采样过程中随机地访问内存中的每个采样数据,完全可以克服使用MCI命令所遇到的实时性问题。因此,本文在VC+6.0环境下,使用低层音频API函数进行采集软件的设计。(1)低层音频函数本系统是对信号波形输入设备的操作,因此采用以wave开头的一系列低层音频服务API函数,实现对波形输入缓冲区数据的控制。(2)软件实现用低层音频函数控制声卡进行数据采集的程序流程如图4-3所示。它主要包括查询波形输入设备,打开、关闭输入设备驱动程序,输入数据缓冲区的分配、准备和管理,采样数据的显示和存储,以及错误处理这几大部分。图4-3 声卡数据采集程序流程图Fig4-3 Audio card dates collect procedure flow chart4.2 声卡的主要技术参数4.2.1 采样的位数采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。声卡的位是指声卡在采集和播放声音文件时所使用的数字声音信号的二进制位数,它客观地反映了数字声音信号对输入声音信号描述的准确程度。例如,8位代表28=256;16位则代表216=64103。比较一下,一段相同的音乐信息,16位声卡能把它分为16103个精度单位进行处理,而8位声卡只能处理256个精度单位,最终的采样效果自然是无法相提并论的。目前市面上所有的声卡主流产品都是16位的,而并非像有些商家所鼓吹的64位乃至128位,他们可能是将声卡的复音概念与采样位数概念混合在一起。如今功能最强大的声卡系列,即Sound Bladder Live采用的EMU10K1芯片虽然号称可以达到32位,但是它只是建立在Direct Sound加速基础上的一种多音频流技术,其本质上还是16位的声卡。声卡的位数概念与数据采集卡中位数概念完全一致,但一般的数据采集卡大多只有12位,因此在这个指标上,声卡豪不逊色于常用数据采集卡。4.2.2 采样频率目前,声卡是最高采样频率是44.1KHz,少数达48KHz,对于民用声卡,一般将采样频率设为4挡,分别是44.1KHz、22.05KHz和8KHz。22.05KHz只能FM广播的声音品质;44.1KHz是理论上的CD音质界限,48KHz则更好一些。对20KHz范围内的音频信号,最高采样频率才48KHz,虽然理论上没有问题,但似乎余量不大。使用声卡比较大的局限性在于,它不允许用户在最高采样频率之下随意设定采样频率,而只能分4挡设定。这样虽然可以使制造成本降低,但不便于使用。用户基本上不可能控制整周期采样,只能通过信号处理的方法来弥补非整周期采样带来的问题。4.2.3 缓冲区与一般数据采集卡不同,声卡面临的D/A和A/D任务通过都是连续状态的。为了在一个简易的结构下较好的完成某个任务,声卡缓冲区的设计有其独到之处。为了节省CPU资源,计算机的CPU并不是在每次声卡D/A和A/D结束后都要响应一次中断,而是采用了缓冲区的工作方式。在这种工作方式下,声卡的A/D、D/A都对某一缓冲区进行操作。以输入声音的A/D变换为例,每次转换完毕后,声卡控制芯片都将数据存放在缓冲区中,待缓冲区满时,发出中断给CPU,CPU响应中断后一次性将缓冲区内的数据全部读走。计算机总线的数据传输速率非常高,读取缓冲区数据所用的时间极短,不会影响A/D变换的连续性,缓冲区的工作方式大大降低了CPU响应中断的频度,节省了系统资源。声卡输出声音时的D/A变换也是类似的。一般声卡使用的缓冲区长度的默认值是8KB(8192字节)。这是由于对x86系列处理器来说,在保护模式(Windows等系统使用的CPU工作方式)下,内存以8KB为单位被分成很多页,对内存的任何访问都是按页进行的,CPU保证了在读写8KB长度的内存缓冲区时,速度足够快,并且一般不会被其他外来时间打断。设置8192字节或其整倍数(例如32768)大小的缓冲区,可以较好地保证声卡与CPU的协调工作。4.2.4 没有基准电压声卡不是提供基准电压,因此无论是A/D还是D/A在使用时,都需要用户自己参照基准电压进行标定。4.3 声卡用于数据采集时的一些设置一般声卡主要用于输出声音,输入部分可能没有处于正常工作状态。建议首先使用耳机和MIC检查声卡的功能,特别是输入功能(录音功能)是否正常。如果不正常。需要检查声卡的设置。一般来说,这里的设置有两层含义,首先是要配置所需要的功能,其次就是要保证已经配置的功能不处于关闭状态。下面介绍对Line In和Mic In的检查和设置。按图4-4所示,在“选项”菜单下选“属性”,得到下半部分所示的对话框,在此对话框上选择“录音”,并配置列表中的选项即可。注意图4-4中相关的功能都不在静音状态。 图4-4音量控制窗口和音量控制属性对话框Fig4-4 the volume control and volume control attribute windows35四川理工学院毕业设计(论文)第五章 数据采集和数据采集卡5.1 数据采集系统的构成数据采集是LabVIEW的核心技术之一。要将数据采集到计算机里,并对其进行合理的组织,需要构件一个完整的数据采集(Data AcQuisition,DAQ)系统。它包括:传感器和变换器、信号调理设备、数据采集卡(或装置)、驱动程序、硬件配置管理软件、应用软件和计算机等。使用不同的传感器和变换器可以测量各种不同的物理,并将他们转化为电信号;信号调理设备可对采集到的电信号进行加工,使它们适合数据采集卡等设备的需求;计算机通过数据采集卡等获得测量数据;软件则控制着整个测量系统,它告诉采集设备什么时候从哪个通道采集获得的数据,同时还对原始数据作分析处理,并将最后结果表示成容易理解的方式,例如图表或文件等。下面为DAQ功能:(1)A/D A/D转换器是把输入模拟量转换为输出数字量的器件,也是DAQ的核心。就工作原理而言,A/D转换有3种方法:逐次逼近法A/D、双积分法A/D和并行比较法A/D 。在DAQ产品中应用较多的方法是逐次逼近法A/D 。双积分法A/D 主要应用与高速采样,比如数字示波器、数字采样器等应用场合。衡量A/D 转换器性能好坏主要有两个指示:一是采样分辨率。即是A/D 转换位数;二是A/D 转换速度。这两者都与A/D 转换器的工作原理有关。(2)D/ADAQ系统经常需要为被测对象提供激励信号,也就是输出模拟量信号。D/A转换器就是将数字量转换为模拟量输出的器件。D/A转换器的主要性能参数是分辨率和线性误差分辨率,分辨率取决于D/A转换器的位数,线性误差则刻画了D/A转换器的精度。(3)数字I/O在DAQ应用中经常需要采集外部设备的工作状态,建立与外部设备的通信,此时就需要用到DAQ设备的数字I/O功能。一般的数字I/O板卡均采用I/O板卡均采用TTL电平。需要强调的一点是,对于大功率外部设备的驱动需要设计专门的信号处理装置。(4)定时/计数器在DAQ应用中还经常用到定时/记数功能,比如脉冲周期信号测量、精确时间控制和脉冲信号产生等。定时/记数器的两个主要性能指示是分辨率,分辨率越大,计数器位数越大,计数值也约高。如图5-1为数据采集系统的构成图5-1 数据采集系统结构Fig5-1 the date collects system structure5.2 数据采集卡在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。各种类型信号采集的难易程度差别很大。实际采集时,噪声也可能带来一些麻烦。数据采集时,有一些基本原理要注意,还有更多的实际的问题要解决。5.2.1 数据采集卡的功能简介一个典型的数据采集卡的功能有模拟输入(简称“模入”)、模拟输出(简称“模出”)、数字I/O、计数器/计时器等。模拟输入是采集卡最基本的功能。它一般由多路开关(MUX)、放大器(Amplifier)、采样保持电路(S/H)以及模数转换器(ADC)来实现。一个模拟信号通过上述各部分后可以转化为数字信号。ADC的性能和参数直接影响着采集数据的质量,应根据实际测量所需要的精度来选择合适的ADC。模拟输出通常是为采集数据系统提供激励信号。输入信号受数模转换器(DAC)的建立时间、分辨率等因素影响。建立时间反映了输出信号副值改变的快慢,例如建立时间短的ADC可以提供频率较高的信号。应根据实际需要DAC的参数指标,例如,如果需要用DAC的输入信号驱动一个加热器,则不需要使用速度很快的DAC,因为加热器的温度本来就难以快速地跟踪电压变化。5.2.2 数据采集卡的软件配置 一般来说,数据采集卡都有自己的驱动程序,通过该程序来控制采集卡的硬件操作。当然这个驱动程序是由采集卡的供应商提供的,用户一般无需对驱动程序的编写做过多的了解,只要能使用驱动程序与采集卡硬件打交道即可。NI公司还提供了一个数据采集卡的配置工具软件Measurement与Automation Explorer(MAX),它的功能比较丰富,例如使用它可以实现如下功能:l 浏览系统中的设备和仪器,并快速检测及配置硬件和软件;l 通过测试面板验证和诊断硬件的运作情况;l 创建新的通道、任务、接口和比例等。MAX给每块DAQ卡分配一个逻辑设备号,以提供LabVIEW调用时使用。在数据采集卡配置程序主界面里,左栏里有Data Neighborhood,Devices and Interfaces和Scales等目录。声卡数据采集LabVIEW程序如图5-2:图5-2 基于声卡的数据采集系统的部分G代码Fig5-2 Collect parts of G codes of system according to the data of audio card与之相对应的前面板程序图:图5-3数据采集前面板程序框图Fig5-3 the data collects front panel procedure frame diagram5.3 数据采集系统的测试与分析 声卡的设计是为了满足人耳的听力,所以隔掉了直流,也不接收22kHz以上的频率部分。为了验证试验结果,本文选用上海无线电仪器厂的S101型函数发生器作为标准信号源,江苏扬中电子仪器厂的YB4320A型示波器进行对照测试。计算机配置为AMD2400+/512M内存,板载C2MediaAC97声卡。 图4-4是系统测到的三个波形显示介面,其纵坐标为16位量化精度的电压,它是一个相对值,我们首先需要对它进行定标。以本实验为例,输入中间频率为2kHz、电压为0175V的正弦波,测得相对幅值为22165,易得出定标系数为750/22165=0103384mV/格,用该系数乘以相对值,便得出被测信号的实际幅值,以数字的形式显示出来。然后在保持输入电压不变的情况下,改变输入信号的频率,用YB4320A示波器和采集系统同时测量其频率和电压幅值,结果如表1所示。其最大的频率相对误差为1122%,当输入频率达到20kHz时,频率和幅值仍能正确测量到。当输入频率高于10kHz时,波形已值747185在输人频率5kHz左右。测得的电压幅值为01707747185=528173,其频率大致为24Hz。因此只要输入信号频率集中在30Hz22kHz范围内时,都可以能够正确的采集。为了得到更好的波形,信号的频率最好在100Hz15kHz范围内。从图5-4可以看到这一点,Waveform0是5kHz的正弦波波形,Waveform1是500Hz的方波波形,Waveform2是1kHz的三角波波形。图5-4 波形显示界面Fig5-4 the wave form shows interface 表1 表1 输入信号测量值对照表Table 1 Input signal measured value cross tabulation57四川理工学院毕业设计(论文)第六章 波形显示及其采样6.1 波形输入设备在打开波形输入设备前,首先要利用waveInGet2NumDevs函数获取波形输入设备的数量。若返回值为N,则可知有N个输入设备,其设备ID依次为0N-1。接着调用waveInGetDevCaps函数查询指定输入设备的性能。然后根据设备的性能及实际需要,对声卡的输入通道数、采样频率、采样位数、量化精度、数据格式等参数进行设定。这些设置是通过填写WAVEFORMATEX数据结构来实现的,该结构用于描述波形音频格式,其定义如下:Typedefstructwaveformat - extended - tag WORDwFormatTag;/采样数据格式,目前只能用PCM格式WORDnChannels;/通道数目 ( 1或2)DWORDnSamplesPerSec;/采样速率DWORDnAvgBytesPerSec;/每秒采样得到的字节数WORDnBlockAlign;/记录区块对齐的单位WORDwBitsPerSample;/量化位数WORDcbSize;/可能的长度扩充 WAVEFORMATEX;然后以该结构体的指针为一个参数,调用waveInOpen函数打开波形输入设备。6.2 输入缓冲区的分配和管理 利用声卡进行数据采集时,系统要处理的数据量很大,因此低层音频服务以数据缓冲区为单位进行处理。它要求应用程序自己分配内存,并将内存块的地址、大小等信息通过音频数据头结构WAVEHDR告诉低层音频驱动程序,使其为采集操作做好准备。信号采集时,波形数据源源不断地向输入缓冲区存储当缓冲区存满时,如果不及时对数据进行读取、保存,后面的数据将会把原有数据覆盖掉,造成信号丢失;而保存的同时,如数据继续输入并向该缓冲区存储,信号也会丢失。为了解决这个问题,本系统采用了双缓冲区循环技术。信号采集时,波形数据源源不断地向输入缓冲区存储当缓冲区存满时,如果不及时对数据进行读取、保存,后面的数据将会把原有数据覆盖掉,造成信号丢失;而保存的同时如数据继续输入并向该缓冲区存储,信号也会丢失。为了解决这个问题,本系统采用了双缓冲区循环技术。在开始采集前,用带有GMEM - MOVEABLE和GMEM - SHARE标志的GlobalAlloc函数申请两块较小的( 如16KB) 内存空间,并获取内存对象的句柄。再将这两个句柄传给Global Lock函数以获取内存目标的32位虚拟地址指针。然后为每一块缓冲区填写相应的缓冲区头结构体WAVEHDR。接着调用waveInPrepareHeader函数准备缓冲区,它会对数据缓冲区作Page Lock操作,以保证缓冲区不会被置换到硬盘中,使采集工作更加流畅。最后调用waveInAddBuffer函数把两块缓冲区全部传递给声卡驱动程序。添加好输入缓冲区后,直接调用waveInStart函数就可以开始数据采集。当一块缓冲区录满时,驱动程序就会向应用程序窗口发送MM-WIM-DATA消息,同时自动使用另一块缓冲区来保存新采集的数据。这时,应用程序的消息处理程序就可以从容地显示和保存已录制的数据,将缓冲区清零,然后再把该缓冲区重新传递给驱动程序。如此循环交替,使得声卡驱动程序在任何时候都至少有一个缓冲区可用。实践证明,只要缓冲区的太小设置合理,就可以实现任意长时间不间断的数据采集。6.3波形的显示每当一个输入缓冲区存满数据后,便可调用绘图函数显示信号波形。波形显示时应注意下面几个问题:(1) A/D转化后的数据是PCM格式,即:若用8位量化,则对应着8位无符号数,0对应负满幅值,128对应零电平,255对应正满幅值;若用16位量化,则表示为有符号数的补码形式,-32768对应着负满幅值,0对应着零电平,+32767对应着正满幅值。(2) 若用双通道采集,两个通道的采样点是交错排列在一起存储的,即先存储左声道的一个采样点,然后再存储右声道的一个采样点。这样在进行数据分析前要注意把两个通道的数据分开。(3) 声卡采样数据是无量纲的,显示时需要采用对应的工程单位对信号幅度进行标定。经过实际测试,采样数据除以100后为毫伏单位。6.4数据的存储输入缓冲区中的采样数据最终保存在Wave文件中。Wave文件是一种简单的RIFF ( 资源交互文件格式 ) 块结构文件,其结构如图6-1所示。用这种格式保存的数据可以非常方便地利用Matlab等信号处理软件进行分析。图6-1 波形文件.wav的结构Fig6-1 Wave form document.Wav structure如图6-2为数据存盘框图程序:图6-2 数据存盘框图程序Fig6-2 the data saves dish frame diagram procedure与之相对应的前面版程序图6-3:图6-3 数据存盘前面版程序Fig6-3 the data saves dish front version procedure 数据采集模块根据用户设置的声音格式从声卡获得数据。采集到的数据及其频谱特性以直观的图形方式呈现于用户面前。该模块还提供保存所有或部分数据以及转到信号分析模块的功能。由于PCM波形音频格式输出的信号质量最好,所以本文使用该格式对信号进行数字化处理、存盘和重载。数据采集过程分为三步:初始化配置声卡;采样;释放声卡。图6-2为数据存盘部分框图程序。LabVIEW把声卡的声道分为 mono8bit(单声道8位)、mono16-bit(单声道16位)、stereo8bit(立体声8位)和 stereo16bit(立体声16位)。若用单声道采样,左右声道信号都相同,而且幅值为原信号的 1/2;用立体声采样,左右声道互不干扰,可以采集两路不同的信号,而且幅值与原信号相同。声卡的采样频率分为8000Hz、 11025Hz、22050Hz 和44100 Hz,应根据具体情况采用合适的频率。6.5 波形输入设备的停止与关闭在关闭录音设备前,要先使用waveInGetPosition函数和MMTIME结构来查询设备的录制状态,即查询当前缓冲区中已录制数据的字节数,根据该字节数保存缓冲区中剩余的一段已录制数据。紧接着调用waveInReset函数停止向波形输入缓冲区存储数据,并用waveInClose函数关闭波形输入设备。最后调用waveInUnprepareHeader、Global Unlock和Global Free这三个函数将两个内存缓冲区释放。6.6 采样实验采用RealtekAC 97集成声卡,按照上述方法,对频率为2kHz,最大幅值为10mV的正弦信号和方波信号进行单通道采集,采样频率为44.1kHz,16位量化,得到的采样数据的时域波形如图6-4所示。可见,声卡采集系统采集的数据与实际信号一致,达到了预期的效果。图6-4 正弦和方波信号的采样波形Fig6-4 Sine and square wave the sample wave of the signal form在数据采集之前,程序将对采集板卡初始化,板卡上和内存中的Buffer是数据采集存储的中间环节。需要注意的两个问题是:是否使用Buffer?是否使用外触发启动、停止或同步一个操作。图6-5 模拟信号和采样显示Fig 6-5 Imitate signal and sample manifestation如果对信号x(t)采集N个采样点,那么x(t)就可以用下面这个数列表示:这个数列被称为信号x(t)的数字化显示或者采样显示。注意这个数列中仅仅用下标变量编制索引,而不含有任何关于采样率(或t)的信息。所以如果只知道该信号的采样值,并不能知道它的采样率,缺少了时间尺度,也不可能知道信号x(t)的频率。根据采样定理,最低采样频率必须是信号频率的两倍。反过来说,如果给定了采样频率,那么能够正确显示信号而不发生畸变的最大频率叫做恩奎斯特频率,它是采样频率的一半。如果信号中包含频率高于奈奎斯特频率的成分,信号将在直流和恩奎斯特频率之间畸变。图6-6显示了一个信号分别用合适的采样率和过低的采样率进行采样的结果。采样率过低的结果是还原的信号的频率看上去与原始信号不同。这种信号畸变叫做混叠(alias)。出现的混频偏差(alias frequency)是输入信号的频率和最靠近的采样率整数倍的差的绝对值。b过底采样率下的采样结果a足够的采样率下的采样结果图6-6 两种采样率下的采样结果Fig 6-6 two kinds of sample rates under of sample result第七章 信号分析与处理7.1 概述数字信号在我们周围无所不在。因为数字信号具有高保真、低噪声和便于信号处理的优点,所以得到了广泛的应用,例如电话公司使用数字信号传输语音,广播、电视和高保真音响系统也都在逐渐数字化。太空中的卫星将测得数据以数字信号的形式发送到地面接收站。对遥远星球和外部空间拍摄的照片也是采用数字方法处理,去除干扰,获得有用的信息。经济数据、人口普查结果、股票市场价格都可以采用数字信号的形式获得。因为数字信号处理具有这么多优点,在用计算机对模拟信号进行处理之前也常把它们先转换成数字信号。本章将介绍数字信号处理的基本知识,并介绍由上百个数字信号处理和分析的VI构成的LabVIEW分析软件库。 目前,对于实时分析系统,高速浮点运算和数字信号处理已经变得越来越重要。这些系统被广泛应用到生物医学数据处理、语音识别、数字音频和图像处理等各种领域。数据分析的重要性在于,无法从刚刚采集的数据立刻得到有用的信息,如下图所示。必须消除噪音干扰、纠正设备故障而破坏的数据,或者补偿环境影响,如温度和湿度等。图7-1未分析和处理前采集到的数据曲线图Fig7-1 the data curve diagram collected before doing not analyze with processing通过分析和处理数字信号,可以从噪声中分离出有用的信息,并用比原始数据更全面的表格显示这些信息。下图显示的是经过处理的数据曲线。图7-2 分析和处理后采集到的数据曲线图Fig7-2 the data curve diagram collected after analyzing with processing用于测量的虚拟仪器(VI)用于测量的虚拟仪器(VI)执行的典型的测量任务有:l 计算信号中存在的总的谐波失真。l 决定系统的脉冲响应或传递函数。l 估计系统的动态响应参数,例如上升时间、超调量等等。l 计算信号的幅频特性和相频特性。l 估计信号中含有的交流成分和直流成分。在过去,这些计算工作需要通过特定的实验工作台来进行,而用于测量的虚拟仪器可以使这些测量工作通过LabVIEW程序语言在台式机上进行。这些用于测量的虚拟仪器是建立在数据采集和数字信号处理的基础之上,有如下的特性:l 输入的时域信号被假定为实数值。l 输出数据中包含大小、相位,并且用合适的单位进行了刻度,可用来直接进行图形的绘制。l 计算出来的频谱是单边的(single sided),范围从直流分量到Nyquist频率(二分之一取样频率)。(即没有负频率出现)l 需要时可以使用窗函数,窗是经过刻度地,因此每个窗提供相同的频谱幅度峰值,可以精确地限制信号的幅值。一般情况下,可以将数据采集VI的输出直接连接到测量VI的输入端。测量VI的输出又可以连接到绘图VI以得到可视的显示。有些测量VI用来进行时域到频域的转换,例如计算幅频特性和相频特性、功率谱、网路的传递函数等等。另一些测量VI可以刻度时域窗和对功率和频率进行估算。LabVIEW的流程图编程方法和分析VI库的扩展工具箱使得分析软件的开发变得更加简单。LabVIEW 分析VI通过一些可以互相连接的VI,提供了最先进的数据分析技术。你不必像在普通编程语言中那样关心分析步骤的具体细节,而可以集中注意力解决信号处理与分析方面的问题。LabVIEW 6i版本中,有两个子模板涉及信号处理和数学,分别是Analyze子模板和Mathematics子模板。这里主要涉及前者。进入Functions模板AnalyzeSignal Processing子模板。其中共有6个分析VI库。其中包括:Signal Generation(信号发生):用于产生数字特性曲线和波形。Time Domain(时域分析):用于进行频域转换、频域分析等。Frequency Domain(频域分析):Measurement(测量函数):用于执行各种测量功能,例如单边FFT、频谱、比例加窗以及泄漏频谱、能量的估算。Digital Filters(数字滤波器):用于执行IIR、FIR 和非线性滤波功能。Windowing(窗函数):用于对数据加窗。在后面几节中,你将学习如何使用分析库中的VI创建函数发生器和简单实用的频谱分析仪,如何使用数字滤波器,窗函数的作用以及不同类型窗函数的优点,怎样执行简单的曲线拟合功能,以及其他一些内容。可在LabVIEWexamplesanalysis 目录中找到一些演示程序。7.2信号的产生本节将介绍怎样产生标准频率的信号,以及怎样创建模拟函数发生器。还将学习怎样使用分析库中的信号发生VI产生各种类型的信号。信号产生的应用主要有:l 当无法获得实际信号时,(例如没有DAQ板卡来获得实际信号或者受限制无法访问实际信号),信号发生功能可以产生模拟信号测试程序。l 产生用于D/A转换的信号在LabVIEW 6i中提供了波形函数,为制作函数发生器提供了方便。以WaveformWaveform Generation中的基本函数发生器(Basic Function Generator.VI)为例,其图标如下:其功能是建立一个输出波形,该波形类型有:正弦波、三角波、锯齿波和方波。这个VI会记住产生的前一波形的时间标志并且由此点开始使时间标志连续增长。它的输入参数有波形类型、样本数、起始相位、波形频率(单位:Hz)参数说明:Offset:波形的直流偏移量,缺省值为0.0。数据类型DBL。Reset 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制作的函数发生器如下,由框图可以看出,其中没有附加任何其他部件。图7-3 正弦波函数发生器的参数Fig 7-3 the sine wave function tacks place the parameter of machine7.3 标准频率在模拟状态下,信号频率用Hz或者每秒周期数为单位。但是在数字系统中,通常使用数字频率,它是模拟频率和采样频率的比值,表达式如下:数字频率模拟频率/采样频率这种数字频率被称为标准频率,单位是周期数/采样点。有些信号发生VI使用输入频率控制量f,它的单位和标准频率的单位相同:周期数/每个采样点,范围从0到1,对应实际频率中的0到采样频率fs的全部频率。它还以1.0为周期,从而令标准频率中的1.1与0.1相等。例如某个信号的采样频率是奈奎斯特频率(fs/2),就表示每半个周期采样一次(也就是每个周期采样两次)。与之对应的标准频率是1/2 周期数/采样点,也就是0.5 周期数/采样点。标准频率的倒数1/f表示一个周期内采样的次数。如果你所使用的VI需要以标准频率作为输入,就必须把频率单位转换为标准单位:周期数/采样点。7.4 数字信号处理7.4.1 FFT变换信号的时域显示(采样点的幅值)可以通过离散傅立叶变换(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 。但是能量频谱不能提供任何相位信息。1.FFT和能量频谱可以用于测量静止或者动态信号的频率信息。FFT提供了信号在整个采样期间的平均频率信息。因此,FFT主要用于固定信号的分析(即信号在采样期间的频率变化不大)或者只需要求取每个频率分量的平均能量。图7-4 时域信号频谱Fig7-4 Hour area signal frequency chart2流程图中的Array Size 函数用来根据样本数转换FFT的输出,得到频率分量的正确幅值。3把该VI保存为LabVIEWActivity目录中的FFT_2sided.vi。4选择频率(Hz)=10,采样率= 100,样本数= 100。执行该VI。注意这时的时域图和频谱图。因为采样率=样本数=100 ,所以时域图中的正弦波的周期数与选择的频率相等,即可以显示10个周期。(如果把频率改成5,那么就会显示5个周期)。7.4.2 单边、双边FFT单边 FFT1. 按照下图修改流程图。上面已经知道因为FFT含有正负频率的信息,所以可以FFT具有重复信息。现在这样修改之后只显示一半的FFT采样点(正频率部分)。这样的方法叫做单边FFT。单边FFT只显示正频部分。注意要把正频分量的幅值乘以2才能得到正确的幅值。但是,直流分量保持不变。(若程序中考虑含直流分量的情况,应当增加一个分支或case结构。图7-5 FFT流程图Fig 7-5 FFT flow chart2设置频率(Hz) = 30,采样率= 100,样本数= 100, 运行该VI。3保存该VI为LabVIEWActivity目录下的FFT_1sided.vi。4把频率改为70Hz,执行该VI,观察这时产生的图形与第9步产生的图形的区别。双边 FFT1检查频谱图可以看到有两个波峰,一个位于10Hz,另一个位于90Hz,90Hz处的波峰实际上是10Hz处的波峰的负值。因为图形同时显示了正负频率,所以被称为双边FFT。2先后令频率=10、20(Hz),执行该VI。注意每种情况下频谱图中波峰位置的移动。观察频率等于10和20时的时域波形。注意哪种情况下的波形显示更好,并解释原因。3因为fs = 100 Hz,所有只能采样频率低于50Hz的信号(奈奎斯特频率fs/2)。把频率修改为48Hz,可以看到频谱图的波峰位于 48 Hz。4把频率改为52HZ,观察这时产生的图形与第5步产生的图形的区别。因为52大于奈奎斯特频率,所以混频偏差等于|100 52| = 48 Hz。5把频率改成30和70Hz,执行该VI。观察这两种情况下图形是否相同,并解释原因。7-5 谐波失真与频谱分析当一个含有单一频率(比如f1)的信号x(t)通过一个非线性系统时,系统的输出不仅包含输入信号的频率(f1),而且包含谐波分量(f2=2f1,f3=3f1,f4=4f1等等),谐波的数量以及它们对应的幅值大小取决于系统的非线性程度。电网中的谐波是一个值得关注的问题。下面的一个非线性系统的例子是输出y(t)是输入x(t)的立方。假如输入信号:则输出:因此,输出不仅含有基波频率w,而且还有三次谐波的频率3w。谐波失真的总量为了决定一个系统引入非线性失真的大小,需要得到系统引入的谐波分量的幅值和基波的幅值的关系。谐波失真是谐波分量的幅值和基波幅值的相对量。假如基波的幅值是A1,而二次谐波的幅值是A2,三次谐波的幅值是A3,四次谐波的幅值是A4。N次谐波的幅值是AN,总的谐波失真(THD)为:用百分数表示的谐波失真(%THD)为:LabVIEW 7.1提供的谐波分析器与以前的版本有一些变化,下面先介绍它:该VI对输入信号进行完整的谐波分析,包括测定基波和谐波,返回基波频率和所有的谐波幅度电平,以及总的谐波失真度(THD)。其部分参数含义如下:Stop search at Nyquist:如果设置为TRUE (缺省值T),则只包含低于Nyquist 频率(采样频率的一半)的谐波。如果设置为FALSE, 该VI 将继续搜索Nyquist范围之外的频率。Signal in :输入信号。Export signals :选择输出到信号指示器的信号。有如下几种选择: None对快速计算;Input signal定时将输入信号反映到输出端;Fundamental signal在输出端反映基波;Residual signal在输出端反映除基波之外的剩余信号;Harmonics only在输出端反映谐波时域信号及其频谱。Highest harmonic :控制最高谐波成分,包括用于谐波分析的基波。例如,对于3次谐波分析,该控制将设置测量基波、2次谐波和3次谐波。.Error in :在该VI运行之前描述错误环境。缺省值为 no error. 如果一个错误发生,该VI在error out端返回错误代码。该VI仅在无错误时正常运行。 错误簇包含如下参数。Status :缺省值为FALSE,发生错误时变为TRUE。Code :错误代码,缺省值为0。Source :在大多数情况下是产生错误的VI或函数的名称,缺省值为一个空串。Advanced search :控制频域搜索区域,中心频率及频带宽度。该功能用来确定信号的基波。Approx.fund.freq. (optional) 用来搜索基波的中心频率的估算值。如果设置缺省值为-1.0,,则选择幅值最大的频率成分为基波。Search (+/- % of Fsampl.) 用来搜索基波频率频带宽度,是采样率的百分比。Exported signals :包含输出的时域信号及其频谱供选择。Detected fundamental frequency :探测在频域搜索得到的基波。用advanced search 设置频率搜索范围。所有谐波测量为基波的整数倍。THD :总谐波失真度。它定义为谐波RMS之和与基波幅值之比。为了折算为百分数,需要乘以100。Components level :测量谐波幅值的电平(单位 伏),是一个数组。该数组索引包括0 (DC), 1 (基波), 2 (2次谐波),. n (n次
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。