技术中心
 
 

基于声卡的LabVIEW数据采集与分析系统设计

   日期:2013-06-06    

目前市售的数据采集卡都包含了完整的数据采集电路和与计算机的接口电路,但其价格与性能基本成正比,一般比较昂贵。随着DSP(数字信号处理)技术走向成熟,PC声卡本身就成为一个优秀的数据采集系统,它同时具有A/D和D/A转换功能,不仅价格低廉,而且兼容性好、性能稳定、灵活通用,软件特别是驱动程序升级方便。ISA总线向PCI总线的过渡,解决了以往声卡与系统交换数据的瓶颈题目,同时也充分发挥了DSP芯片的性能。而且声卡用DMA(直接内存读取)方式传送数据,极大地降低了CPU占用率。一般声卡16位的A/D转换精度,比通常12位A/D卡的精度高,对于很多工程丈量和科学实验来说都是足够高的,其价格却比后者便宜得多。

假如利用声卡作为数据采集设备,可以组成一个低本钱高性能的数据采集与分析系统。当然,它只适合采集音频域的信号,即输进信号频率必须处于20~20000Hz的音频范围内。假如需要处理直流或缓变信号,则需要其他技术的配合。

1 LabVIEW简介

LabVIEW是美国NI公司具有革命性的图形化虚拟仪器开发环境,是业界领先的测试、丈量和控制系统的开发工具。它内置信号采集、丈量分析与数据显示功能,集开发、调试、运行于一体,不仅提供了几乎所有经典的信号处理函数和大量现代的高级信号分析工具,而且LabVIEW虚拟仪器程序(Virtual Instrument,简称VI)可以非常轻易的与各种数据采集硬件、以太网系统无缝集成,与各种主流的现场总线通讯以及与大多数通用数据库链接。 “软件就是仪器”反映了其虚拟仪器技术的本质特征[1]。

LabVIEW 7.0版本推出了Express技术,简化了测试丈量应用系统的开发进程,其灵活的交互式VI易与各种范围的I/O信号连接,用户只需点击鼠标配置应用系统,即可完成搭建工作并开始运行。通过简单地修改Express VI的配置,可以快速反复地修改应用程序以适应新的测试丈量需求。

2 声卡工作原理及性能指标

声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经过DSP音效芯片的处理,将该数字信号转换为模拟信号输出。声卡的基本工作流程为[2]:输进时,麦克风或线路输进(Line In)获取的音频信号通过A/D转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以PCM(脉冲编码调制)方式送到D/A转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(Line Out)送到音箱等设备转换为声波,人耳侦测到环境空气压力的改变,大脑将其解释为声音。

衡量声卡的技术指标包括复音数目、采样频率、采样位数(即量化精度)、声道数、信噪比(SNR)和总谐波失真(THD)等,主要介绍如下:

(1)复音数目 代表了声卡能够同时发出多少种声音。复音数越大,音色就越好,播放声音时可以听到的声部越多、越细腻。

(2)采样频率 每秒采集声音样本的数目。采样频率越高,记录的声音波形就越正确,保真度就越高,但采样数据量相应变大,要求的存储空间也越多。

(3)采样位数 将声音从模拟信号转化为数字信号的二进制位数(bit)。位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高。例如,16位声卡把音频信号的大小分为216=65536个量化等级来实施上述转换。

目前一般的声卡最高采样频率可达96KHz;采样位数可达16位甚至32位;声道数为2,即立体声双声道,可同时采集两路信号,需要时还可选用多路输进的高档声卡或配置多块声卡;每路输进信号的最高频率可达22.05 KHz,输出16位的数字音频信号,而16位数字系统的信噪比可达96dB。

3 系统功能设计

3.1 硬件实现

声卡一般有Line In和Mic In两个信号输进插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。若由Mic In输进,由于有前置放大器,轻易引进噪声且会导致信号过负荷,故推荐使用Line In,其噪声干扰小且动态特性良好。声卡丈量信号的引进应采用音频电缆或屏蔽电缆以降低噪声干扰。若输进信号电平高于声卡所规定的最大输进电平,则应在声卡输进插孔和被测信号之间配置一个衰减器,将被测信号衰减至不大于声卡最大答应输进电平。此外,将声卡的Line Out端口接到耳机上还可以实时的监听声音信号。

LabVIEW对声音采集的设置默认于其所处的操纵系统,本文使用的是最普通的声卡,对于高级的声卡采集信号时,要留意封闭如混响之类的一些殊效,避免影响丈量结果的真实性。

3.2 软件设计

根据VI结构化的特征,把整个系统分为数据采集和信号分析两个模块,以友好的图形界面与用户进行交互。

