labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)

摘要:本文描述的是以LABVIEW为载体,探索的是利用这一软件来实现其对声卡所进行的数据采集以及分析,操作过程较为简单,而且其性价比相对来说比较高。LabVIEW可以很轻松的做到模拟的功能,就其实用性来说,还是相当可观的。文中对比较廉价的笔记本声卡进行了数据的采集,利用LabVIEW软件实现这一操作.并且在该软件环境中做到了对声音信号的采集,分析以及数据的存储,可见其应用的前景还是较为广阔的。

关键词:数据采集,滤波,频谱分析

The sound card data acquisition and testing system based on LabVIEW

Abstract:In this paper, LabVIEW is discussed as the carrier,to explor the use of this software for data acquisition and analysis conducted by its sound, I think it’s relatively simple to practice this idea, andiits cost is relatively low. Using this software can easily be simulated functionality for its practicality, it is still considerable. The paper is just relatively collecting inexpensive notebook sound data, using LabVIEW software to achieve this operation. And do store the sound signal acquisition, analysis and data in the software environment, we see the prospect of its application still more vast.

Keywords: data acquisition,filtering,frequency analysis

1 引言

现如今市场销售的数据采集卡均已经包含了完整的数据采集电路以及与计算机的接口电路,但是它的价格和其自身的性能一般都是成正比的,所以一般都比较昂贵。但是DSP技术,也就是数字信号处理的能力正在向着一个更高的空间冲击,电脑声卡也已经慢慢的作为一个较为成熟的数据采集系统被人们所承认,并且其依旧保留着A/D和D/A相互转换的功能,价格便宜,兼容性好、性能稳定、灵活通用,特别是驱动程序升级十分方便。我们所知道的系统互换数据与声卡之间的一系列较为头疼的问题,由于出现了ISA总线朝着PCI总线的发展,很完美的解决了这一问题,与此同时DSP芯片的性能也得到了充分的发挥。它的声卡用DMA,也就是直接内存读取的方式进行数据的传送,这一方式让CPU能够好好地歇歇了。一般来说,我们印象中的声卡的类型都是16位的A/D转换精度,这样一来,与12位A/D卡的精度相比的话就高了许多,对于我们所了解到的工程测量或者是一般的实验来说都是比较高的,所以已经可以很好地解决问题了,而且其价格比后者便宜很多。

因此目前来说想组成一个性价比较高的数据采集与分析系统,就可以利用声卡作为数据采集设备。当然这也不是一定意义上就可以的,输入信号的频率要处于20Hz~20000Hz范围内,因为只有这一范围的信号才是能够作为采集的音频域的信号,如果你想要对缓变信号或者是直流的信号进行处理,那么其他及输的配合就显得必不可少了。

通过上述的简单的介绍,可以构想出一种廉价的声卡数据采集与分析的方案,再加上数字信号处理技术以及LabVIEW所拥有的多线程技术的支持,而且操作简单、界面简洁明了、性能可靠,着诸多的优点让这种想法有了实现的可能性。在虚拟仪器的环境中可以对声音信号进行采集,分析以及数据的存储。PC上只要有了多块的声卡,那么一个高信噪比,实时的数据采集系统就组成了。这一点甚至可以拓展到环境噪声的管理,对不同的语音进行识别以及实验室用的测量等很多的区域,就其应用的多样性和前景而言,相当不错。

VI(虚拟测量仪器)概念的出现,仿佛一场地震般,几乎是瞬间就撼动了传统的测量仪器的地位,因为虚拟仪器测量使得仪器领域多了两个生力军的加入,即PC以及网络技术,其与仪器技术的结合堪称是“软件仪器”的开山鼻祖。如图1.1所示为虚拟仪器构成方式

(1) 插卡型: 利用计算机内的数据采集卡与相应的软件相结合,比如LabVIEW,充分的凭借其自身的优势通过利用各种各样的控件组成不同的仪器。

(2) 并行口式: 把仪器的硬件全部“装”进一个采集盒内,属于目前较为新颖的可以与计算机并口进行连接的测试装置。

(3) GPIB

