数据采集及分析系统

关键词:声卡 数据采集 MATLAB 信号处理

论文摘要:利用数据采集卡构建的数据采集系统一般价格昂贵且难以与实际需求完全匹配。声卡作为数据采集卡具有价格低廉、开发容易和系统灵活等优点。本文详细介绍了系统的开发背景, 软件结构和特点, 系统地分析了数据采集硬件和软件设计技术, 在此基础上以声卡为数据采集卡, 以MATLAB 为开发平台设计了数据采集与分析系统。

本文介绍了MATLAB 及其数据采集工具箱, 利用声卡的A/ D、D/ A 技术和MATLAB 的方便编程及可视化功能, 提出了一种基于声卡的数据采集与分析方案, 该方案具有实现简单、性价比和灵活度高的优点。用MATLAB 语言编制了相应软件, 实现了该系统。该软件有着简洁的人机交互工作界面, 操作方便, 并且可以根据用户的需求进行功能扩充。最后给出了应用该系统采集数据的应用实例。

1绪论

1.1 课题背景

数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。数据采集,又称数据获取,就是将系统需要管理的所有对象的原始数据收集、归类、整理、录入到系统当中去。数据采集是机管理系统使用前的一个数据初始化过程。数据采集技术广泛引用在各个领域。比如摄像头,麦克风,都是数据采集工具。

数据采集(Data Acquisition)是将被测对象(外部世界、现场) 的各种参量(可以是物理量,也可以是化学量、生物量等) 通过各种传感元件作适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或存储记录的过程。

被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据测量是数据采集的基础。数据测量方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,都以不影响被测对象状态和测量环境为前提,以保证数据的正确性。数据采集含义很广,包括对连续物理量的采集。在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量数据。

在智能仪器、信号处理以及自动控制等领域,都存在着数据的测量与控制问题,常常需要对外部的温度、压力、流量、位移等模拟量进行采集。数据采集技术是一种流行且实用的技术。它广泛应用于信号检测、信号处理、仪器仪表等领域。近年来,随着数字化技术的不断,数据采集技术也呈现出速度更高、通道更多、数据量更大的发展态势。

数据采集系统是一种应用极为广泛的模拟量测量设备,其基本任务是把信号送入计算机或相应的信号处理系统,根据不同的需要进行相应的计算和处理。它将模拟量采集、转换成数字量后,再经过计算机处理得出所需的数据。同时,还可以用计算机将得到的数据进行储存、显示和打印,以实现对某些物理量的监视,其中一部分数据还将被用作生产过程中的反馈控制量。

数据采集系统是计算机测控系统中非常重要的环节,目前,有各种数据采集卡或采集系统可供选择,以满足生产和科研试验等各方面的不同需要,但由于数据源以及用户需求的多样性,有时并不能满足要求。特别是在某些应用中,需要同时高速采集多个通道的数据,而且为了分析比较各通道信号间的相互关系,常常要求所有通道的采集必须同步。现有的数据采集系统能够满足上述要求的比较少,且价格十分昂贵,体积较大,分量较重,使用十分不方便。

一般模拟量是通过各种数据采集卡进行数据采集。目前常用的是具有 ISA 总线、PCI 总线等接口形式的 A/D 采集卡,虽然数据传输率很高,但是还存在整个系统笨重,缺乏灵活性,不能实现即插即用,不适合小型、便携设备采用等缺点。另外这些类型的采集卡在计算机上安装比较麻烦,而且由于受计算机插槽数量、地址、中断资源的限制不可能挂接很多设备。因此,工程师们往往需要花费大量的时间和资源用于系统搭建。

随着工业技术的迅猛发展,生产规模的不断壮大,生产过程和制作工艺的日趋复杂,对自动测试和各种信息集成的要求也就越来越高。数据采集系统的好坏将直接影响自动测试系统的可靠性和稳定性,为了

满足不同的测试需求,以及减少对资源的浪费,在系统的设计上应该尽量满足通用性和可扩展性。在高度发展的当今社会中,技术的突飞猛进和生产过程的高度自动化已成为人所共知的必然趋势,而它们的共同要求是必须建立在有着不断发展与提高的信息工业基础上。人们只有从外界获取大量准确、可靠的信息经过一系列的科学分析、处理、加工与判断,进而认识和掌握界与科学技术中的各种现象与其相关的变化,并通过相应的系统和方法实现科学实验研究与生产过程的高度自动化。换言之,生产过程的自动化面临的第一个问题就是必须根据从各种传感器得到的数据来检测、监视现场,以保证现场设备的正常工作。所以对现场进行数据采集是重要的前期基础工作,然后再对现场数据进行传输和相应的处理工作,以满足不同的需要。

数据采集卡是中低端数据采集系统设计的必选产品。基于 ISA、PCI 的插卡式数据采集设备存在以下缺陷:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。而现代工业生产和科学研究的发展要求数据采集卡具有更好的数据采集、处理能力,传统的 CPU 已经不能满足这一要求。针对以上要求,本文将论述一种基于PC 机的声卡技术,它安装容易,成本较低。只需利用计算机本身的软硬件资源,而不需添加其他任何设备即可构成数据采集与分析系统,使用MATIAB 语言编制简洁的图形用户界面,该界面操作方便,并且可以根据用户的需求进行功能扩充。

数据分析在整个科研工作中是个重要的必不可少的环节,它的目的是把隐没在一大批看来杂乱无章的数据中的信息集中、萃取和提炼出来,以找出所研究对象的内在规律。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。数据分析是组织有目的地收集数据、分析数据,使之成为信息的过程。这一过程是质量管理体系的支持过程。在产品的整个寿命周期,包括从市场调研到售后服务和最终处置的各个过程都需要适当运用数据分析过程,以提升有效性。例如,一个的领导人要通过市场调查,分析所得数据以判定市场动向,从而制定合适的生产及销售计划。因此数据分析有极其广泛的应用范围。数据分析系统工作的质量和速度如何,对整个科研工作的影响也是很大的。因此研究一种质量性能高的通用数据采集平台具有很大的意义。

在近几十年来 IC 技术和计算机技术的高速发展,为数据采集与分析提供了非常良好与可靠的科学技术基础,也提出了更高的要求和强有力的推动。如今面临着先进的计算机技术和信息技术与落后的信息采集与分析技术的现实差距,那将大大影响科学技术的高度发展和生产过程的高度自动化。所以,近几十年来世界各国都大量投入进行信息采集与分析的工作,尤其是在发达的美、英、德、法日等国与我国,都对这一技术高度重视。

1.2 国内外研究动态

数据采集是获取信息的基本手段,数据采集技术作为信息科学的一个重要分支,与传感器、信号测量与处理、微型计算机等技术为基础而形成的一门综合应用技术,它研究信息数据的采集、存储、处理及控制等作业,具有很强的实用性。随着科学技术的发展,数据采集系统得到了越来越广泛得应用,同时人们对数据采集系统的各项技术指标,如:采样率、线性度、精度、输入范围、控制方法以及抗干扰能力等提出了越来越高的要求,特别是精度和采样率更是使用者和设计者所共同关注的重要问题,于是,高速及超高速数据采集系统应运而生并且得到了快速发展。今天,数据采集技术己经在雷达、通信、水声、振动工程、无损监测、智能仪器、工业自动控制以及生物医学工程等众多领域得到广泛的应用并且收到了良好的效果。高速数据采集系统在国防、航天、边缘科学研究中及国民经济的各个领域的成功的应用,进一步引起了各方的关注,推动了它的研制和发展。随着科学技术的发展,数据采集系统得到了越来越广泛的应用。目前,国外很多公司与厂商都投入巨资进行数据采集系统的研制开发与生产销售,其中比较著名的有 NEFF, NI、HP ,TEK 等。

从数据采集系统产品来看,各大公司提供的系列产品都包括了完成数据采集的诸如信号放大、滤波、多路开关、模数转换和接口等各种模块。现有的高速数据采集器件和开发的产品中,目前还没有完全实现高速、高分辨率。在雷达、通信、谱分析、瞬态分析、电视等应用领域,为满足实时检测和高速采集的日益更新的需要,实现数据采集的高速、高分辨率已成为数据采集系统的一个发展方向。现有的高速 ADC 器

件和产品价格都比较昂贵,有些高速、高分辨率的器件本身还存在着不稳定性,因此,在数据采集系统向高速、高分辨率发展的同时,开发和研制的器件和产品应不断地提高可靠性,降低成本,提高性价比,以便使之得到更广泛的应用。在国内,由于、技术等原因,我们的产品普遍存在:通用性差、用途单一、测点少、测量距离小、环境适应性差等缺点,远没有形成系列化、模块化、标准化的通用产品,根本无法满足国内用户不断增长的需要,也远远不能与国外产品抗衡,正因此使得价格高昂的国外产品占有了相当大的市场份额。

1.3 数据采集系统的现状及发展

数据采集与分析一直是生产实践研究与应用领域的一个热点和难点。随着微电子制造工艺水平的飞速提高及数据分析理论的进一步完善与成熟,目前国内外对数据采集系统的高性能方面的研究上取得了很大的成就。就 A/D 转换的精度、速度和通道数来说,采样通道从单通道发展到双通道、多通道,采样频率、分辨率、精度逐步提高,为分析功能的加强提供了前提条件。而在数据分析的微处理器上,最初的数据采集系统以 8 位单片机为核心,随着微电子技术的不断发展,新兴单片机的不断问世,十六位、三十二位单片机也为数据采集系统研制厂家所采用,近年来采用具有 DSP 功能的数据采集系统也己投入市场。同时,通用 PC 机的 CPU 用于数据处理也较为常见。总之,伴随着高性能微处理器的采用和用户技术要求的不断提高,数据采集系统的功能也越来越完善。数据采集系统的发展主要体现在以下几个趋势:

首先,在专业测控方面,基于 PC 计算机的数据采集系统越来越成熟和智能化。在过去的二十年中,开放式架构 PC 机的处理能力平均每十八个月就增强一倍。为了充分利用处理器速度的发展,现代开放式测量平台结合了高速总线接口,如 PCI和 PXI/Compact PCI,以便获得性能的进一步提升。计算机的性能提升和由此引起的基于计算机的测量技术的创新,正在持续不断地模糊着传统仪器和基于计算机的测量仪器之间的界线。

其次,在通用测控方面,采用嵌入式微处理器的方案也由早期的采用 A/D 器件和标准单片机组成应用系统发展到在单芯片上实现完整的数据采集与分析,即目前极为热门的 SOC (System On Chip)。通常在一块芯片上会集成一个,可以采样多路模拟信号的 A/D 转换子系统和一个硬 CPU 核(比如增强

型 80_52 内核) ,而且其CPU 的运算处理速度和性能也较早期的标准 CPU 内核提高了数倍,而且有着极低的功耗。这种单芯片解决方案降低了系统的成本和设计的复杂性。

此外,为了解决 SOC 方案中数据处理性能的不足,采用 DSP 作为数据采集系统的 CPU 的研究与应用目前也逐渐引起业内重视。但是这类产品目前仅仅处于发展的初级阶段,在精度、速度或其它性能指标上并不能很好的满足要求。因此,国内外以 DSP 作为数据采集系统的采样控制和分析运算的研究与应用正在展开。

近年来随着芯片技术、计算机技术和技术的发展,数据采集技术取得了许多新的技术成果,市场上推出了繁多的新产品。高速数据采集技术的发展一方面是提高采集速率,另一方面不断向两端延伸。一端是输入的信号调理,另一端是采集后的数字化信号的实时处理与事后处理。20世纪90年代末,随着数字技术快速发展,数据采集技术已向着并行、高速、大量存储、实时分析处理、集成化等方向发展。

(1)采样方式

