工控网首页
>

应用设计

>

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

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

2005/3/31 12:01:00
摘 要:利用声卡DSP技术和LabVIEW多线程技术,提出了一种基于声卡的数据采集与分析的廉价方案,具有实现简单、界面友好、性能稳定可靠等诸多优点。在LabVIEW环境中实现了音频信号的采集分析及数据存盘重载。PC上配置多块声卡即可构成实时、高信噪比的多通道数据采集系统。可以推广到语音识别、环境噪声监测和实验室测量等多种领域,应用前景广阔。 关键词:声卡;数据采集;信号分析;LabVIEW;多线程 Sound card based Data Acquisition and Analysis System in LabVIEW MA Hai-rui1,ZHOU Ai-jun2 (1. Postgraduate Team 2 of Dalian Naval Academy, Dalian 116018, China; 2. Dept. of Equip System and Automation, Dalian Naval Academy, Dalian 116018, China) Abstract:Based on DSP technology and LabVIEW multithreading, this paper brings forward a low price solution of sound card based data acquisition and analysis system, with its advantages of easy implementation, friendly interface and steady performance. In the range of voice frequency,data saving and overloading is successful in LabVIEW. If more sound cards configured in a PC, it’s feasible to build a multi-channel real-time DAQ system with high SNR. With broad application prospect, this solution can be extended to the field of speech recognition, ambient noise monitoring and laboratory measurement etc. Key words:sound card;data acquisition;signal analysis;LabVIEW;Multithreading 目前市售的数据采集卡都包含了完整的数据采集电路和与计算机的接口电路,但其价格与性能基本成正比,一般比较昂贵。随着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低通滤波器,对原始信号进行平滑滤波处理以消除高次谐波失真和噪声干扰,提高信噪比。和模拟滤波器相比,该数字滤波器不需要精度组件,不会因温度、湿度的<
投诉建议

提交

查看更多评论