总线方式: 传统的操作方式十分繁复,而且操作难度不小,但是利用GPIB技术就可以通过计算机从而对仪器进行控制和操作,形成自动测量系统。

(4) VXI总线方式: 有较为稳定的电源,并且有相当不错的冷却能力和颇为严禁的RFI/EMI来进行屏蔽。

(5) PXI总线方式: 以插卡型技术为原型,增加较为成熟的模型技术所形成的的技术方式,不仅多了多板的同步触发总线技术还增加了多板发总线,使得相邻的模板之间可以完成高速通讯。

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(1)

图1.1 虚拟仪器的构成方式

虚拟仪器与传统的测量技术相比有着无与伦比的优势。首先它以PC技术为跳板,虚拟仪器技术应运而生。可以说虚拟仪器技术不仅沿袭了PC技术的简单直接的优点,而且还有着自己的创新,相比于传统的仪器技术而言,它的如下优势也是为人们所津津乐道的:例如其性能特别卓越的处理器以及文件I/O,真正的做到了“分心二用”,不仅可以使数据快速的被录入磁盘,而且还可以同时进行比较复杂的运算以及分析。除此之外,随着互联网的快速发展,越来越先进的网络技术更是使得虚拟仪器技术如虎添翼,让其表现出了令人刮目相看的能力。

虽然就目前的技术而言,受限制的方面还是比较多的,但是NI的软硬件工具却让我们眼前一亮。这是由于NI软件自身所具有的多变以及创新的特点,当我们还在为以前那种死板笨重的系统而唉声叹气的时候,NI则只需要轻松的为测量所需的硬件或者计算机系统进行一次更新,就能以最少的投资和几乎不必要的软件更新来获得一个全新的系统,这可以说是一场里程碑式的改革。如此之高的性价比简直难以想象,还可以把它配到现有的测量设备中,加快产品进入市场的同时也大幅度地缩减了成本,一举两得。

NI的强大不止上述的那些方面,在程序驱动以及软件应用上,其超高效率的软件框架促使它能与PC、仪器和不同的通信工程联系到一起,使得两种技术能够很好地融合到一起。本着人性化的设计理念,NI软件为使用者提供了几乎是傻瓜式的操作,异常方便,同时还有各种各样的功能以及强大的多样性和灵活性,可以做到“足不出户而便知天下事”,轻松自如的进行创建,发布,自我维护,甚至是在极低成本下的提高其性能从而进行测量以及控制。可以做出一套最为完美的方案。

虚拟仪器所拥有的技术就是集众多功能于一身,也就是所谓的集成化的概念。人们总是希望一个软件的集成度很高,这也就使得它的功能越来越多,开发越来越复杂,所以设计师就需要将多个不同功能的测量设备集中到一起来做成一个较为完善的测试,但是想要完成这一过程就要耗费很大的人力物力,得不偿失。NI软件也意识到了这一点,因此它为平台的所有的I/O设备都是提供了一个规范化,也就是模式化的标准接口,这一举措使得上述的头疼问题迎刃而解,利用这一软件将多个不同的测量设备集成到同一个系统里面,不仅大量的减少了人力物力,也大幅的减少了完成这一任务所需要的时间。

2 系统设计方案

对声卡进行数据采集以及随后的编辑处理和信号分析的总体框图如图2.1所示

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(2)

图2.1 总体框图

由图可知,数据采集中需要对前面板进行创建与设计,虚拟仪器的前面板可以给人以直观的印象,它的设计有着举足轻重的作用。因为前面板是面向整个用户群体的,所以其设计的美观程度会大大地影响到其使用效果。

前面板主要被用来输入数据或者是用来进行观察的。由于是图形化编程语言,因此和实际仪器的面板有着异曲同工之妙。包括图像,时间显示,按钮,指示灯等等,那么这些控件的合理安放就显得颇为重要了,既要美观还要简明扼要的突出设计主题。