①过采样(Over Sampling)。采样方式中最早是过采样,根据采样定理,采样频率fs 必须高于被采信号最高频率fch 的两倍,才不致产生频率混叠现象。例如信号最高频率为10kHz ,采样频率必须高于20kHz 。

②欠采样(Under Sampling)。在通信和动态数据的采集中,发展了一种欠采样技术,即采样频率fs 可以低于信号频率fch ,但信号的频带宽度不得大于0.5fs ,利用采样信号产生的高次谐波,将采样后的信号移至第二或者更高的奈奎斯特区。例如采样频率fs 为10kHz ,可对频带fch 落于11~14kHz 的信号(频带宽度为3kHz ,低于0.5fs=5kHz)进行欠采样。于是在采样频率2次谐波两边产生的采样后的信号频带为f2ch = 2fs±fch = 20 kHz±(11~14 kHz)= 31~34 kHz,或9~6 kHz

③等效时间采样(Equivalent Time Sampling )。主要是对于重复的周期波形进行等效时间采样。例如美国泰克公司的TDS784D 数字存储示波器,其实际的采样频率为 1 GS/s ( 1GHz ),对于重复的

周期信号,采取周期微差法,可以达到250GS/s(250GHz)的等效时间采样。例如对于 1 GHz 的方波,进行周期微差法采样,每个周期的采样只有微小的时差,将若干个周期中的样点集中排列,即可测出方波上升沿和下降沿的波形。对于单次瞬态信号,这种方法是无效的。

④变速率变分辨率采样。

(2)采集方式的发展

①扫描式采集(Scanning Acquisition):时分制、多通道巡回采集。

②并行式采集(Parallel Acquisition):多个通道同步并行采集,每个通道采用一个独立的A/D转换器,通道采集速率只取决于A/D的转换速率,与通道数无关。

③交替采集(Internative Acquisition):一个通道由多个A/D转换器交替采集,使每个通道采样速率等于多个A/D的转换速率之和,可以高于单个A/D的转换速率。

(3)采集数据的实时分析与处理软件

目前国外的测试仪器或系统生产厂家,在生产硬件的同时,推出其相应的支持软件或软件开发平台,如为产品开发者提供的软件工具;为系统集成者提供系统应用软件的集成的环境;为终端用户提供编写自己的用户应用程序的手段。

1.4 本文主要内容和章节安排

本文完成了一种基于MATLAB 的数据采集系统的方案的设计,实现了在MATLAB 环境下利用声卡和MATLAB 数据采集工具箱进行的数据采集与分析。

全文的结构安排如下:

第一章 绪论,说明了研究背景、意义、国内外现状,以及系统的发展现状。

第二章 主要介绍了系统结构特点及性能

第三章 主要介绍了声卡、MATLAB 软件及其工具箱的使用

第四章 主要讨论了系统结构功能设计与实现,以及数据采集与分析的具体过程

第五章 主要对数据采集进行了举例

2数据采集系统结构特点

2.1 系统组成结构

数据采集系统主要由两部分组成:采集子系统和计算机子系统,即下位机智能数据采集系统和上位机 HMI(Human Machine Interface)系统。采集子系统实现将客观世界被测对象信号采集和转换为能被计算机处理的数字信号的功能等;计算机子系统实现对采集数据的控制、存储和处理等功能,计算机起着对采集数据的存储和处理、统计分析、提供人机接口与其他计算机的数据通信和交换的功能。

数据采集系统涉及多学科,所研究的对象是物理或生物等各种非电或电信号。根据各种非电或电信号的特征,利用相应的归一化技术,将其转换为可真实反映事物特征的电信号后,经A /D 转换器转换为计算机可识别的有限长二进制数字编码,以此作为研究自然科学和实现工业实时控制的重要依据,实现对宏观和微观自然科学的量化认识,典型的数据采集系统组成如图2-1所示。

图2-1 典型数据采集系统的组成

而一般的外置式数据采集系统结构如图2-2所示。模拟信号由传感器采得经过信号调理模块送入数据采集硬件设备。在数据采集设备中完成A /D 转换,包括采样、量化、编码,转化成数字信号后送入与之相连的PC 机中。根据不同的要求,在PC 机上利用MATLAB 以及二次编程实现数据的实时分析与处理。

用户可以通过人机交互界面修改、设定各项参数来控制数据采集硬件设备的工作状态,同时可以得到数据的采集与分析结果, 从而实现数据采集与分析的自动化。

图2-2 一般的外置式数据采集系统结构

利用声卡在WINDOWS 环境下开发数据采集系统时,由于受编程语言的限制,其数据分析与处理的功能非常有限。例如,为了对所采集的数据进行功率谱分析,则需要用户以VB 或C 语言来编写功率谱分析的子程序,这显然增加了开发的难度,并且也极不利于分析功能的进一步扩展。

而利用声卡作为A /D 转换工具,经过衰减和取样电路得到的模拟信号送至声卡的线路输入端

LINEIN ,并利用MATLAB 中提供的数据采集工具箱,可满足控制声卡进行数据采集的要求。用户通过调用MATLAB 命令, 可对采集的数据进行分析和处理。

整个系统可分为数据采集和数据分析两大部分,以友好的图形界面与用户进行交互沟通。数据采集部分实现数据采集功能,根据用户选择的采样频率和预设的采样时间,从声卡获得用户需要的数据;数据分析部分对采集到的数据进行频谱分析。全部数据的时域和频域波形以图形方式直观地呈现于用户面前。此外,还提供保存数据以及回放数据的功能。

图2-3给出了基于MATLAB 的数据采集系统的简图,主要部件数据采集工具箱提供了硬件驱动程序和MATLAB 环境之间“对话”所需的硬件驱动程序适配器、数据采集引擎和M-文件函数.

图2-3 基于MATLAB 的数据采集系统简图

硬件驱动程序适配器在硬件驱动程序和数据采集引擎之间交换属性数值、数据和事件;数据采集引擎

用来存储各个设备对象,以及每个设备对象的属性值;对采集到的数据进行存储并且使不同事件同步;M-文件用来创建设备对象、采集或输出数据、配置属性值和检测数据采集状态和数据采集设备。

2.2 系统的特点和性能指标

数据采集系统到今天,一般来说具有如下主要特点:

(1)现代采集系统一般都由机控制,使得数据采集的质量和效率等大为提高,也节省了硬件投资。

(2)软件在数据采集系统中的作用越来越大,增加了系统设计的灵活性。

(3)数据采集与数据处理相互结合的日益紧密,形成数据采集与处理系统,可实现从数据采集、处理到控制的全部工作。

(4)数据采集过程一般都具有“实时”特性,实时的标准是能满足实际需要;对于通用采集系统一般希望有尽可能高的速度,以满足更多的应用环境。

(5)随着技术的发展,电路集成度的提高,数据采集系统的体积越来越小,可靠性越来越高,甚至出现了单片数据采集系统。

(6)总线在数据采集系统中有着广泛的应用,总线技术它对数据采集系统结构的发展起着重要作用。 评价一个数据采集系统的性能有很多指标,但是一般采用以下几个比较常用的指标进行评价。

(1)系统分辨率

系统分辨率是指数据采集系统可以分辨的输入信号的最小变化量。通常可以用如下几种方法表示系统分辨率:

使用系统所采用的 A/D 转换器的位数表示系统分辨率;

使用最低有效位值(LSB )占系统满度值的百分比表示系统分辨率;

使用系统可分辨的实际电压数值表示系统分辨率;

使用满度值可以分的级数表示系统分辨率。

(2)系统精度

系统精度是指当系统工作在额定采集速率下,整个数据采集系统所能达到的转换精度。A/D 转换器的精度是系统精度的极限值。实际上,系统精度往往达不到A/D 转换器的精度。因为系统精度取决于系统的各个环节(子系统)的精度,如前置放大器、滤波器、模拟多路开关等。只有当这些子系统的精度都明显优于 A/D 转换器的精度时,系统精度才有可能达到 A/D 转换器的精度。系统精度是系统的实际输出值与理论输出值之差,它是系统各种误差的总和,通常表示为满度值的百分数。

(3)采集速率

采集速率又称为系统通过速率或吞吐率,是指在满足系统精度指标的前提下,系统对输入的模拟信号在单位时间内所能完成的采集次数,或者说是系统每个通道、每秒钟可采集的有效数据的数量。这里说的“采集”包括对被测物理量进行采样、量化、编码、传输和存储的全部过程。

(4)动态范围

动态范围是指某个确定的物理量的变化范围。信号的动态范围是指信号的最大幅度和最小幅度之比的分贝数。

2.3 系统常见的几种结构形式

(1)多通道共享采样/保持器和 A/D 转换器数据采集系统

这种系统构成如下图所示,这种结构形式采用分时转换工作的方式,多路被测信号共用一个采样/保持器和一个 A/D 转换器。当采样保持器的输出已充分逼近输入信号(按给定精度)时,在控制命令的作用下,采样保持器由采样状态进入保持状态,A/D 转换器开始进行转换,转换完毕后输出数字信号。在转换期间,多路开关将下一路信号切换到采样/保持器的输入端,系统不断重复以上的操作,可以实现对多通道模拟信号的数据采集。采样方式可以按顺序或随机进行。

多通道共享采样保持器和 AD 转换器数据采集系统图

这种采集系统结构形式最简单,所用芯片数量少,适用于信号变化率不高、对采样信号不要求同步的场合。如果被测信号变化速率较慢,可以不用采样保持器,直接进行 A/D 转换。如果信号很弱而干扰噪声强,需要在系统电路中增加信号放大电路和滤波环节。

(2)多通道同步数据采集系统

多通道同步型数据采集系统图

其结构如上图所示,也属于分时转换系统。

多路模拟输入信号共用一个 A/D 转换器,但是每个通道各有一个采样/保持器,在同一采样指令控制下对各路信号同步进行信号采样,得到各路信号在同一时刻的瞬时值。模拟开关分时将各路采样/保持器切换到 A/D 转换器上,进行模数转换。这些同步数据可以描述各路信号的相位关系,所以这种结构被称为同步型数据采集系统。

由于各路信号必须串行的在共用的 A/D 转换器中进行转换和计算,若采样信号回路过多时,这种采集结构的速度仍然较慢。

(3)多通道并行数据采集系统

多通道并行数据采集系统框图如上图所示。这种结构形式中,每个通道都有自己的采样保持器和A/D转换器,经过A/D转换的数据经过接口电路送到计算机中。相对于前两种数据采集系统,这种结构形式的数据采集速度最快,但所用的硬件电路复杂,成本较高。

通用型模拟量数据采集模块则属于这一类的数据采集子系统。数据采集模块是属于单片机的智能器件,在整个数据采集系统中,每个模块可以认为是实时、并行地工作,每个模块仅完成几路信号的检测和采集,实时响应性能优。

(4)分布式数据采集系统

以上介绍的三种结构形式中,系统各部件之间的空间距离很近,逻辑上耦合程度紧密,都可以称之为数据采集系统。这种系统的优点是:结构简单,容易实现,能满足中小规模的集中数据采集的要求。在市面上均有成熟产品可供选用。系统的体积和设备量小,造价低。

由于工作原理、结构形式和性能设计等原因,这类系统也存在不少缺点:

因为系统结构不灵活,不易扩展,所以不适合大规模的数据采集应用场合。抗干扰能力差,尤其对于被测对象物理位置分散、传感器输出的微弱信号需要长距离传输时,所受的干扰不容忽视的。可靠性差。系统结构中某一部件出现故障会导致整个系统工作崩溃。由于各部件之间紧密耦合,导致系统的可扩展性和灵活性差。分布式数据采集系统是数据采集技术、计算机技术和通信技术综合和发展的产物,基于“分散采集、集中管理”的思想设计的系统结构形式,由若干个“数据采集点”和上位机以及通信接口组成。分布式数据采集系统结构如下图所示:

分布式数据采集系统图

处于分散部位的数据采集点相当于小型的集中数据采集系统,位于被测对象的附近,可独立完成数据采集和预处理任务,并将采集的数据转换为数字信号的形式传送给上位机,采用数据传输的方法可以克服模拟信号传输的固有缺陷。分布式数据采集系统的主要特点是:

(1)系统适应能力强。因为可以通过选用适当数量的数据采集点来构成相应规模的系统, 所以无论是大规模的系统,还是中小规模的系统,分布式结构都能够适应。

(2)系统可靠性高。由于采用了多个数据采集点,若某个数据采集点出现故障,只会影响某项数据的采集,而不会对系统的其他部分造成任何影响。

(3)系统实时相应性好。由于系统各个数据采集点之间是真正“并行”工作的,所以系统的实时相应性较好。

(4)另外,这种数据采集系统是用数字信号传输代替模拟信号传输,有利于克服常模干扰和共模干扰。因此,这种系统特别适合于在恶劣的环境下工作。目前对于大规模的数据采集场合一般都采用分布式结构,根据不同的数据采集工作原理、结构形式和性能特点,在本系统中采用集中式的数据采集器件作为数据采集终端,采用上下位的连接方式,最终组成整个数据采集系统。

3 MATLAB软件

3.1 MATLAB 简介

MATLAB 是美国MathWorks 公司开发的一种功能极其强大的高技术计算机语言和内容极其丰富的软件库,它适合于工程各领域的分析设计与复杂计算的软件,该软件包括基本部分和专业扩展两大部分.扩展部分称为工具箱,用于解决某一方面的专业问题.它以矩阵和向量的运算以及运算结果的可视化为基础, 把广泛应用于各个学科领域的数值分析、矩阵计算、函数生成、信号处理、图形及图像处理、建模与仿真等诸多强大功能集成在一个便于用户使用的交互式环境中, 为使用者提供了一个高效的编程工具及丰富的算法资源。对于信号处理和图像处理等数字处理领域,MATLAB 更是得天独厚, 它丰富的M 文件和强大的绘

图可视功能为使用者带来了极大的方便, 被广泛的应用于信号与图像处理、控制系统设计、通信、系统仿真等诸多领域,尤其对初学者可起到事半功倍之效。

MATLAB 是一种解释语言,所有的程序和指令都必须在MATLAB 解释器中读入后才能运行,因而极大地限制了代码执行速度。MATLAB 强大的计算功能只能在其平台上才能使用,也就是说,必需在安装了其解释器的机器上才能使用MATLAB 的M 文件,这样就给工程应用带来了很大不便。对于一般用户来讲,MATLAB 只能作为离线的计算和分析工具,而不能作为实时的工程工具。幸运的是,开发MATLAB 的MathWorks 公司为广大的应用者提供了应用程序接口(API,ApplicationProgram Interface)和编译器(Compiler)。利用MATLAB 和C 语言交互,也可以开发基于MATLAB 的数据采集系统。如果配上数据采集线路,该系统就可以作为一个虚拟仪器来使用。

3.2 数据采集工具箱及声卡简介

MATLAB 自带的数据采集工具箱(Data Acquisitiontoolbox, DAQ) 能更容易地将实验测得的数据进行分析和可视化操作。数据采集设备包括: 多媒体声卡、美国国家仪器E 系列和1200 系列接口板、Hewlett-Packard-VXIE1432- 系列接口板及其他各种数据采集硬件设备。数据采集硬件设备的内部特性对MATLAB 的接口完全透明, 无论是使用一个或几个硬件设备, 数据采集工具箱都会向所有硬件设备提供单一和统一的接口。通过调用MATLAB 命令和函数可对与计算机兼容的数据采集硬件设备进行访问并对其属性进行可视化监控。

数据采集工具箱是一种建立在MATLAB 环境下的M 函数文件和MEX 动态链接库文件的集合,包含3大区域的组件:M 文件函数、数据采集引擎及硬件驱动适配器。它具有如下特点:是一种通过使用与PC 机兼容的、即插即用的数据采集设备在MATLAB 环境中的架构;支持模拟信号的输入输出以及数字信号的输入、输出,子系统还包括同步模拟输入输出的转换;支持声卡;事件驱动采集。

在MATLAB 数据采集工具箱里集成了数据采集的M 文件格式的函数和MEX 文件格式的动态链接库。其主要特征如下:

(1)提供了将实时测量数据从数据采集硬件采集到MATLAB 中的框架。

(2)支持模拟量输入(AI)、模拟量输出(A0)以及数字量I /0子系统,包括模拟量I /O 实时变换。

(3)支持PC 声卡和业界非常流行的数据采集设备如NI 卡、并行口(LPT1-LPT3)、Keithley 卡等。

(4)采用事件驱动模式进行数据采集。数据采集工具箱由3部分组成:M 文件格式的函数、数据采集引擎和硬件驱动,如图3-1所示。这些组成部分使得MATLAB 与数据采集硬件之间的信息传递成为可能。

图3-1 数据采集引擎与硬件驱动

目前市面上的数据采集卡一般都包含了完整的数据采集电路和与机的接口电路, 如NI 公司的E 系列数据采集卡、研华的数据采集卡等, 其价格是与性能成正比的, 可以说比较昂贵。在采样频率要求不高的情况下, 可以利用计算机的声卡作为数据采集的输入和输出。而如今声卡技术已经成熟, 成本越来越低。一般的声卡都可以实现双通道、16 位、高保真的数据采集, 采样率甚至可以达到48KHz 。对于许多试验和工程测量来说, 其样本量化精度和采样率是足够高的, 甚至优于目前常用数据采集卡的性能。将其用于数据采集, 性价比相当高。

声卡是一个非常优秀的音频信号采集系统, 其数字信号处理器包括模数转换器(ADC) 和数模转换器

(DAC) ,ADC 用于采集音频信号,DAC 用于重现这些数字声音, 转换率达到44.1KHz 。声卡已成为多媒体计算机的一个标准配置, 利用声卡进行采样与输出, 就不需要购买专门的采集卡可以降低虚拟仪器的开发成本, 且在音频范围内可以完全满足实验要求。

3.3 MATLAB在数据采集中的应用

数据采集工具箱集成于MATLAB 中,所以在进行数据采集的同时,可以对采集的数据进行实时分析,或者存储后再进行处理,或者针对数据分析的需要对测试条件的设立进行不断的更新。应用数据采集工具箱提供的命令和函数可以控制任何类型的数据采集。例如,在硬件设备运行时,可以获取事件信息,评估采集状态,定义触发器和回访状态,预览数据以及进行实时分析,可以设置和显示所有的硬件特性以满足用户的技术指标。

4系统设计方案

声音信号的采集与分析处理在工程应用中是经常需要解决的问题, 如何实时采集声音信号并对其分析处理, 从而找出声音信号的特征在科学研究中是一项非常有意义的工作。

声卡是多媒体计算机系统中最基本、最常用的硬件之一, 其技术已经成熟, 它具有AD/DA转换功能, 现已被广泛应用于声音信号采集和虚拟仪器系统的设计。MATLAB 则是一种功能强大、计算效率高、交互性好的数学计算和可视化计算机高级语言, 它将数值分析、信号采集与处理和图形显示有机地融为一体, 形成了一个极其方便、用户界面友好的操作环境。本文所设计的声音信号采集与分析系统就是充分利用了声卡的AD/DA转换功能和MATLAB 强大的数据处理功能, 同时, 该系统还是建立在MATLAB 软件的图形界面实现的, 因而使系统具有良好的交互性。

基于计算机声卡的数据采集系统有以下特点:

(1)价格低廉。在数据采集时,所要采用的是模数转换芯片,对于某些应用场合,可以利用计算机上所附带的声卡实现数据采集任务。

(2)灵活性强。用户不仅可以进行实时监视和控制操作,还可以把数据保存到硬盘,供以后分析使用。在CPU 足够快的条件下,还可以实时处理数据,动态显示波形的频谱、功率谱。另外在一台计算机上,可以插若干块声卡,组成多通道数据采集系统。

(3)频率范围较窄,不能测直流。由于受声卡的硬件限制,要得到较好的波形,输入信号的频率最好在100Hz ~15kHz 范围内。

总之,运用廉价的声卡,构成一个较高的采样精度,中等采样频率,且具有很大灵活性的数据采集系统,对于一些应用领域是一种很好的选择。

4.1 系统结构设计

MATLAB 提供了一个数据采集工具箱(Data Acquisition Toolbox),在该数据采集工具箱中, 有一整套的命令和函数, 可用来直接控制与PC 机兼容的数据采集设备进行数据采集, 因此, 利用MATLAB 的这一工具箱便可进行声音信号的采集。然后在MATLAB 中直接调用频谱分析函数、功率谱分析函数或数值分析函数等, 就可以将采集到的声音信号分别进行频谱、功率谱分析等多种谱分析。因此, 在MATLAB 中可以很容易地实现信号采集与分析处理工作。

图4-1系统实现的总体框图

从系统框图上看, 整个系统结构简单, 而且数据的后续分析方便, 不需要再进行数据转移, 而直接在

MATLAB 软件中完成分析处理工作。在该系统中, 从硬件上来讲, 只需必要的信号预处理电路和一台普通的多媒体计算机(或笔记本电脑) 即可; 从软件上来讲, 则只需使用本文中所编制的程序, 便可从声卡获取数据并保存为文件, 然后再可根据实际需要进行数据分析处理。

4.2 系统功能设计

本系统由数据采集和数据分析两大部分组成, 数据采集部分是实现信号采集功能, 根据用户选择的采样频率和预设的采样样本数从声卡获得用户需要的数据。数据分析部分主要实现以下功能:(1)从信号采集部分获取数据, 或者从数据文件读取数据;(2)实现将采集到的声音信号数据进行频谱分析, 画出频谱图以图形方式很直观地反映出信号特征;(3)保存数据, 包括保存所有数据和部分数据的功能, 同时保存对应的频谱数据;(4)显示声音信号数据的时域图和频谱图;(5)其他功能。根据不同的需要, 还可以进行修改, 以选择合适的实验方案。

4.3 系统设计实现

声音信号采集功能的实现是由MATLAB 控制计算机声卡将传感器得到的模拟信号转换为数字信号并存储在计算机中; 而信号分析功能是将采集得到的数据进行时、频域分析和各项数值分析等。整个系统设计主要包括系统的硬件配置、编制程序实现数据采集、编制程序实现数据分析及系统的界面设计四部分。

4.3.1 声音信号采集的硬件配置

将声卡插入计算机的PCI 插槽, 安装好相应的驱动程序后, 将声音传感器设备与声卡的模拟输入端连接起来, 这就构建了声音采集的硬件设备, 需要注意的是对声音传感器的选择, 应选择音频专用电缆或屏蔽电缆以减小噪声信号的引入, 最好能选择单向性声音传感器。在MATLAB 的信号采集工具箱中有专门为声卡生成一个操作对象的函数, 初始化该操作对象即能建立MATLAB 与声卡的通信, 并为已创建的声卡设备对象增加数据采集通道和触发方式。若缺省设置则系统采用一个数据通道、手动触发方式启动工作。进行数据采集时, 根据所配置的声卡的工作特性和信号分析的设计要求, 可设置相应的参数来控制声卡在数据采集时的行为, 如采样频率、采样时间、预计模拟信号的输入/输出范围、采样的出发方式, 采样点数据的存储等。另外需要注意的一点是采样频率是由声卡的物理特性决定的, 实际应用中可以根据情况选择一个声卡支持的采样频率.MATLAB 支持电平触发、事件触发和手动触发三种方式来启动数据采集工作。声音信号采集硬件配置的具体实现过程:

sound=analoginput(„winsound‟);% „winsound‟为声卡的驱动程序

channel=addchannel(sound,1);% 添加通道为单声道

set(sound, „SampleRate‟,44100);% 设置采样频率为44100Hz

set(sound, „SamplesPerTrigger‟,22050);% 设置采样时间为0.5s

set(sound, „TriggerType‟, „manual‟);% 设置触发方式为手工触发

...% 其它的相关设置

4.3.2 数据采集

启动设备对象, 控制声卡开始采集数据, 采集过程中可以向声卡发送控制命令, 如暂停采集、退出采集等。采集到的数据被暂时存放在计算机的内存中, 理论上可采集的最大数据量是由计算机的内存量所决定的。同时, MATLAB能够记录采集设备的硬件属性、采集的启动时刻、采集时间、采样频率及采样通道等信息, 如果采集过程中出现了错误, 则出错的时刻、错误产生的来源等信息也都会被记录下来供后续工作。需要注意的是, 执行完一次数据采集工作后应删除设备对象, 将内存中的数据存储在硬盘上之后释放数据存储所占用的内存空间, 以备下一次采集能有足够的内存空间存储新的数据,声音信号采集的实现程序为:

start(sound);% 启动设备对象

try

time=0;data=0;

[data,time]=getdata(sound);% 获取采样数据

catch

time=0;data=0;disp(„A timeout occurred‟);

end

stop(sound);% 停止设备对象

delete(sound);% 删除设备对象

4.3.3 数据分析

在设计该部分时, 不仅要求实现能从数据采集部分直接获取数据, 还需实现能从文件中读取以前所保持好的数据。之后, 用户可以根据实际研究的需要, 在MATLAB 中调用频谱分析函数(periodogram等) 、功率谱分析函数(psd等) 或数值分析函数(fminbnd等), 就可以将采集到的声音信号分别进行频谱、功率谱分析等多种谱分析, 并且可方便地将分析结果以图形的形式显示出来, 如图4-2所示。在研究蛋壳破损自动检测过程中, 通过对所采集的蛋壳声音信号进行频谱分析, 找出区分损壳蛋与好壳蛋的特征变量, 从而实现蛋壳破损的自动检测。对所采集的声音信号进行频谱分析的程序为:

...% 获取采样数据

Px=abs(fft(data,512)) 2/512;% 对所采集的数据进行傅立叶变换

px=Px(1:256);

s=60+10*log10(px);

...% 其它功能

图4-2 声音信号的采集与频谱分析

4.3.4 系统界面设计

利用MATLAB 软件中GUI 模块进行设计, 在MATLAB 中可以方便地设计出基于对话框的图形用户界面, 它提供了诸如编辑框、按钮、滚动条等图形对象, 通过对这些图形对象的有机组合, 再对相应的图形对象编写程序, 就可以设计出界面友好、操作方便的系统软件。图4-2所示为声音信号采集与频谱分析系统的运行界面, 还可再根据实际需要进行扩展。

建立基于声卡和MATLAB 的信号采集与分析系统, 能够实现信号采集、设备控制、数据分析以及结果显示等功能。实践证明该系统具有精度高、实时性好、性价比高、人机界面友好、升级修改简单等优点。在进行项目研究过程中, 常常需要进行多次实验, 采集大量的数据, 并且要求对数据能实时地进行分析处理, 该系统能很好地满足这种研究需要。此外, 这一系统还可以扩展应用到其他相关的领域中, 如在语音识别工作中可以用该系统采集语音信号并且加入语音处理的相关分析等。因此, 该系统不仅具有良好的实用性, 还可为其他的相关研究提供理论和应用基础。

语音信号分析处理系统一般由声电传感器(麦克风) 、数据采集卡、处理器(计算机) 、软件系统等几部分组成。商品数据采集卡(A/ D 板) 都包含了完整的数据采集电路和计算机接口电路, 并同时提供驱动程序, 产品和种类繁多, 性能价格各异, 价格一般都比较贵。PC 机的声卡本身就是一个廉价同时又非常优秀的语音信号采集系统, 它采用直接内存读取方式传输数据, 极大地降低了CPU 的占用率; 不仅如此, 声卡16 位的A/ D 转换精度比普通16 位A/ D 卡要高, 能够满足语音信号采集分析要求。

5 应用设计

一、 对声卡产生的模拟输入对象(AI) 进行操作

声卡是MATLAB 数据采集工具箱所支持的一种硬件,用声卡完成一个简单的数据采集过程,麦克风

就成了数据采集系统中的传感器.

1) 创建设备对象,这里创建的是一个声卡AI 设备对象,硬件设备标示符为2.

ai=analoginput(„winsound‟,2);

2) 给设备对象添加通道,这里添加1个通道.

addchannel(ai,1);

3) 设定设备属性值,控制数据采集.

freq=8 000; \采样频率8 000 Hz

set(AI,SampleRate .freq)

duration=2; \采样时间2 s

set(AI,SamplesPerTrigger,duration*freq);

4) 数据采集及结果处理.在这里首先将所采集到的数据进行快速傅立叶变换,然后转化成分贝,并显示结果的实数部分.

start(ai);

data=getdata(ai);

fftdata= abs(fft(data));

mag =20*logl0(fftdata);

mag= mag(1:end /2) ;

5) 清除内存中的设备对象.

delete(ai);

clear ai;

图5-1 采样过程中没有对麦克风讲话

图5-2 采样过程中对麦克风讲话

结果分析:图5-1是在采样过程中打开麦克风,但是没有对麦克风讲话的结果(对不同品牌、质量的声

卡,结果可能有所不同) ,图5-2是在采样的过程中对麦克风讲话的结果.可以看出,讲话与否(传感器感受端的变化) 改变了所采集到的数据的结果.

二、 直接利用MATLAB 数据采集箱中提供的函数命令进行采集

一般的采样过程是对声卡产生的模拟输入对象(AI) 进行操作的, 由于机配置和模拟通道的运用使得数据采集过程显得烦琐难以理解, 有时还不易获得采样数据。实验过程发现一种更为简单实用的方法可以进行数据采集。在阐述之前, 首先介绍一下MATLAB 数据采集箱中的几条有关命令:

wavrecord : wavrecord 利用Windows 音频输入设备记录声音, 其调用形式为:wavrecord (n ,fs ,ch) 。利用Windows 音频输入设备记录n 个音频采样, 频率为fs Hz ,通道数为ch 。采样值返回到一个大小为n*ch 的矩阵中。缺省时,fs = 11025 ,ch = 1。

waveplay: waveplay 利用Windows 音频输出设备播放声音, 其调用形为:waveplay(y ,fs) 。以采样频率fs 向Windows 音频设备发送向量信号。标准的音频采样率有:8000、11025、22050 和44100Hz 。

wavread :wavread 用于读取Microsoft 的扩展名为“.wav”的声音文件。其调用形式为: y = wavread (file) 。其作用是从字符串file 所指的文件路径读取wave 文件, 将读取的采样数据送到y 中。Y 的取值范围: [ -1 ,1 ] 。 sound:音频信号是以向量的形式表示声音采样的。sound 函数用于将向量转换为声音, 其调用形式为:sound (y ,fs) ,作用是向扬声器送出向量y 中的音频信号(采样频率为fs) 。

应用上述所讲到的MATLAB 数据采集箱提供的函数进行一次简单的语音信号的采集实验。记录5 秒钟的8 位音频语音信号并回放之, 采样频率设为11025Hz 。

﹥﹥fs = 11025 ; / 设置采样频率

﹥﹥y1 = wavrecord (5*fs ,fs ,„uint8‟) ; / 进行无语音采集

﹥﹥plot (y1) ;

﹥﹥y2 =wavrecord (5*fs ,fs ,„uint8‟) ; / 开始采集8位语音信号, 时间为5s

﹥﹥plot (y2) ;

﹥﹥wavplay(y2 ,fs) ; / 回放所采集的语音

﹥﹥sound (y2 ,fs) ;

﹥﹥y1 =fft (y2) ; / 做信号的fft 变换

﹥﹥plot (y2) ;

图5-3 无声音信号输入波形

图5-4 有声音信号输入波形

图5-5 声音信号傅里叶变换

图形分析:用户可以变换采样频率及采样时间, 也可以不同的频率回放语音。感受不同函数在相同的频率下回放的语音信号是否一致。此例进行的是实时回放, 若要事后回放则可用wavread 函数。从程序语言及实现上可看出此方法简便了许多, 而且实验结果与传统方法得到的实验结果完全一致。图5-3为在采样过程中打开麦克风, 但是没有对麦克风讲话的结果(对不同品牌、质量的声卡, 结果可能不同) ,从图上可以看到除开始采样的极短一段时间内有个信号接收过程产生阶跃外, 其余时间内波形都在很小的范围内平稳的波动。图5-4是采样过程中对麦克风讲话的结果, 可以看出, 讲话(传感器端接收到信号) 改变了采集的数据的结果。从图5-4中看出波形发生了很大的变化, 波形随声音信号的高低强弱而发生变化, 可知计算机已经通过麦克风接收到了语音信号, 说明信号采集工作成功。图5-5为对采集到的信号进行的快速傅立叶变换所得到的图形。 上面介绍的基于声卡和MATLAB 的语音数据采集系统, 具有实现简单、性价比和灵活度高的特点。经实例分析证明, 利用该系统可实现在线连续采集语音信号并进行分析和处理。

应用前文所述的MATLAB 数据采集工具箱提供的命令函数和系统环境为Windows98 的计算机上的板载声卡进行简单数据采集。记录5s 的16 bit音频语音信号并回放, 采样频率设为11025 Hz。

fs=11025 %设置采样频率

y1=wavrecord( 5*fs, fs, „unit16‟) %进行无语音采集

plot( y1) %画出所采集到的信号的波形

y2=wavrecord( 5*fs, fs, „unit16‟) %进行语音采集

wavplay( y1, fs)

sound( y2, fs) %回放所采集的语音

图5-6是用MATLAB 的DAQ 工具箱中的命令函数的方法采集数据, 采样过程中传声器无语音输入;

图5-7是用创建声卡设备对象的方法采集数据, 采样过程中传声器有语音输入。

图5-6 传声器无语音输入

图5-7 传声器有语音输入

关键词:声卡 数据采集 MATLAB 信号处理

论文摘要:利用数据采集卡构建的数据采集系统一般价格昂贵且难以与实际需求完全匹配。声卡作为数据采集卡具有价格低廉、开发容易和系统灵活等优点。本文详细介绍了系统的开发背景, 软件结构和特点, 系统地分析了数据采集硬件和软件设计技术, 在此基础上以声卡为数据采集卡, 以MATLAB 为开发平台设计了数据采集与分析系统。

本文介绍了MATLAB 及其数据采集工具箱, 利用声卡的A/ D、D/ A 技术和MATLAB 的方便编程及可视化功能, 提出了一种基于声卡的数据采集与分析方案, 该方案具有实现简单、性价比和灵活度高的优点。用MATLAB 语言编制了相应软件, 实现了该系统。该软件有着简洁的人机交互工作界面, 操作方便, 并且可以根据用户的需求进行功能扩充。最后给出了应用该系统采集数据的应用实例。

1绪论

1.1 课题背景

数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。数据采集,又称数据获取,就是将系统需要管理的所有对象的原始数据收集、归类、整理、录入到系统当中去。数据采集是机管理系统使用前的一个数据初始化过程。数据采集技术广泛引用在各个领域。比如摄像头,麦克风,都是数据采集工具。

数据采集(Data Acquisition)是将被测对象(外部世界、现场) 的各种参量(可以是物理量,也可以是化学量、生物量等) 通过各种传感元件作适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或存储记录的过程。