3.2.1 数据采集

数据采集模块根据用户设置的声音格式从声卡获得数据。采集到的数据及其频谱特性以直观的图形方式呈现于用户眼前。该模块还提供保存所有或部分数据以及转到信号分析模块的功能。由于PCM波形音频格式输出的信号质量最好,所以本文使用该格式对信号进行数字化处理、存盘和重载。数据采集过程分为三步:①初始化/配置声卡;②采样;③开释声卡。图1为数据存盘部分框图程序。

 

 

图1 数据存盘框图程序

LabVIEW把声卡的声道分为mono 8-bit(单声道8位)、mono 16-bit(单声道16位)、stereo 8-bit(立体声8位)和stereo 16-bit(立体声16位)。若用单声道采样,左右声道信号都相同,而且幅值为原信号的1/2;用立体声采样,左右声道互不干扰,可以采集两路不同的信号,而且幅值与原信号相同。声卡的采样频率分为8000Hz、11025Hz、22050Hz和44100Hz,应根据具体情况采用合适的频率。

本文根据主流声卡的性能指标,默认设置采样频率为44.1KHz,采样位数为16位,采样方式为单声道,这样采样的波形稳定,而且干扰小。声卡对外部信号的采样在起始部分会有几十个不稳定的数据,所以无特殊要求时忽略了前100个数据。图2所示局部用户界面中的波形是通过麦克风实时采集的女士高音,其效果已经满足了普通丈量要求,在采集暂停和终止时可以通过LabVIEW波形显示器(Waveform Graph)自带的功能对波形进行观察和丈量,对稳定的周期信号还可以直接正确的读出幅值和频率。

 

 

图2 数据采集和谱分析预览部分的用户界面

3.2.2 信号分析

信号分析模块从采集模块获得数据,或者从文件重载以前采集并存盘的数据;对全部数据进行时域和频域分析并显示相应的时域图和频域图;重新做增强的数据保存工作,即保存所选时段数据的谱信息,以便作进一步的分析。用户还可以对数据进行分段处理,甚至对该段数据按频段进行分析。

LabVIEW完全图形化的编程环境和数据流的驱动方式使用户可以非常直观的观察到程序代码的并行执行。该系统充分利用LabVIEW的多线程(Multithreading)技术,为整个系统中的用户接口、数据采集、信号分析以及文件读写等多个操纵自动分配优先级,让它们相互独立运行,避免了单线程系统中的调用阻塞,且不会浪费CPU时间[3]。例如,用户接口操纵被分配在一个特定的线程并被赋予较低的优先级,移动面板窗口这样的事件不会影响数据采集等对时间要求非常严格的操纵,从而保证了系统的可靠性。

LabVIEW还有自动错误处理功能[1],利用其函数节点的error in和error out端口可在程序运行中某一个函数发生错误时自动挂起,弹出错误信息对话框,高亮显示出错函数的图标并将出错信息依次向后传递,后续函数将不再进行任何操纵,直到程序最后做出相应的错误处理。

图3为信号分析模块的框图程序。该VI主要使用了LabVIEW中While Loop结构来实现整个程序的信号采集、存储和运行退出等功能,并且应用了Sound Input和Signal Processing模板中的节点完成信号采集、时域图实时显示、加窗和功率谱分析等操纵。在信号分析之前加进了Butterworth低通滤波器,对原始信号进行平滑滤波处理以消除高次谐波失真和噪声干扰,进步信噪比。和模拟滤波器相比,该数字滤波器不需要精度组件,不会因温度、湿度的变化产生误差。

 

 

图3 信号分析模块的局部框图程序

4 结 语

本文采用PC技术、DSP技术和LabVIEW多线程技术,实现了对音频信号实时、高保真的采集与处理。实践证实,整个系统性价比高,通用性强,界面友好,数据存储方便,性能稳定可靠,其个别性能指标甚至优于市售数据采集板卡,而价格却不到后者的十分之一。在PC上配置多块声卡并行工作,完全可以构成一个多通道数据采集系统,满足特定应用范围内数据采集的需要。假如采用笔记本电脑则无需添加任何硬件就可以构成便携式丈量系统。

在声卡性能越来越好,本钱越来越低,普及率越来越高的情况下,这种方法值得在工程丈量应用及相关实验室中进一步推广和扩充。例如,对环境噪声进行实时监测,采集语音信号并进行分析和处理来实现语音识别,还可以实现示波器、信号发生器及万用表等设备在音频信号范围内的基本功能,其应用远景较为广阔。

 
标签: LabVIEW 数据采集
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