系统主页面里面包括了信号参数设置以及信号分析,那么完成了前面板的创建工作以后,按Ctrl E就可以切换到程序框图的窗口,然后我们就可以做到“予取予用”,即找到相应的节点并把它们安置进你的框图程序里面,合理的摆放顺序以及摆放方式会让别人觉得你是一个有条不紊的人。最后用不同的数据线将图标连接起来就大功告成了。LabVIEW作为图形化编程语言,它的VI图标,也就是所谓的连接端口就像是一个图形参数。图标或者连接的时候我们可以认为这个仪器是最高级的程序,当然也可以认为它是子程序或者别的程序。

3 硬件实现

声音传感器信号通过Line In和Mic In连接到声卡。Mic In作为输入端口,由于前置放大器的存在,会有噪声出现从而会造成信号负荷,相比于这个接口,Line In的表现就显得好了许多,虽然也会出现噪声,但是造成的干扰要小得多,而且它还具有很好地动态特性。利用音频电缆来引进声卡的测量信号,那么也就有了用来降低噪声干扰的屏蔽电缆。在声卡的输入端和将要被检测的信号之间会装有一个衰减器,每当输入信号的电平比规定的能够容忍的最大的输入电平要高的时候,那么衰减器就会起作用,它会将被检测的信号进行衰减,让其符合低于最大的容忍电平这一条件。我们将Line Out连到耳机上用来有效的监测音频信号。

我们一般用来采集信号的声卡都是一些较为普通的声卡,由于实验中所使用的LabVIEW软件采集声音时的所有的设置都是定位于操作系统,所以要是对一些较为高级的声卡进行数据采集的时候,一定要特别注意关闭一下类似于混响一类的特效,避免影响测量结果的真实性。

3.1 声卡的基本结构不同的连接器和电子器件构成了声卡。其中连接器主要是用来对输出输入信号进行连接的,而电子器件则主要是被用来完成各种不同的特定功能。声卡主要包括了如下的组成部分1) DSP(数字信号处理器)

DSP(数字信号处理)芯片可以对相关的声音命令,压缩解压缩程序和一些特定的声效以及MODEM进行处理,主要是通过编程实现这些不同的功能。这样一来,不仅加快了软件的运行速度,而且使得CPU脱离了苦海。不过DSP芯片一般只存在于较为高档的声卡里面。

2) 声音控制芯片

充分利用模数转换器,将输入设备中得到的声波模拟信号转换成为一连串的数字信号,进行采样并且存到电脑里面。当重新播放的时候,这些信号就会通过数模转换器被重新还原为模拟的波形,然后被放大器放大以后传至扬声器进行发声。

3) FM合成芯片

主要被用来产生合成的声音,一般只有较为低挡的声卡才会使用,主要是为了降低成本。

4) 波形合成表

使用波表方式可以获得一个还原度相当高的的效果,一般只有中高档的声卡会使用。

5) 跳线

跳线是用来设置声卡的硬件设备,包括CD-ROM的I/O地址、声卡的I/O地址的设置。

6) I/O口地址

I/O地址是唯一的,也就是说每个设备都必须使用特定的那一个。通常计算机连接的外设都会有一个I/O地址。声卡会有一个出厂的缺省I/O地址设置,范围一般情况下是220H~260H。

7) DMA通道

主要是利用它和RAM之间的声音信号数据的传递的时候,不需要CPU的控制,所以当我们录制或者播放数字信号的时候,就提高了CPU的利用率和数据的传输速率。16位声卡一般情况下有两个DMA通道,分别用于8位音频和16位音频的数据传输。

3.2 声卡工作原理

利用ADC(模数转换器),将输入设备中得到的声波模拟信号转换成为一连串的数字信号,进行采样并且存到电脑中。当我们重新播放的时候,这些信号就会通过数模转换器被重新还原为模拟的波形,然后被放大器放大以后传至扬声器进行发声。所以称这种技术为PCM,也就是脉冲编码调制技术。如图3.2为声卡工作流程图

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(3)

图3.2 声卡工作图

3.3 声卡的作用

通过声卡及相应的驱动程序的控制,采集音频信号,压缩后存放在计算机系统的内存或硬盘中。激光盘压缩的数字化声音文件还原成高质量的声音信号,放大后通过扬声器放出。可以利用一些相应的技术对声音文件进行加工,以达到某一特定的音频效果。音量用以对各种音源进行组合,实现混响器的功能。音频识别功能,让操作者用口令指挥计算机工作。