被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据测量是数据采集的基础。数据测量方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,都以不影响被测对象状态和测量环境为前提,以保证数据的正确性。数据采集含义很广,包括对连续物理量的采集。在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量数据。

在智能仪器、信号处理以及自动控制等领域,都存在着数据的测量与控制问题,常常需要对外部的温度、压力、流量、位移等模拟量进行采集。数据采集技术是一种流行且实用的技术。它广泛应用于信号检测、信号处理、仪器仪表等领域。近年来,随着数字化技术的不断,数据采集技术也呈现出速度更高、通道更多、数据量更大的发展态势。

数据采集系统是一种应用极为广泛的模拟量测量设备,其基本任务是把信号送入计算机或相应的信号处理系统,根据不同的需要进行相应的计算和处理。它将模拟量采集、转换成数字量后,再经过计算机处理得出所需的数据。同时,还可以用计算机将得到的数据进行储存、显示和打印,以实现对某些物理量的监视,其中一部分数据还将被用作生产过程中的反馈控制量。

数据采集系统是计算机测控系统中非常重要的环节,目前,有各种数据采集卡或采集系统可供选择,以满足生产和科研试验等各方面的不同需要,但由于数据源以及用户需求的多样性,有时并不能满足要求。特别是在某些应用中,需要同时高速采集多个通道的数据,而且为了分析比较各通道信号间的相互关系,常常要求所有通道的采集必须同步。现有的数据采集系统能够满足上述要求的比较少,且价格十分昂贵,体积较大,分量较重,使用十分不方便。

一般模拟量是通过各种数据采集卡进行数据采集。目前常用的是具有 ISA 总线、PCI 总线等接口形式的 A/D 采集卡,虽然数据传输率很高,但是还存在整个系统笨重,缺乏灵活性,不能实现即插即用,不适合小型、便携设备采用等缺点。另外这些类型的采集卡在计算机上安装比较麻烦,而且由于受计算机插槽数量、地址、中断资源的限制不可能挂接很多设备。因此,工程师们往往需要花费大量的时间和资源用于系统搭建。

随着工业技术的迅猛发展,生产规模的不断壮大,生产过程和制作工艺的日趋复杂,对自动测试和各种信息集成的要求也就越来越高。数据采集系统的好坏将直接影响自动测试系统的可靠性和稳定性,为了

满足不同的测试需求,以及减少对资源的浪费,在系统的设计上应该尽量满足通用性和可扩展性。在高度发展的当今社会中,技术的突飞猛进和生产过程的高度自动化已成为人所共知的必然趋势,而它们的共同要求是必须建立在有着不断发展与提高的信息工业基础上。人们只有从外界获取大量准确、可靠的信息经过一系列的科学分析、处理、加工与判断,进而认识和掌握界与科学技术中的各种现象与其相关的变化,并通过相应的系统和方法实现科学实验研究与生产过程的高度自动化。换言之,生产过程的自动化面临的第一个问题就是必须根据从各种传感器得到的数据来检测、监视现场,以保证现场设备的正常工作。所以对现场进行数据采集是重要的前期基础工作,然后再对现场数据进行传输和相应的处理工作,以满足不同的需要。

数据采集卡是中低端数据采集系统设计的必选产品。基于 ISA、PCI 的插卡式数据采集设备存在以下缺陷:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。而现代工业生产和科学研究的发展要求数据采集卡具有更好的数据采集、处理能力,传统的 CPU 已经不能满足这一要求。针对以上要求,本文将论述一种基于PC 机的声卡技术,它安装容易,成本较低。只需利用计算机本身的软硬件资源,而不需添加其他任何设备即可构成数据采集与分析系统,使用MATIAB 语言编制简洁的图形用户界面,该界面操作方便,并且可以根据用户的需求进行功能扩充。

数据分析在整个科研工作中是个重要的必不可少的环节,它的目的是把隐没在一大批看来杂乱无章的数据中的信息集中、萃取和提炼出来,以找出所研究对象的内在规律。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。数据分析是组织有目的地收集数据、分析数据,使之成为信息的过程。这一过程是质量管理体系的支持过程。在产品的整个寿命周期,包括从市场调研到售后服务和最终处置的各个过程都需要适当运用数据分析过程,以提升有效性。例如,一个的领导人要通过市场调查,分析所得数据以判定市场动向,从而制定合适的生产及销售计划。因此数据分析有极其广泛的应用范围。数据分析系统工作的质量和速度如何,对整个科研工作的影响也是很大的。因此研究一种质量性能高的通用数据采集平台具有很大的意义。

在近几十年来 IC 技术和计算机技术的高速发展,为数据采集与分析提供了非常良好与可靠的科学技术基础,也提出了更高的要求和强有力的推动。如今面临着先进的计算机技术和信息技术与落后的信息采集与分析技术的现实差距,那将大大影响科学技术的高度发展和生产过程的高度自动化。所以,近几十年来世界各国都大量投入进行信息采集与分析的工作,尤其是在发达的美、英、德、法日等国与我国,都对这一技术高度重视。

1.2 国内外研究动态

数据采集是获取信息的基本手段,数据采集技术作为信息科学的一个重要分支,与传感器、信号测量与处理、微型计算机等技术为基础而形成的一门综合应用技术,它研究信息数据的采集、存储、处理及控制等作业,具有很强的实用性。随着科学技术的发展,数据采集系统得到了越来越广泛得应用,同时人们对数据采集系统的各项技术指标,如:采样率、线性度、精度、输入范围、控制方法以及抗干扰能力等提出了越来越高的要求,特别是精度和采样率更是使用者和设计者所共同关注的重要问题,于是,高速及超高速数据采集系统应运而生并且得到了快速发展。今天,数据采集技术己经在雷达、通信、水声、振动工程、无损监测、智能仪器、工业自动控制以及生物医学工程等众多领域得到广泛的应用并且收到了良好的效果。高速数据采集系统在国防、航天、边缘科学研究中及国民经济的各个领域的成功的应用,进一步引起了各方的关注,推动了它的研制和发展。随着科学技术的发展,数据采集系统得到了越来越广泛的应用。目前,国外很多公司与厂商都投入巨资进行数据采集系统的研制开发与生产销售,其中比较著名的有 NEFF, NI、HP ,TEK 等。

从数据采集系统产品来看,各大公司提供的系列产品都包括了完成数据采集的诸如信号放大、滤波、多路开关、模数转换和接口等各种模块。现有的高速数据采集器件和开发的产品中,目前还没有完全实现高速、高分辨率。在雷达、通信、谱分析、瞬态分析、电视等应用领域,为满足实时检测和高速采集的日益更新的需要,实现数据采集的高速、高分辨率已成为数据采集系统的一个发展方向。现有的高速 ADC 器

件和产品价格都比较昂贵,有些高速、高分辨率的器件本身还存在着不稳定性,因此,在数据采集系统向高速、高分辨率发展的同时,开发和研制的器件和产品应不断地提高可靠性,降低成本,提高性价比,以便使之得到更广泛的应用。在国内,由于、技术等原因,我们的产品普遍存在:通用性差、用途单一、测点少、测量距离小、环境适应性差等缺点,远没有形成系列化、模块化、标准化的通用产品,根本无法满足国内用户不断增长的需要,也远远不能与国外产品抗衡,正因此使得价格高昂的国外产品占有了相当大的市场份额。

1.3 数据采集系统的现状及发展

数据采集与分析一直是生产实践研究与应用领域的一个热点和难点。随着微电子制造工艺水平的飞速提高及数据分析理论的进一步完善与成熟,目前国内外对数据采集系统的高性能方面的研究上取得了很大的成就。就 A/D 转换的精度、速度和通道数来说,采样通道从单通道发展到双通道、多通道,采样频率、分辨率、精度逐步提高,为分析功能的加强提供了前提条件。而在数据分析的微处理器上,最初的数据采集系统以 8 位单片机为核心,随着微电子技术的不断发展,新兴单片机的不断问世,十六位、三十二位单片机也为数据采集系统研制厂家所采用,近年来采用具有 DSP 功能的数据采集系统也己投入市场。同时,通用 PC 机的 CPU 用于数据处理也较为常见。总之,伴随着高性能微处理器的采用和用户技术要求的不断提高,数据采集系统的功能也越来越完善。数据采集系统的发展主要体现在以下几个趋势:

首先,在专业测控方面,基于 PC 计算机的数据采集系统越来越成熟和智能化。在过去的二十年中,开放式架构 PC 机的处理能力平均每十八个月就增强一倍。为了充分利用处理器速度的发展,现代开放式测量平台结合了高速总线接口,如 PCI和 PXI/Compact PCI,以便获得性能的进一步提升。计算机的性能提升和由此引起的基于计算机的测量技术的创新,正在持续不断地模糊着传统仪器和基于计算机的测量仪器之间的界线。

其次,在通用测控方面,采用嵌入式微处理器的方案也由早期的采用 A/D 器件和标准单片机组成应用系统发展到在单芯片上实现完整的数据采集与分析,即目前极为热门的 SOC (System On Chip)。通常在一块芯片上会集成一个,可以采样多路模拟信号的 A/D 转换子系统和一个硬 CPU 核(比如增强

型 80_52 内核) ,而且其CPU 的运算处理速度和性能也较早期的标准 CPU 内核提高了数倍,而且有着极低的功耗。这种单芯片解决方案降低了系统的成本和设计的复杂性。

此外,为了解决 SOC 方案中数据处理性能的不足,采用 DSP 作为数据采集系统的 CPU 的研究与应用目前也逐渐引起业内重视。但是这类产品目前仅仅处于发展的初级阶段,在精度、速度或其它性能指标上并不能很好的满足要求。因此,国内外以 DSP 作为数据采集系统的采样控制和分析运算的研究与应用正在展开。

近年来随着芯片技术、计算机技术和技术的发展,数据采集技术取得了许多新的技术成果,市场上推出了繁多的新产品。高速数据采集技术的发展一方面是提高采集速率,另一方面不断向两端延伸。一端是输入的信号调理,另一端是采集后的数字化信号的实时处理与事后处理。20世纪90年代末,随着数字技术快速发展,数据采集技术已向着并行、高速、大量存储、实时分析处理、集成化等方向发展。

(1)采样方式

①过采样(Over Sampling)。采样方式中最早是过采样,根据采样定理,采样频率fs 必须高于被采信号最高频率fch 的两倍,才不致产生频率混叠现象。例如信号最高频率为10kHz ,采样频率必须高于20kHz 。

②欠采样(Under Sampling)。在通信和动态数据的采集中,发展了一种欠采样技术,即采样频率fs 可以低于信号频率fch ,但信号的频带宽度不得大于0.5fs ,利用采样信号产生的高次谐波,将采样后的信号移至第二或者更高的奈奎斯特区。例如采样频率fs 为10kHz ,可对频带fch 落于11~14kHz 的信号(频带宽度为3kHz ,低于0.5fs=5kHz)进行欠采样。于是在采样频率2次谐波两边产生的采样后的信号频带为f2ch = 2fs±fch = 20 kHz±(11~14 kHz)= 31~34 kHz,或9~6 kHz

③等效时间采样(Equivalent Time Sampling )。主要是对于重复的周期波形进行等效时间采样。例如美国泰克公司的TDS784D 数字存储示波器,其实际的采样频率为 1 GS/s ( 1GHz ),对于重复的

周期信号,采取周期微差法,可以达到250GS/s(250GHz)的等效时间采样。例如对于 1 GHz 的方波,进行周期微差法采样,每个周期的采样只有微小的时差,将若干个周期中的样点集中排列,即可测出方波上升沿和下降沿的波形。对于单次瞬态信号,这种方法是无效的。

④变速率变分辨率采样。

(2)采集方式的发展

