欢迎您访问长沙鹏翔电子科技有限公司官方网站

技术与应用

PCIE高速声发射仪/千兆网络声发射仪

技术与应用

基于声卡的信号采集技术

发布日期:2017-05-27 16:30    浏览次数:

 1硬件设计

    基于声卡的信号采集技术是以声卡为数据采集卡,其系统结构如图1所示。各种落在音频范围内的被测信号通过相应的传感器转化成电信号,经信号调理后送至计算机的声卡,由声卡实现信号采集,并通过系统软件对信号进行显示、分析和处理。

1.1传感器
    首先必须明确被测信号的类型。如对振动信号,一般采用加速度计和速度传感器来采集振动的加速度和速度信号,然后再根据被测信号的具体情况来选择合适的传感器型号。
1.2信号调理电路
    由于传感器输出信号一般只有十几mV,在信号进入声卡之前还必须进行信号调理,包括信号的放大、隔离、滤波和线性化处理,使之能够被声卡正确地识别。如果以声卡的Line in(线路输入)输入信号时,其输入电压应为一1~+1 V.
2软件设计
    系统软件的功能是把声卡采集到的信号读出来,供后续分析、处理。因此,软件设计的核心就是对声卡编程。对测控系统主要采用的Windows平台而言,要实现声卡的控制,最简单的办法就是使用MCI.
2.1嬲
    McI(Media Control Interface)是Windows的多媒体控制接口,它提供了一组与设备无关的控制命令,是一种访问多媒体设备的高层次方法。但正是因为属于高层次的方法,所以其灵活性不足。利用MCI控制声卡采集数据时,对采集数据的访问不能在采集过程中进行,而只能在采集完毕后通过读取波表文件的方式来实现,显然这会带来实时性问题。为此,需要使用底层音频函数。
2.2底层音频函数
    Windows的底层音频文件对声卡提供了最具灵活性的操作函数,它允许在采样过程中随机访问内存中的采样数据,克服了MCI的实时性问题。Windows将这部分函数封装在动态连接库winmm.dll中,函数声明在头文件mmsystem.h中。表1列出部分常用函数。
2.3软件实现
目前,应用在Windows平台上的信号采集软件开发工具主要有以下3类:
2.3.1普通的面向对象的Windows软件开发工具
(1)普通的面向对象的Windows软件开发工具,比较有代表性的有Microsoft的Visual C++、Visual Basic及.net,Borland公司的c 4-+Builder.Delphi等。这类工具的功能强大,可通过MCI或底层音频函数来实现声卡的信号采集。但是,作为普通的软件开发工具,它们并没提供测控方面的专业控件或工具,故其开发效率并不高。

2.3.2 M爿lLAB
    MAqZAB带有数据采集工具箱,它提供了7种硬件接口,其中winsound支持声卡信号采集,其基本流程为:首先为声卡建立一个设备对象,启动并触发声卡设备,然后利用声卡设备事件的调用函数,从数据采集引擎中提取或查看数据,在信号采集结束后停止并删除声卡设备,最后从MATLAB Workspace中清除设备变量。其核心函数如下:

    采用这种方法可以非常简便地实现信号采集,而且还可依靠MATLAB对信号作进一步的分析和处理。例如,可用信号处理工具箱对信号进行加窗、肿变换等。可是,由于MATLAB主要专注于科学计算和工程仿真,其图形界面(GUI)功能还相当有限,因此对人机界面要求较高的信号采集系统,它不是很好的选择。
2.3.3虚拟仪器软件
    这类开发工具的代表是LabWindows/cvI和LabVIEW.
    LabWindows/cvI是面向计算机测控领域的软件开发平台,它以ANSI C为核心,在数据采集、分析和显示方面有许多高效、灵活的函数库可供使用。因此,在使用LabWindows/cvI对声卡编程时,与普通的面向对象的软件开发工具类似,可采用MCI或底层音频函数来实现声卡信号采集。由于LabWindows/CⅥ具有很多界面控件和专业函数库,因此其开发效率显然比普通软件开发工具高。
    LabVIEW是一种基于G语言的图形化虚拟仪器开发工具,主要用于数据的采集、分析、处理和表达,总线接口、VXI仪器以及GPIB与串口仪器的驱动程序编制和虚拟仪器驱动。它与c、Pascal等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。与传统编程语言最大的区别是IabVIEW使用图形语言(即各种图标、图形符号、连线等),以框图的形式编写程序。采用这种图形化的编程方式,再加上大量专业控件(Controls)和函数(Functions)的提供,使之具有极高的编程效率和优秀的编程效果。
    在最新版IabVIEW 8.20的Graphics&Sound模块下,提供了声卡的相关vIs,如SI Config、SI Start、SI Read、SI Stop等,借此即可实现对声卡的控制。其基本流程为设置一采集一读数一停止。当设定好声卡的设备ID,音频格式、采样模式和采样点数后,启动声卡开始采集,获取的数据通过DMA方式存至指定缓冲区,然后一路用于波形显示,另~路则用于文件存储。当按下停止按钮或出现异常错误时,声卡停止采集,清空采集数据,并释放相关资源。程序运行界面如图2所示。

    由上可知,采用LabVlEW进行声卡信号采集程序设计时,由于具有声卡VIs,避免了繁琐的声卡编程部分(MCI或底层音频函数),使整个设计过程异常简单。而且同MATLAB类似,LabVIEW也提供了相应的信号分析模块,可轻松实现信号的各种分析和处理。
3结束语
    基于声卡的,尤其是声卡与虚拟仪器相结合的信号采集技术不仅降低系统成本,而且大大简化了硬、软件设计过程。该技术具有广阔的应用前景,目前已推出了很多成熟的产品。而且,由于声卡有输入设备,除用于信号采集外,还可用于信号发生和输出控制,已被广泛应用在科学研究、工业测控及医疗等领域。
参考文献:
[1]徐云蜂,张世庆,张西良,等.基于声卡的数据采集系统设计.机械设计与制造,2006(4):46—47.
[2]任驹,郑建邦,刘德峰.基于声卡和MATLAB的太阳电池伏安特性自动测试系统.传感技术学报,2006,19(2):447—449.
[3]周林,殷侠.数据采集与分析技术.西安:西安电子科技大学出版社,2(X)5.
[4] 惠俊军,王志贤.基于LabWindows/CVI的虚拟仪器的开发.机械工程师,2004(12):30—31.
[5]周爱军,马海瑞.基于声卡的LabVIEW数据采集与分析系统设计.微计算机信息,2005,21(15):108—110.

 
作者简介:杨大志(19r76一),硕士,主要研究方向为仪器科学与技术。