3.3.1 录制及播放

将不同外部声源发出的声音录入声卡,利用声卡,将它们转为数字文件并存储,以方便后续的编辑和相应的操作。我们亦可将数字文件还原成音频信号,通过扬声器进行回放,例如对电视剧电影进行配音,播放VCD、DVD、MP3等。值得注意的是,在录制和回放的时候,不光要进行A/D和D/A转换,同时还要进行压缩和解压的处理。

3.3.2 相应处理

我们可以加入类似于倒放,回声,淡入淡出等不同的特效处理从而达到对各种不同声音音量进行混合语控制

3.3.3 MIDI接口

利用MIDI接口和波表合成,可以记录和回放各种几乎可以以假乱真的乐器原声。主要是用于数据采集和信号处理。

3.4 声卡的技术参数3.4.1 采样位数

采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。采样位数用来表征声卡采集数据或者播放文件时的准确程度,同时也反映出了数字信号与模拟信号相比的准备程度。事实表明,数值越大,那么录制或者回放时的声音准确程度就越高,也就说明了采样位数实际上就是一种处理声音的度量。对于相同的一段音频信号来说,不同的声卡所造成的的采样效果也是有差异的。

3.4.2 采样频率

单位时间内对一段音频信号所做的采样的次数就被称为采样频率。由于采样位数数值越大,声音的准确度越高,因此较大的采样位数导致了较高的采样频率,所以声音的还原度也就越高。采样频率大体分为22.05Khz,44.1Khz,48Khz三种,那么自然越高的频率就能享受到越好的音质。但是超高的采样频率其实并没有很好地方法来分辨,因此高于48Khz的采样频率对家用电脑来说并没有多大的价值。

3.4.3 缓冲区

由于声卡的A/D和D/A任务与一般的采集卡相比都是连续的,那么为了缓解这一压力,声卡缓冲区的设计就显得颇为重要了。

声卡A/D和D/A结束后,CPU并非每一次都会去响应它的中断,这个时候缓冲区就派上了用场。以音频输入的A/D变换作为例子,DSP芯片在每一次转换将要完成的时候,都会将数据存储在缓冲区,当缓冲区已经无法再被装入数据的时候,才会向CPU发出中断请求,这个时候CPU就会发挥它“清洁工”的作用,将所有缓冲区内的数据一次性的移走。这样一来,不但不会影响A/D变换的连续性,而且PC总线的数据传输速率将被大幅度的提高,读取缓冲区数据所用的时间也将被大幅的缩短。不仅如此,缓冲区的存在也很好的保护了CPU,降低了它响应的频率,所以说对系统的资源来说,也做到了合理利用。同理,D/A变换也差不多。

对于X86这一个系列的处理器而言,在Windows系统默认的CPU工作模式下,声卡均是使用缓冲长度的默认值,也就是8192字节。由于想要对内存进行一定的访问的时候都是按照页进行的,而对于内存而言,它总是被8K单位长度切割成很多很多页。这样一来,CPU一般情况下就不会被别的事情所干扰,而且速度十分快并且一直工作在8K的内存缓冲区。根据经验来说,当设置为8K或者它的整数倍大小的内存缓冲区的时候,就可以做到声卡与CPU的和谐相处,也就是保证了其协调工作。

4 软件设计4.1 LabVIEW的特点4.1.1 图形化编程

LabVIEW与VC,VC VB这类编程语言相比,有一个重要的不同点:那就是使用图形化的编程语言编写程序,而不是用文本语言编写程序,因此产生的程序是框图的形式,用框图代替了传统的程序代码。如图4.1所示为获取声音时的程序框图

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(4)

图4.1 LabVIEW程序框图

4.1.2 模块化设计

虽然LabVIEW与其它基本的PC编程语言相比有很大的优势,但是图形化编程这个优势反而成了它的限制,所以它也有其它通用编程系统的特点。LABVIEW有一个函数库,可以完成任何庞大的编程任务,包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等。 LABVIEW也继承了传统的调试工具以便于程序的调试。但是LABVIEW也有其独特的一套动态连续跟踪方式,顾名思义,可以动态地,连续的观察程序中的数据变化情况,这一特点与其他语言相比,显得更为方便有效。