①扫描式采集(Scanning Acquisition):时分制、多通道巡回采集。

②并行式采集(Parallel Acquisition):多个通道同步并行采集,每个通道采用一个独立的A/D转换器,通道采集速率只取决于A/D的转换速率,与通道数无关。

③交替采集(Internative Acquisition):一个通道由多个A/D转换器交替采集,使每个通道采样速率等于多个A/D的转换速率之和,可以高于单个A/D的转换速率。

(3)采集数据的实时分析与处理软件

目前国外的测试仪器或系统生产厂家,在生产硬件的同时,推出其相应的支持软件或软件开发平台,如为产品开发者提供的软件工具;为系统集成者提供系统应用软件的集成的环境;为终端用户提供编写自己的用户应用程序的手段。

1.4 本文主要内容和章节安排

本文完成了一种基于MATLAB 的数据采集系统的方案的设计,实现了在MATLAB 环境下利用声卡和MATLAB 数据采集工具箱进行的数据采集与分析。

全文的结构安排如下:

第一章 绪论,说明了研究背景、意义、国内外现状,以及系统的发展现状。

第二章 主要介绍了系统结构特点及性能

第三章 主要介绍了声卡、MATLAB 软件及其工具箱的使用

第四章 主要讨论了系统结构功能设计与实现,以及数据采集与分析的具体过程

第五章 主要对数据采集进行了举例

2数据采集系统结构特点

2.1 系统组成结构

数据采集系统主要由两部分组成:采集子系统和计算机子系统,即下位机智能数据采集系统和上位机 HMI(Human Machine Interface)系统。采集子系统实现将客观世界被测对象信号采集和转换为能被计算机处理的数字信号的功能等;计算机子系统实现对采集数据的控制、存储和处理等功能,计算机起着对采集数据的存储和处理、统计分析、提供人机接口与其他计算机的数据通信和交换的功能。

数据采集系统涉及多学科,所研究的对象是物理或生物等各种非电或电信号。根据各种非电或电信号的特征,利用相应的归一化技术,将其转换为可真实反映事物特征的电信号后,经A /D 转换器转换为计算机可识别的有限长二进制数字编码,以此作为研究自然科学和实现工业实时控制的重要依据,实现对宏观和微观自然科学的量化认识,典型的数据采集系统组成如图2-1所示。

图2-1 典型数据采集系统的组成

而一般的外置式数据采集系统结构如图2-2所示。模拟信号由传感器采得经过信号调理模块送入数据采集硬件设备。在数据采集设备中完成A /D 转换,包括采样、量化、编码,转化成数字信号后送入与之相连的PC 机中。根据不同的要求,在PC 机上利用MATLAB 以及二次编程实现数据的实时分析与处理。

用户可以通过人机交互界面修改、设定各项参数来控制数据采集硬件设备的工作状态,同时可以得到数据的采集与分析结果, 从而实现数据采集与分析的自动化。

图2-2 一般的外置式数据采集系统结构

利用声卡在WINDOWS 环境下开发数据采集系统时,由于受编程语言的限制,其数据分析与处理的功能非常有限。例如,为了对所采集的数据进行功率谱分析,则需要用户以VB 或C 语言来编写功率谱分析的子程序,这显然增加了开发的难度,并且也极不利于分析功能的进一步扩展。

而利用声卡作为A /D 转换工具,经过衰减和取样电路得到的模拟信号送至声卡的线路输入端

LINEIN ,并利用MATLAB 中提供的数据采集工具箱,可满足控制声卡进行数据采集的要求。用户通过调用MATLAB 命令, 可对采集的数据进行分析和处理。

整个系统可分为数据采集和数据分析两大部分,以友好的图形界面与用户进行交互沟通。数据采集部分实现数据采集功能,根据用户选择的采样频率和预设的采样时间,从声卡获得用户需要的数据;数据分析部分对采集到的数据进行频谱分析。全部数据的时域和频域波形以图形方式直观地呈现于用户面前。此外,还提供保存数据以及回放数据的功能。

图2-3给出了基于MATLAB 的数据采集系统的简图,主要部件数据采集工具箱提供了硬件驱动程序和MATLAB 环境之间“对话”所需的硬件驱动程序适配器、数据采集引擎和M-文件函数.

图2-3 基于MATLAB 的数据采集系统简图

硬件驱动程序适配器在硬件驱动程序和数据采集引擎之间交换属性数值、数据和事件;数据采集引擎

用来存储各个设备对象,以及每个设备对象的属性值;对采集到的数据进行存储并且使不同事件同步;M-文件用来创建设备对象、采集或输出数据、配置属性值和检测数据采集状态和数据采集设备。

2.2 系统的特点和性能指标

数据采集系统到今天,一般来说具有如下主要特点:

(1)现代采集系统一般都由机控制,使得数据采集的质量和效率等大为提高,也节省了硬件投资。

(2)软件在数据采集系统中的作用越来越大,增加了系统设计的灵活性。

(3)数据采集与数据处理相互结合的日益紧密,形成数据采集与处理系统,可实现从数据采集、处理到控制的全部工作。

(4)数据采集过程一般都具有“实时”特性,实时的标准是能满足实际需要;对于通用采集系统一般希望有尽可能高的速度,以满足更多的应用环境。

(5)随着技术的发展,电路集成度的提高,数据采集系统的体积越来越小,可靠性越来越高,甚至出现了单片数据采集系统。

(6)总线在数据采集系统中有着广泛的应用,总线技术它对数据采集系统结构的发展起着重要作用。 评价一个数据采集系统的性能有很多指标,但是一般采用以下几个比较常用的指标进行评价。

(1)系统分辨率

系统分辨率是指数据采集系统可以分辨的输入信号的最小变化量。通常可以用如下几种方法表示系统分辨率:

使用系统所采用的 A/D 转换器的位数表示系统分辨率;

使用最低有效位值(LSB )占系统满度值的百分比表示系统分辨率;

使用系统可分辨的实际电压数值表示系统分辨率;

使用满度值可以分的级数表示系统分辨率。

(2)系统精度

系统精度是指当系统工作在额定采集速率下,整个数据采集系统所能达到的转换精度。A/D 转换器的精度是系统精度的极限值。实际上,系统精度往往达不到A/D 转换器的精度。因为系统精度取决于系统的各个环节(子系统)的精度,如前置放大器、滤波器、模拟多路开关等。只有当这些子系统的精度都明显优于 A/D 转换器的精度时,系统精度才有可能达到 A/D 转换器的精度。系统精度是系统的实际输出值与理论输出值之差,它是系统各种误差的总和,通常表示为满度值的百分数。

(3)采集速率

采集速率又称为系统通过速率或吞吐率,是指在满足系统精度指标的前提下,系统对输入的模拟信号在单位时间内所能完成的采集次数,或者说是系统每个通道、每秒钟可采集的有效数据的数量。这里说的“采集”包括对被测物理量进行采样、量化、编码、传输和存储的全部过程。

(4)动态范围

动态范围是指某个确定的物理量的变化范围。信号的动态范围是指信号的最大幅度和最小幅度之比的分贝数。

2.3 系统常见的几种结构形式

(1)多通道共享采样/保持器和 A/D 转换器数据采集系统

这种系统构成如下图所示,这种结构形式采用分时转换工作的方式,多路被测信号共用一个采样/保持器和一个 A/D 转换器。当采样保持器的输出已充分逼近输入信号(按给定精度)时,在控制命令的作用下,采样保持器由采样状态进入保持状态,A/D 转换器开始进行转换,转换完毕后输出数字信号。在转换期间,多路开关将下一路信号切换到采样/保持器的输入端,系统不断重复以上的操作,可以实现对多通道模拟信号的数据采集。采样方式可以按顺序或随机进行。

多通道共享采样保持器和 AD 转换器数据采集系统图

这种采集系统结构形式最简单,所用芯片数量少,适用于信号变化率不高、对采样信号不要求同步的场合。如果被测信号变化速率较慢,可以不用采样保持器,直接进行 A/D 转换。如果信号很弱而干扰噪声强,需要在系统电路中增加信号放大电路和滤波环节。

(2)多通道同步数据采集系统

多通道同步型数据采集系统图

其结构如上图所示,也属于分时转换系统。

多路模拟输入信号共用一个 A/D 转换器,但是每个通道各有一个采样/保持器,在同一采样指令控制下对各路信号同步进行信号采样,得到各路信号在同一时刻的瞬时值。模拟开关分时将各路采样/保持器切换到 A/D 转换器上,进行模数转换。这些同步数据可以描述各路信号的相位关系,所以这种结构被称为同步型数据采集系统。

由于各路信号必须串行的在共用的 A/D 转换器中进行转换和计算,若采样信号回路过多时,这种采集结构的速度仍然较慢。

(3)多通道并行数据采集系统

多通道并行数据采集系统框图如上图所示。这种结构形式中,每个通道都有自己的采样保持器和A/D转换器,经过A/D转换的数据经过接口电路送到计算机中。相对于前两种数据采集系统,这种结构形式的数据采集速度最快,但所用的硬件电路复杂,成本较高。

通用型模拟量数据采集模块则属于这一类的数据采集子系统。数据采集模块是属于单片机的智能器件,在整个数据采集系统中,每个模块可以认为是实时、并行地工作,每个模块仅完成几路信号的检测和采集,实时响应性能优。

(4)分布式数据采集系统

以上介绍的三种结构形式中,系统各部件之间的空间距离很近,逻辑上耦合程度紧密,都可以称之为数据采集系统。这种系统的优点是:结构简单,容易实现,能满足中小规模的集中数据采集的要求。在市面上均有成熟产品可供选用。系统的体积和设备量小,造价低。

由于工作原理、结构形式和性能设计等原因,这类系统也存在不少缺点:

因为系统结构不灵活,不易扩展,所以不适合大规模的数据采集应用场合。抗干扰能力差,尤其对于被测对象物理位置分散、传感器输出的微弱信号需要长距离传输时,所受的干扰不容忽视的。可靠性差。系统结构中某一部件出现故障会导致整个系统工作崩溃。由于各部件之间紧密耦合,导致系统的可扩展性和灵活性差。分布式数据采集系统是数据采集技术、计算机技术和通信技术综合和发展的产物,基于“分散采集、集中管理”的思想设计的系统结构形式,由若干个“数据采集点”和上位机以及通信接口组成。分布式数据采集系统结构如下图所示:

分布式数据采集系统图

处于分散部位的数据采集点相当于小型的集中数据采集系统,位于被测对象的附近,可独立完成数据采集和预处理任务,并将采集的数据转换为数字信号的形式传送给上位机,采用数据传输的方法可以克服模拟信号传输的固有缺陷。分布式数据采集系统的主要特点是:

(1)系统适应能力强。因为可以通过选用适当数量的数据采集点来构成相应规模的系统, 所以无论是大规模的系统,还是中小规模的系统,分布式结构都能够适应。

(2)系统可靠性高。由于采用了多个数据采集点,若某个数据采集点出现故障,只会影响某项数据的采集,而不会对系统的其他部分造成任何影响。

(3)系统实时相应性好。由于系统各个数据采集点之间是真正“并行”工作的,所以系统的实时相应性较好。

(4)另外,这种数据采集系统是用数字信号传输代替模拟信号传输,有利于克服常模干扰和共模干扰。因此,这种系统特别适合于在恶劣的环境下工作。目前对于大规模的数据采集场合一般都采用分布式结构,根据不同的数据采集工作原理、结构形式和性能特点,在本系统中采用集中式的数据采集器件作为数据采集终端,采用上下位的连接方式,最终组成整个数据采集系统。

3 MATLAB软件

3.1 MATLAB 简介