4.1.3 高效率

该软件用许多的小模块来构建基本节点和函数,并且马上就可以使用。另外,虚拟仪器模块也就是VI除了作为子VI让其他程序模块使用之外,还可以作为独立程序运行。

4.2 数据采集

数据采集分为三个部分,声音录制,声音播放,声音保存。从前面板中用到的图形模块就可以知道,Chart模块就在循环里面,并且如果你得到一个数据点的时候马上就会显示。在X Scale、Y Scale中分别设置Auto Scale X和Loose Fit使得波形随着X 而变。在Chart History Length中设置为32768保证波形准确显示。

后面板程序框图中用到LOOP控件 While Loop、For Loop等循环使得程序更加实用,控制比较方便。在声音格式中设置成采样频率、采样位数或者音质等,从而就可以使得到的数据显得比较清晰。

由用户自己所使用的声音格式反馈给数据采集模块,从而从声卡里面得到数据。由于LabVIEW的图形化编程的特点,因此数据和它的频谱特性均会以图形的方式直观的被我们所接受,而且这个模块还有一个十分不错的功能,那就是可以保存部分的数据甚至于全部的数据并且把它转移到信号分析的模块。我们可以挑选输出质量比较好的音频格式进行传输,这样的话就可以保证良好的数字化处理以及存储等等。数据采集分为:1.配置声卡 2.采样 3.释放声卡。

4.2.1 声卡配置

声卡是音频信号输出的一个载体,但是一般情况下都不在较为正常的工作状态下。所以一开始的时候要使用耳机和MIC检查声卡功能,尤其是录音功能是否能够正常工作。如果不能够正常工作,就需要检查声卡的设置。首先,要配置所需功能,其次要保证本来已经配置正常的功能不处于静音状态。下面是对Line In和Mic In的检查和设置的介绍。

① 打开右下角任务栏的扬声器图标(如果没有,打开控制面板里的“声音与音频设备”图标,然后将音量图标放入任务栏,之后一个喇叭形状的图标就会出现在电脑屏幕右下角的任务栏上)

② 双击小喇叭后,可以看到一排选项,选择声音的选项,然后把麦克风选项上静音的勾去掉

③ 打开高级控制,如图4.2

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(5)

图4.2音量的高级控制设置

④ 打开麦克风控制栏里面的高级控制,在Mic Boost上打勾,用以加强音量。如图4.3

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(6)

图4.3麦克风高级控制设置

⑤ 窗口左上角有个“选项”,点击,然后点 “属性”,这时可看到窗口,如图4.4

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(7)

图4.4录音控制选项设置

⑥ 在混音器控制栏的下边有个“调节音量”的选项,在它的下面有三个选项,1播放 2录音 3其他,点击“录音”,然后在下边的选项里面找到麦克风,即Mic。立体声输入选项,即Stereo Mixer,并且打勾,如图4.5所示

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(8)

图4.5录音属性设置

⑦ 在另外一个窗口里面,Stereo Mixer和Mic两个选项也在里面,在立体声输入选项的“选择”上打上勾,然后所有音量开到最大,关闭该窗口,剩下的就是用麦克风试试了。如图4.6

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(9)

图4.6麦克风选择

2) 硬件连接

一般有两种比较常见的连接线:①一头为3.5mm插孔,另外一头为一个鳄鱼夹②两头均为3.5mm插孔的音频连接线。

如果用第二种连接线来测试声卡的频率响应特性,那么就将声卡的Line In和Line Out连接起来,组成一个闭合回路。但是在连接的时候一定要注意SPK Out和Mic In这两个不同的连接口,别把它们当作了输入输出端口。如果用第一种连接线来测试输入信号,那么就用它把信号源连到输入端口,如果测试输出信号,那么就连到输出端口。

4.2.2 采样

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(10)

图4.7数据采集的前面板

虽然设计的数据采集前面板较为简单,但是包括了大部分的功能,采样模式可以选择连续采样或者是有限采样,采样频率可以根据自己的需求进行调节。还有声音格式的设置,默认设置下采样率为22050S/s,通道数为2,每采样比特数通常为16。采集到的信号的横坐标为时间,纵坐标为其幅值电压,下方为录音文件的路径选择。如图4.7所示为数据采集前面板,下方的图标为数据采集的后面板,对前面板所需的控件双击鼠标左键就可在后面板中找到对应的控件。

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(11)

数据录制过程中用到声卡输入控件SI Config、SI Start、SI Read、SI Stop等。声音采集的框图程序如图4.8所示。

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(12)

图4.8声音采集框图程序

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(13)

图4.9 SI Config控件

1) SI Config是对声卡初始化的设置。有采样位数、频率、缓冲区大小,位数有8位、16位,频率有44.1kHz、22.05kHz、11.025kHz和8kHz,缓冲区大小设为8192B。如图4.9

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(14)

图4.10 SI Start控件

2) SI Start控件控制程序运行对采样通道进行选择如选择输入/输出设备0。如图4.10

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(15)

图4.11SI Read控件

3) SI Read 是使输入设备开始工作读取从SI Config进入的数据,并进行数据传输,进行下面操作。如图4.11

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(16)

图4.12 SI Stop控件

4) 在程序运行结束时有SI Stop判断程序是否继续运行,以进行下面操作。如图4.12

图4.13是保存局部框图程序,用到了File Wave、File、Bulid path控件。

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(17)

图4.13保存局部框图程序

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(18)

图4.14 File Wave控件

1) File Wave控件是声卡输入控件,保存采集到的数据并以“.Wav”格式保存。所得文件能通过Snd Read Wave File VI 读出。

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(19)

图4.15 打开/创建/替换文件控件

2) 对话方块能叙述对一个文件或目录的路径。使用这一个对话方块选择现有的文件并且为一个新的文件或目录选择位置和名字。

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(20)

图4.16 创建路径控件

3) 这是建立通道的控件,是重新创立一个通道通过已经存在的或关联的通道。

4.2.3 释放声卡

播放局部框图程序通过SO Write写数据给输出设备,如果输出设备正在工作就会将数据暂存缓冲区,如果输出设备处于暂停模式,直到SO Start开始工作为止。由于LabVIEW的特殊性,所以声卡声道被分为单声道和立体声道,均有8位和16位。使用单声道进行采样的时候,由于左右声道的信号时一致的,所以幅值仅为原有信号的1/2。使用立体声进行采样的时候,同样的,左右声道之间并不会相互发生干扰,因此可以采集两个不同的信号,而且其幅值与原信号一模一样。

一般情况下PC声卡的采样频率为44.1Khz,采样位数为16位,单声道采样,这样的好处不言而喻,稳定的波形以及较小的干扰会大大的简化实验难度。对于外部信号而言,声卡在开始的时候会有很多的不够稳定的数据,所以一般会忽略前100个数据。其实它的效果已经满足了一般测量的需求,在暂停或者停止的时候可以利用LabVIEW自带的功能对那些波形进行详细的观察和测量,对于那些比较稳定的信号就可以直接记录幅值和频率了。采集完数据后,点Play可以播放刚才的采集到的声音,也可以将刚才采集到的声音保存为“.Wav”文件,这样可以保存采集到的数据。

信号分析设计

我所设计的声卡数据采集与测试系统VI程序的信号分析模块包括了:1.滤波后的波形 2.幅度谱/相位谱 3.功率谱

滤波器设计

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(21)

图4.17 滤波前面板

如图所示,横坐标为时间,纵坐标为幅值,也就是所谓的伏特的数量级。还有一系列的滤波参数的设置,包括滤波器的选择,阶数的选择,高低截止频率的选择,这些都是根据用户实验的需要自行设置。如图4.17所示,为滤波后的波形模块

幅度谱/相位谱设计

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(22)

图4.18 幅度谱/相位谱前面板