MATLAB 是美国MathWorks 公司开发的一种功能极其强大的高技术计算机语言和内容极其丰富的软件库,它适合于工程各领域的分析设计与复杂计算的软件,该软件包括基本部分和专业扩展两大部分.扩展部分称为工具箱,用于解决某一方面的专业问题.它以矩阵和向量的运算以及运算结果的可视化为基础, 把广泛应用于各个学科领域的数值分析、矩阵计算、函数生成、信号处理、图形及图像处理、建模与仿真等诸多强大功能集成在一个便于用户使用的交互式环境中, 为使用者提供了一个高效的编程工具及丰富的算法资源。对于信号处理和图像处理等数字处理领域,MATLAB 更是得天独厚, 它丰富的M 文件和强大的绘

图可视功能为使用者带来了极大的方便, 被广泛的应用于信号与图像处理、控制系统设计、通信、系统仿真等诸多领域,尤其对初学者可起到事半功倍之效。

MATLAB 是一种解释语言,所有的程序和指令都必须在MATLAB 解释器中读入后才能运行,因而极大地限制了代码执行速度。MATLAB 强大的计算功能只能在其平台上才能使用,也就是说,必需在安装了其解释器的机器上才能使用MATLAB 的M 文件,这样就给工程应用带来了很大不便。对于一般用户来讲,MATLAB 只能作为离线的计算和分析工具,而不能作为实时的工程工具。幸运的是,开发MATLAB 的MathWorks 公司为广大的应用者提供了应用程序接口(API,ApplicationProgram Interface)和编译器(Compiler)。利用MATLAB 和C 语言交互,也可以开发基于MATLAB 的数据采集系统。如果配上数据采集线路,该系统就可以作为一个虚拟仪器来使用。

3.2 数据采集工具箱及声卡简介

MATLAB 自带的数据采集工具箱(Data Acquisitiontoolbox, DAQ) 能更容易地将实验测得的数据进行分析和可视化操作。数据采集设备包括: 多媒体声卡、美国国家仪器E 系列和1200 系列接口板、Hewlett-Packard-VXIE1432- 系列接口板及其他各种数据采集硬件设备。数据采集硬件设备的内部特性对MATLAB 的接口完全透明, 无论是使用一个或几个硬件设备, 数据采集工具箱都会向所有硬件设备提供单一和统一的接口。通过调用MATLAB 命令和函数可对与计算机兼容的数据采集硬件设备进行访问并对其属性进行可视化监控。

数据采集工具箱是一种建立在MATLAB 环境下的M 函数文件和MEX 动态链接库文件的集合,包含3大区域的组件:M 文件函数、数据采集引擎及硬件驱动适配器。它具有如下特点:是一种通过使用与PC 机兼容的、即插即用的数据采集设备在MATLAB 环境中的架构;支持模拟信号的输入输出以及数字信号的输入、输出,子系统还包括同步模拟输入输出的转换;支持声卡;事件驱动采集。

在MATLAB 数据采集工具箱里集成了数据采集的M 文件格式的函数和MEX 文件格式的动态链接库。其主要特征如下:

(1)提供了将实时测量数据从数据采集硬件采集到MATLAB 中的框架。

(2)支持模拟量输入(AI)、模拟量输出(A0)以及数字量I /0子系统,包括模拟量I /O 实时变换。

(3)支持PC 声卡和业界非常流行的数据采集设备如NI 卡、并行口(LPT1-LPT3)、Keithley 卡等。

(4)采用事件驱动模式进行数据采集。数据采集工具箱由3部分组成:M 文件格式的函数、数据采集引擎和硬件驱动,如图3-1所示。这些组成部分使得MATLAB 与数据采集硬件之间的信息传递成为可能。

图3-1 数据采集引擎与硬件驱动

目前市面上的数据采集卡一般都包含了完整的数据采集电路和与机的接口电路, 如NI 公司的E 系列数据采集卡、研华的数据采集卡等, 其价格是与性能成正比的, 可以说比较昂贵。在采样频率要求不高的情况下, 可以利用计算机的声卡作为数据采集的输入和输出。而如今声卡技术已经成熟, 成本越来越低。一般的声卡都可以实现双通道、16 位、高保真的数据采集, 采样率甚至可以达到48KHz 。对于许多试验和工程测量来说, 其样本量化精度和采样率是足够高的, 甚至优于目前常用数据采集卡的性能。将其用于数据采集, 性价比相当高。

声卡是一个非常优秀的音频信号采集系统, 其数字信号处理器包括模数转换器(ADC) 和数模转换器

(DAC) ,ADC 用于采集音频信号,DAC 用于重现这些数字声音, 转换率达到44.1KHz 。声卡已成为多媒体计算机的一个标准配置, 利用声卡进行采样与输出, 就不需要购买专门的采集卡可以降低虚拟仪器的开发成本, 且在音频范围内可以完全满足实验要求。

3.3 MATLAB在数据采集中的应用

数据采集工具箱集成于MATLAB 中,所以在进行数据采集的同时,可以对采集的数据进行实时分析,或者存储后再进行处理,或者针对数据分析的需要对测试条件的设立进行不断的更新。应用数据采集工具箱提供的命令和函数可以控制任何类型的数据采集。例如,在硬件设备运行时,可以获取事件信息,评估采集状态,定义触发器和回访状态,预览数据以及进行实时分析,可以设置和显示所有的硬件特性以满足用户的技术指标。

4系统设计方案

声音信号的采集与分析处理在工程应用中是经常需要解决的问题, 如何实时采集声音信号并对其分析处理, 从而找出声音信号的特征在科学研究中是一项非常有意义的工作。

声卡是多媒体计算机系统中最基本、最常用的硬件之一, 其技术已经成熟, 它具有AD/DA转换功能, 现已被广泛应用于声音信号采集和虚拟仪器系统的设计。MATLAB 则是一种功能强大、计算效率高、交互性好的数学计算和可视化计算机高级语言, 它将数值分析、信号采集与处理和图形显示有机地融为一体, 形成了一个极其方便、用户界面友好的操作环境。本文所设计的声音信号采集与分析系统就是充分利用了声卡的AD/DA转换功能和MATLAB 强大的数据处理功能, 同时, 该系统还是建立在MATLAB 软件的图形界面实现的, 因而使系统具有良好的交互性。

基于计算机声卡的数据采集系统有以下特点:

(1)价格低廉。在数据采集时,所要采用的是模数转换芯片,对于某些应用场合,可以利用计算机上所附带的声卡实现数据采集任务。

(2)灵活性强。用户不仅可以进行实时监视和控制操作,还可以把数据保存到硬盘,供以后分析使用。在CPU 足够快的条件下,还可以实时处理数据,动态显示波形的频谱、功率谱。另外在一台计算机上,可以插若干块声卡,组成多通道数据采集系统。

(3)频率范围较窄,不能测直流。由于受声卡的硬件限制,要得到较好的波形,输入信号的频率最好在100Hz ~15kHz 范围内。

总之,运用廉价的声卡,构成一个较高的采样精度,中等采样频率,且具有很大灵活性的数据采集系统,对于一些应用领域是一种很好的选择。

4.1 系统结构设计

MATLAB 提供了一个数据采集工具箱(Data Acquisition Toolbox),在该数据采集工具箱中, 有一整套的命令和函数, 可用来直接控制与PC 机兼容的数据采集设备进行数据采集, 因此, 利用MATLAB 的这一工具箱便可进行声音信号的采集。然后在MATLAB 中直接调用频谱分析函数、功率谱分析函数或数值分析函数等, 就可以将采集到的声音信号分别进行频谱、功率谱分析等多种谱分析。因此, 在MATLAB 中可以很容易地实现信号采集与分析处理工作。

图4-1系统实现的总体框图

从系统框图上看, 整个系统结构简单, 而且数据的后续分析方便, 不需要再进行数据转移, 而直接在

MATLAB 软件中完成分析处理工作。在该系统中, 从硬件上来讲, 只需必要的信号预处理电路和一台普通的多媒体计算机(或笔记本电脑) 即可; 从软件上来讲, 则只需使用本文中所编制的程序, 便可从声卡获取数据并保存为文件, 然后再可根据实际需要进行数据分析处理。

4.2 系统功能设计

本系统由数据采集和数据分析两大部分组成, 数据采集部分是实现信号采集功能, 根据用户选择的采样频率和预设的采样样本数从声卡获得用户需要的数据。数据分析部分主要实现以下功能:(1)从信号采集部分获取数据, 或者从数据文件读取数据;(2)实现将采集到的声音信号数据进行频谱分析, 画出频谱图以图形方式很直观地反映出信号特征;(3)保存数据, 包括保存所有数据和部分数据的功能, 同时保存对应的频谱数据;(4)显示声音信号数据的时域图和频谱图;(5)其他功能。根据不同的需要, 还可以进行修改, 以选择合适的实验方案。

4.3 系统设计实现

声音信号采集功能的实现是由MATLAB 控制计算机声卡将传感器得到的模拟信号转换为数字信号并存储在计算机中; 而信号分析功能是将采集得到的数据进行时、频域分析和各项数值分析等。整个系统设计主要包括系统的硬件配置、编制程序实现数据采集、编制程序实现数据分析及系统的界面设计四部分。

4.3.1 声音信号采集的硬件配置

将声卡插入计算机的PCI 插槽, 安装好相应的驱动程序后, 将声音传感器设备与声卡的模拟输入端连接起来, 这就构建了声音采集的硬件设备, 需要注意的是对声音传感器的选择, 应选择音频专用电缆或屏蔽电缆以减小噪声信号的引入, 最好能选择单向性声音传感器。在MATLAB 的信号采集工具箱中有专门为声卡生成一个操作对象的函数, 初始化该操作对象即能建立MATLAB 与声卡的通信, 并为已创建的声卡设备对象增加数据采集通道和触发方式。若缺省设置则系统采用一个数据通道、手动触发方式启动工作。进行数据采集时, 根据所配置的声卡的工作特性和信号分析的设计要求, 可设置相应的参数来控制声卡在数据采集时的行为, 如采样频率、采样时间、预计模拟信号的输入/输出范围、采样的出发方式, 采样点数据的存储等。另外需要注意的一点是采样频率是由声卡的物理特性决定的, 实际应用中可以根据情况选择一个声卡支持的采样频率.MATLAB 支持电平触发、事件触发和手动触发三种方式来启动数据采集工作。声音信号采集硬件配置的具体实现过程:

sound=analoginput(„winsound‟);% „winsound‟为声卡的驱动程序

channel=addchannel(sound,1);% 添加通道为单声道

set(sound, „SampleRate‟,44100);% 设置采样频率为44100Hz

set(sound, „SamplesPerTrigger‟,22050);% 设置采样时间为0.5s

set(sound, „TriggerType‟, „manual‟);% 设置触发方式为手工触发

...% 其它的相关设置

4.3.2 数据采集

启动设备对象, 控制声卡开始采集数据, 采集过程中可以向声卡发送控制命令, 如暂停采集、退出采集等。采集到的数据被暂时存放在计算机的内存中, 理论上可采集的最大数据量是由计算机的内存量所决定的。同时, MATLAB能够记录采集设备的硬件属性、采集的启动时刻、采集时间、采样频率及采样通道等信息, 如果采集过程中出现了错误, 则出错的时刻、错误产生的来源等信息也都会被记录下来供后续工作。需要注意的是, 执行完一次数据采集工作后应删除设备对象, 将内存中的数据存储在硬盘上之后释放数据存储所占用的内存空间, 以备下一次采集能有足够的内存空间存储新的数据,声音信号采集的实现程序为:

start(sound);% 启动设备对象

try

time=0;data=0;

[data,time]=getdata(sound);% 获取采样数据

catch

time=0;data=0;disp(„A timeout occurred‟);

end

stop(sound);% 停止设备对象

delete(sound);% 删除设备对象