从图中我们可以看到,幅度谱和相位谱都是频率域幅值之间的关系。所以横坐标为频率,纵坐标为幅度。上方的选项里面有平均模式,加权模式以及平均数目的选择,也是根据用户需要自行设置。如图4.18所示为幅度谱/相位谱的前面板

功率谱的设计

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(23)

图4.19 功率谱前面板

如图所示,横坐标依旧为频率,纵坐标为幅值,表明功率谱是频率和幅值之间的曲线关系。如图4.19所示为功率谱的前面板

如图4.20为框图程序,为数据采集及其信号分析前面板所构成的程序框图

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(24)

图4.20框图程序

5 程序运行及结果分析

LabVIEW里面的While Loop可以对你所设计的程序进行一系列的音频信号的采集,运行,编辑,存储重载,包括退出等,VI所使用的就是这一结构。与此同时,这一结构也得有Signal Processing和Sound Input这些结构中的节点的配合,从而能够顺利的完成时域图的显示,不同的信号的采集与编辑,包括频谱的分析等任务。利用低通滤波器,对原始信号进行滤波,消除噪音干扰,提高采集精度。

接下来就需要信号分析模块出场了,它从上述的采集中得到数据,还可以在文件重新载入之前采集并且获得已经被存储道硬盘的数据。在对这些数据进行分析和处理,也就是所谓的时域和频域,然后就会得到相应的图像。这个时候一定要想着做好数据的保存,因此接着将选择的那一段数据进行保存,以便于能够接下来的分析。除此之外,我们也可以就数据里面的一段进行分析,如果想要更为精细的处理,甚至可以按照频段进行选择分析。

LabVIEW还有自动处理错误的功能,当你的程序在运行时因为发生错误而弹出了对话框的时候,就可以充分的利用节点函数错误输入和错误输出,也就是error in和error out,然后出错的程序会被依次向后搁置,后面的函数也没有操作需要执行,一直到最后的程序做出错误处理。

5.1 滤波前后分析

图5.1滤波模块的前面板。低通滤波器(Butterworth)的出现,使得我们对最初的信号进行滤波处理的时候,能够消除其失真还有噪声的干扰,从而提高了信噪比。与之相比的模拟滤波器,就需要很高精度的组件,而且受限制的方面也比较多,它会随着温度,环境的变化,湿度的变化等等自然因素而产生很多误差,但是数字滤波器就弥补了这些缺点,因此应用的较为广泛。

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(25)

图5.1滤波模块前面板

通过上图所示的滤波后的波形可以知道,横坐标为时间,纵坐标为波形的幅值,是伏的数量级。一般情况下都是使用低通滤波器,截止频率如图所示。所谓的低通滤波器就是允许某一个特定截止频率的音频信号通过,对于高于截止频率的音频信号,其速率会下降,是按照其平方下降。所以说数字滤波器对于模拟滤波器来说还是具有很大的优势的,因为它不仅一定程度上的解决了音频信号的失真问题,而且对于环境中存在的噪声也有一定的抵制作用,所以能够提高信噪比。滤波后,波形会有细微的改变,主要是因为音频信号通过滤波器以后,谐波被消减而且振幅发生了变化,所以会有变化。

5.2 幅度谱/相位谱分析

如图5.3为幅度谱相位谱模块

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(26)

图5.3 幅度谱相位谱模块前面板

如图所示,横坐标皆为频率,纵坐标则为幅值,所以说不论是幅度谱还是相位谱都是幅度或者相位随着频率而变化的曲线。它们表示了各个不同的频率分量在时间原点的幅度和相位。幅度谱主要表示的是能量,通过上图幅度谱信号的分布情况我们就可以知道信号的能量分布,幅度和相位的傅里叶变化其实只是时域与频域之间的转换。图中所示的波形较为密集,可能是由于在录制声音信号的时候环境噪声的干扰比较大,所以波形比较混乱。

5.3 功率谱分析

如图5.4所示为功率谱的前面板

labview多通道数据采集框架(基于LabVIEW实现的声卡数据采集与测试系统)(27)

图5.4 功率谱前面板