4.3.3 数据分析

在设计该部分时, 不仅要求实现能从数据采集部分直接获取数据, 还需实现能从文件中读取以前所保持好的数据。之后, 用户可以根据实际研究的需要, 在MATLAB 中调用频谱分析函数(periodogram等) 、功率谱分析函数(psd等) 或数值分析函数(fminbnd等), 就可以将采集到的声音信号分别进行频谱、功率谱分析等多种谱分析, 并且可方便地将分析结果以图形的形式显示出来, 如图4-2所示。在研究蛋壳破损自动检测过程中, 通过对所采集的蛋壳声音信号进行频谱分析, 找出区分损壳蛋与好壳蛋的特征变量, 从而实现蛋壳破损的自动检测。对所采集的声音信号进行频谱分析的程序为:

...% 获取采样数据

Px=abs(fft(data,512)) 2/512;% 对所采集的数据进行傅立叶变换

px=Px(1:256);

s=60+10*log10(px);

...% 其它功能

图4-2 声音信号的采集与频谱分析

4.3.4 系统界面设计

利用MATLAB 软件中GUI 模块进行设计, 在MATLAB 中可以方便地设计出基于对话框的图形用户界面, 它提供了诸如编辑框、按钮、滚动条等图形对象, 通过对这些图形对象的有机组合, 再对相应的图形对象编写程序, 就可以设计出界面友好、操作方便的系统软件。图4-2所示为声音信号采集与频谱分析系统的运行界面, 还可再根据实际需要进行扩展。

建立基于声卡和MATLAB 的信号采集与分析系统, 能够实现信号采集、设备控制、数据分析以及结果显示等功能。实践证明该系统具有精度高、实时性好、性价比高、人机界面友好、升级修改简单等优点。在进行项目研究过程中, 常常需要进行多次实验, 采集大量的数据, 并且要求对数据能实时地进行分析处理, 该系统能很好地满足这种研究需要。此外, 这一系统还可以扩展应用到其他相关的领域中, 如在语音识别工作中可以用该系统采集语音信号并且加入语音处理的相关分析等。因此, 该系统不仅具有良好的实用性, 还可为其他的相关研究提供理论和应用基础。

语音信号分析处理系统一般由声电传感器(麦克风) 、数据采集卡、处理器(计算机) 、软件系统等几部分组成。商品数据采集卡(A/ D 板) 都包含了完整的数据采集电路和计算机接口电路, 并同时提供驱动程序, 产品和种类繁多, 性能价格各异, 价格一般都比较贵。PC 机的声卡本身就是一个廉价同时又非常优秀的语音信号采集系统, 它采用直接内存读取方式传输数据, 极大地降低了CPU 的占用率; 不仅如此, 声卡16 位的A/ D 转换精度比普通16 位A/ D 卡要高, 能够满足语音信号采集分析要求。

5 应用设计

一、 对声卡产生的模拟输入对象(AI) 进行操作

声卡是MATLAB 数据采集工具箱所支持的一种硬件,用声卡完成一个简单的数据采集过程,麦克风

就成了数据采集系统中的传感器.

1) 创建设备对象,这里创建的是一个声卡AI 设备对象,硬件设备标示符为2.

ai=analoginput(„winsound‟,2);

2) 给设备对象添加通道,这里添加1个通道.

addchannel(ai,1);

3) 设定设备属性值,控制数据采集.

freq=8 000; \采样频率8 000 Hz

set(AI,SampleRate .freq)

duration=2; \采样时间2 s

set(AI,SamplesPerTrigger,duration*freq);

4) 数据采集及结果处理.在这里首先将所采集到的数据进行快速傅立叶变换,然后转化成分贝,并显示结果的实数部分.

start(ai);

data=getdata(ai);

fftdata= abs(fft(data));

mag =20*logl0(fftdata);

mag= mag(1:end /2) ;

5) 清除内存中的设备对象.

delete(ai);

clear ai;

图5-1 采样过程中没有对麦克风讲话

图5-2 采样过程中对麦克风讲话

结果分析:图5-1是在采样过程中打开麦克风,但是没有对麦克风讲话的结果(对不同品牌、质量的声

卡,结果可能有所不同) ,图5-2是在采样的过程中对麦克风讲话的结果.可以看出,讲话与否(传感器感受端的变化) 改变了所采集到的数据的结果.

二、 直接利用MATLAB 数据采集箱中提供的函数命令进行采集

一般的采样过程是对声卡产生的模拟输入对象(AI) 进行操作的, 由于机配置和模拟通道的运用使得数据采集过程显得烦琐难以理解, 有时还不易获得采样数据。实验过程发现一种更为简单实用的方法可以进行数据采集。在阐述之前, 首先介绍一下MATLAB 数据采集箱中的几条有关命令:

wavrecord : wavrecord 利用Windows 音频输入设备记录声音, 其调用形式为:wavrecord (n ,fs ,ch) 。利用Windows 音频输入设备记录n 个音频采样, 频率为fs Hz ,通道数为ch 。采样值返回到一个大小为n*ch 的矩阵中。缺省时,fs = 11025 ,ch = 1。

waveplay: waveplay 利用Windows 音频输出设备播放声音, 其调用形为:waveplay(y ,fs) 。以采样频率fs 向Windows 音频设备发送向量信号。标准的音频采样率有:8000、11025、22050 和44100Hz 。

wavread :wavread 用于读取Microsoft 的扩展名为“.wav”的声音文件。其调用形式为: y = wavread (file) 。其作用是从字符串file 所指的文件路径读取wave 文件, 将读取的采样数据送到y 中。Y 的取值范围: [ -1 ,1 ] 。 sound:音频信号是以向量的形式表示声音采样的。sound 函数用于将向量转换为声音, 其调用形式为:sound (y ,fs) ,作用是向扬声器送出向量y 中的音频信号(采样频率为fs) 。

应用上述所讲到的MATLAB 数据采集箱提供的函数进行一次简单的语音信号的采集实验。记录5 秒钟的8 位音频语音信号并回放之, 采样频率设为11025Hz 。

﹥﹥fs = 11025 ; / 设置采样频率

﹥﹥y1 = wavrecord (5*fs ,fs ,„uint8‟) ; / 进行无语音采集

﹥﹥plot (y1) ;

﹥﹥y2 =wavrecord (5*fs ,fs ,„uint8‟) ; / 开始采集8位语音信号, 时间为5s

﹥﹥plot (y2) ;

﹥﹥wavplay(y2 ,fs) ; / 回放所采集的语音

﹥﹥sound (y2 ,fs) ;

﹥﹥y1 =fft (y2) ; / 做信号的fft 变换

﹥﹥plot (y2) ;

图5-3 无声音信号输入波形

图5-4 有声音信号输入波形

图5-5 声音信号傅里叶变换

图形分析:用户可以变换采样频率及采样时间, 也可以不同的频率回放语音。感受不同函数在相同的频率下回放的语音信号是否一致。此例进行的是实时回放, 若要事后回放则可用wavread 函数。从程序语言及实现上可看出此方法简便了许多, 而且实验结果与传统方法得到的实验结果完全一致。图5-3为在采样过程中打开麦克风, 但是没有对麦克风讲话的结果(对不同品牌、质量的声卡, 结果可能不同) ,从图上可以看到除开始采样的极短一段时间内有个信号接收过程产生阶跃外, 其余时间内波形都在很小的范围内平稳的波动。图5-4是采样过程中对麦克风讲话的结果, 可以看出, 讲话(传感器端接收到信号) 改变了采集的数据的结果。从图5-4中看出波形发生了很大的变化, 波形随声音信号的高低强弱而发生变化, 可知计算机已经通过麦克风接收到了语音信号, 说明信号采集工作成功。图5-5为对采集到的信号进行的快速傅立叶变换所得到的图形。 上面介绍的基于声卡和MATLAB 的语音数据采集系统, 具有实现简单、性价比和灵活度高的特点。经实例分析证明, 利用该系统可实现在线连续采集语音信号并进行分析和处理。

应用前文所述的MATLAB 数据采集工具箱提供的命令函数和系统环境为Windows98 的计算机上的板载声卡进行简单数据采集。记录5s 的16 bit音频语音信号并回放, 采样频率设为11025 Hz。

fs=11025 %设置采样频率

y1=wavrecord( 5*fs, fs, „unit16‟) %进行无语音采集

plot( y1) %画出所采集到的信号的波形

y2=wavrecord( 5*fs, fs, „unit16‟) %进行语音采集

wavplay( y1, fs)

sound( y2, fs) %回放所采集的语音

图5-6是用MATLAB 的DAQ 工具箱中的命令函数的方法采集数据, 采样过程中传声器无语音输入;

图5-7是用创建声卡设备对象的方法采集数据, 采样过程中传声器有语音输入。

图5-6 传声器无语音输入

图5-7 传声器有语音输入


相关文章

  • 能源管理系统(EMS)方案
  • Contents 1 系统方案概述 ............................................................................... 2 1.1 数采终端(能源子站) . ... ...查看


  • 商业智能技术及应用
  • 商业智能技术及应用 第一章 商业智能 概述 第一章 商业智能概述 企业在生产经营中会产生无数的信息,如订单.库存.交易帐目.通话记录及客户资料等.这些信息蕴藏了丰富的经营理念和市场规律. 怎样有效地利用这些宝贵的信息增进对业务情况的了解,帮 ...查看


  • 基于数据仓库的决策支持系统的分析
  • 基于数据仓库的决策支持系统的分析 专业:信息管理与信息系统 班级:信管本科班 学号: 姓名: 日期:2015年6月30日 摘要:数据仓库的出现解决了Dss 应用的基础性问题一一数据管理, 即通过数据仓库将 数据库系统中的原始数据组织成适合决 ...查看


  • 供热智能控制系统
  • 供热智能控制系统 智能供热控制系统是北京博达兴创公司开发的换热站及公共建筑专用控制系统,系统能够实现换热站.公共建筑的自动化数据采集.计量.分析与控制,主要满足热力公司能源管理.换热站及建筑节能控制要求,达到提高供热服务质量,降低能源消耗的 ...查看


  • 智慧建筑能源管理系统方案-v1.0
  • 智 慧 建 筑 能 源 管 理 系 统 方 案 修订记录 一.概述 随着社会的发展,大型建筑在逐年增加,其能耗也在不断增大,能源与发展的矛盾日益突出. 未来几年内写字楼.公寓.饭店.会展中心等大型公共建筑会大幅度增加,而我国约90%以上的大 ...查看


  • XX市道路交通流量分析与预测系统
  • 目录 第1章 总体描述 ........................................................ 1 1.1 建设背景 ........................................ ...查看


  • 发电企业经济活动分析技术支持系统
  • 中国电力教育2007年管理论丛与教育研究专刊 发电企业经济活动分析技术支持系统 黄曙林*1 张栋峰1 梁 露2 (1.华北电力大学成人教育学院,北京 102206: 2.广西贵港供电局,广西 贵港 537100) 摘 要:本文基于发电企业的 ...查看


  • 信息管理系统专升本历年试题汇总
  • 信息管理系统专升本历年试题汇总 一.单项选择题 1.在管理信息系统的开发过程中,最重要的阶段是( A ). A.需求分析 B.系统设计 C.系统实施 D.运行维护 2.在系统评价报告中,不属于评价内容的是(C ). A.技术性能指标评价 B ...查看


  • 地理信息系统概论--知识点总结
  • 地理信息系统概论 第一章 导论 数据与信息的关系: 数据:是通过数字化或记录下来可以可以被鉴别的符号,不仅数字是数据,而且文字.符号.图象也是数据,数据本身没有意义: 信息:是对数据的解释.运用与解算,数据即使是经过处理以后的数据,只有经过 ...查看


热门内容