由图可知,横坐标为频率,纵坐标为幅值,也就是伏特。功率谱实际上是功率与频率之间的关系曲线。功率谱作为研究信号的各种不同的频域特征而言,是数字信号处理的重中之重。其研究目的就是捕捉到那些由于环境噪声的干扰而被埋没的信号,当然也不是全部的信号,而是在有限范围内的频域数据。如图所示,图形周期性较差,所以研究起来就得想其他的方法。其实功率谱只是一个随机挑选的过程,然后进行平均化的处理,这一过程的功率谱为一个确定的函数。

结语

本文利用LabVIEW软件加上部分的PC技术,从而达到了对音频信号进行连续不间断的、高度保存其逼真度的采集及处理。通过实践的过程来看,这种尝试较为简单、性价比高,且实现的可能性大。而且由系统所产生的采集软件具有很好地参考价值,不仅拥有较为简便的操作,而且充分考虑到用户的感受,可以进行不断地拓展和扩充。

在现如今的硬件市场里,声卡的性能都很优越,且制造成本也变得相对来说比较低廉,其使用率越来越高的情况下,这种方法可以在测量应用及相关实验室中有一个较为长远的发展与应用。比如在日常生活中,环境噪声的实时监测,其声音信号的采集分析以及处理,这种方法就给了我们一种新的尝试。

参考文献

[1] 戴新.数据采集卡在LabVIEW中的驱动方法 计算机应用与软件

[2] 杨乐平,李海涛,肖相生.LabVIEW程序设计与应用 北京电子工业出版社

[3] 周爱军,马海瑞.基于声卡的LabVIEW数据采集与分析系统设计 微计算机信息

[4] 谢三毛;基于LabVIEW虚拟数字滤波器的设计[J];华东交通大学学报;2005年01期

[5] 蒋帅锋,施展,鲍恝;基于声卡的数据采集系统设计[J];仪器仪表学报;2005年S2期

[6] 孙爱晶;刘毓;马贺洲 基于LabVI EW的声卡数据采集及滤波处理设计 [期刊论文] -自动化与仪表2009(05)

[7] 孟武胜;朱剑波;黄鸿 基于LabVIEW 数据采集系统的设计 [期刊论文] -电子测量技术2008(11)

[8] 陈捃;黄用勤;王永涛 基于虚拟仪器的实时数据采集系统的设计 [期刊论文] -武汉理工大学学报2007(06)

[9] 梅秀庄 宋京伟 刘举平.基于声卡的信号采集系统设计[J].华东交通大学学报.第21卷第2期.2004.4

[10] 王庆龙.基于声卡和MATLAB的语音信号采集系统[J].四川工业学院学报增刊.2004

[11] 杨忠仁 饶程 邹建 彭珍莲.基于LabVIEW 数据采集系统[J].重庆大学学报.第27卷第2期.2004.2

[12] 陈敏 汤晓安.虚拟仪器软件LabVIEW与数据采集[J].小型微型计算机系统.第22卷第4期.2001.4

[13] 张辉 郁凯元 龙涛 王建强.基于LabVIEW软件的动态连接库和数据采集[J].仪表技术第6 期.2002

[14] 郑利锋 杨小雪 张汉全.基于LabVIEW的虚拟频谱分析仪设计[J].自动化与仪器仪表第5 期.2002

[15] National Instruments.LabVIEW help.2004.3

[16] National Instruments.LabVIEW Analysis Concepts.2003.4

[17] National Instruments.LabVIEW Measurements Manual.2003.4

[18] National Instruments.LabVIEW User Manual.2003.4

[19] Rick Bitter,Taqi Mohiuddin,Matt Nawrocki.LabVIEW Advanced Programming Techniques. CRC Press.2001

[20]冯伟东;韩雪冰;;LabVIEW与MATLAB在声音信号采集与小波降噪中的应用[J];长春工业大学学报(自然科学版);2006年01期

[21] 于琳 陈健.基于LabVIEW的声卡信号采集及其分析系统设计[J].仪器仪表用户.39-41

[22] 尚晓辉 王健 刘锐 等.基于LabVIEW的声卡数据采集与实时处理系统设计[J].军亊通讯技术.77-80

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。