基于Labview的声⾳信息采集与处理
实验四基于LabVIEW的声⾳数据采集⼀、背景知识
在虚拟仪器系统中,信号的输⼊环节⼀般采⽤数据采集卡实现。商⽤的数据采集卡具有完整的数据采集电路和计算机借⼝电路,但⼀般⽐较昂贵,计算机⾃带声卡是⼀个优秀的数据采集系统,它具有A/D和D/A转换功能,不仅价格低廉,⽽且兼容性好、性能稳定、通⽤性强,软件特别是驱动程序升级⽅便。如被测对象的频率在⾳频范围内,同时对采样频率要求不是太⾼,则可考虑利⽤声卡构建⼀个数据采集系统。1.从数据采集的⾓度看声卡1.1声卡的作⽤
从数据采集的⾓度来看,声卡是⼀种⾳频范围内的数据采集卡,是计算机与外部的模拟量环境联系的重要途径。声卡的主要功能包括录制与播放、编辑和处理、MIDI接⼝三个部分。1.2声卡的硬件结构
图1是⼀个声卡的硬件结构⽰意图。⼀般声卡有4~5个对外接⼝。
图1 声卡的硬件结构⽰意图
声卡⼀般有Line In 和Mic In 两个信号输⼊,其中Line In为双通道输⼊,Mic In仅作为单通道输⼊。后者可以接⼊较弱信号,幅值⼤约为0.02~0.2V。
声⾳传感器(采⽤通⽤的麦克风)信号可通过这个插孔连接到声卡。若由Mic In 输⼊,由于有前置放⼤器,容易引⼊噪声且会导致信号过负荷,故推荐使⽤Line In ,其噪声⼲扰⼩且动态特性良好,可接⼊幅值约不超过1.5V的信号。
另外,输出接⼝有2个,分别是Wave Out和SPK Out。Wave Out(或Line
Out)给出的信号没有经过放⼤,需要外接功率放⼤器,例如可以接到有源⾳箱;SPK Out给出的信号是通过功率放⼤的信号,可以直接接到喇叭上。这些接⼝可以⽤来作为双通道信号发⽣器的输出。1.3声卡的⼯作原理
声⾳的本质是⼀种波,表现为振幅、频率、相位等物理量的连续性变化。声卡作为语⾳信号与计算机的通⽤接⼝,其主要功能就是将所获取的模拟⾳频信号转换为数字信号,经过DSP⾳效芯⽚的处理,将该数字信号转换为模拟信号输出。输⼊时,麦克风或线路输⼊(Line In)获取的⾳频信号通过A/D 转换器转换成数字信号,送到计算机进⾏播放、录⾳等各种处理;输出时,计算机通过总线将数字化的声⾳信号以PCM(脉冲编码调制)⽅式送到D/A 转换器,变成模拟的⾳频信号,进⽽通过功率放⼤器或线路输出(Line Out)送到⾳箱等设备转换为声波。1.4声卡的配置及硬件连接
使⽤声卡采集数据之前,⾸先要检查Line In 和Mic In的设置。如图2,打开“⾳量控制”⾯板,在“选项”的下拉菜单中选择“属性”,得到如图3的对话框,在此对话框上选择“录⾳”,并配置列表中的选项即可。可以通过控制线路输⼊的⾳量来调节输⼊的信号的幅度。
图2 ⾳量控制⾯板
图3 ⾳量控制⾯板属性更改及录⾳控制⾯板
声卡测量信号的引⼊应采⽤⾳频电缆或屏蔽电缆以降低噪声⼲扰。若输⼊信号电平⾼于声卡所规定的最⼤输⼊电平,则应该在声卡输⼊插孔和被测信号之间配置⼀个衰减器,将被测信号衰减⾄不⼤于声卡最⼤允许输⼊电平。⼀般采⽤两种连接线:a.⼀条⼀头是3.5mm的插孔,另⼀头是鳄鱼夹的连接线;b.⼀条双头为3.5mm插孔的⾳频连接线。我们也可以使⽤坏的⽴体⽿机做⼀个双通道的输⼊线,剪去⽿机,保留线和插头即可。2.声卡的主要技术参数2.1采样位数
采样位数可以理解为声卡处理声⾳的解析度。这个数值越⼤,解析度就越⾼,录制和回放的声⾳就越真实。我们⾸先要知道:电脑中的声⾳⽂件是⽤数字0和1来表⽰的。所以在电脑上录⾳的本质就是把模拟声⾳信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声⾳信号输出。
声卡的位是指声卡在采集和播放声⾳⽂件时所使⽤数字声⾳信号的⼆进制位数。声卡的位客观地反映了数字声⾳信号对输⼊声⾳信号描述的准确程度。8位代表2的8次⽅——256,16位则代表2的16次⽅——3。⽐10
较⼀下,⼀段相同的⾳乐信息,16位声卡能把它分为3个精度单位进10
⾏处理,⽽8位声卡只能处理256个精度单位,造成了较⼤的信号损失,最终的采样效果⾃然是⽆法相提并论的。位数越⾼,在定域内能表⽰的声波振幅的数⽬越多,记录的⾳质也就越⾼。2.2采样频率
每秒钟采集声⾳样本的数量。采集频率越⾼,记录的声⾳波形就越准确,保真度就越⾼。但采样数据量相应变⼤,要求的存储空间也越多。⽬前,声卡的最⾼采样频率是44.1KHz,有些能达96KHz。⼀般将采样频率设为4挡,分别是44.1KHz、22.05KHz、11.025KHz、8KHz。2.3缓冲区
与⼀般数据采集卡不同,声卡⾯临的D/A和A/D任务通常是连续的。为了在⼀个简洁的结构下较好地完成某个任务,声卡缓冲区的设计有其独到之处。为了节省CPU资源,计算机的CPU采⽤了缓冲区的⼯作⽅式。在这种⼯作⽅式下,声卡的A/D、D/A都是对某⼀缓冲区进⾏操作。⼀般声卡使⽤的缓冲区长度的默认值是8192字节,也可以设置成8192字节或其整数倍⼤⼩的缓冲区,这样可以较好地保证声卡与CPU的协调⼯作。声卡⼀般只对20Hz~20KHz的⾳频信号有较好的响应,这个频率响应范围已经满⾜了⾳频信号测量的要求。2.4基准电压
声卡不提供基准电压,因此⽆论是A/D还是D/A,在使⽤时,都需要⽤户参照基准电压进⾏标定。
⽬前⼀般的声卡最⾼采样频率可达96KHz;采样位数可达13位甚⾄32位;声道数为2,即⽴体声双声道,可同时采集两路信号;每路输⼊信号的最⾼频率可达22.05KHz,输出16为的数字⾳频信号,⽽16位数字系统的信噪⽐可达96dB。
http://www.doczj.com/doc/61df0e487ed5360cba1aa8114431b90d6c85e9.html bVIEW中有关声卡的控件介绍
利⽤声卡作为声⾳信号的DAQ卡,可以⽅便快捷地穿件⼀个采集声⾳信号的VI。与声⾳信号相关的函数节点位于程序框图下【函数】选版下【编程】函数选版的【图形与声⾳】函数⼦选版的【声⾳】函数选版的各⼦选版,如图4所⽰
图 4 LabVIEW中声卡控件
下⾯主要介绍【声⾳】/【输⼊】控件选板中相关控件的作⽤。
配置声⾳输⼊配置声⾳输⼊设备(声卡)参数,⽤于获取数据并且将数据传送⾄缓冲区。
启动声⾳输⼊采集开始从设备上采集数据,只有停⽌声⾳输⼊采集已经被调⽤时,才需要使⽤该VIs。
声⾳输⼊清零停⽌声⾳采集,清除缓冲区,返回到任务的默认状态,并且释放与任务有关的资源。
配置声⾳输出⽤于配置声⾳输出设备的参数,使⽤“写⼊声⾳输出”VI将声⾳写⼊设备。
写⼊声⾳输出将数据写⼊声⾳输出设备,如要连续写⼊,必须使⽤配置声⾳输出VI配置设备,必须⼿动选择所需多态实例。
声⾳输出清零将任务返回到默认的未配置状态,并清空与任务相关的资源,任务变为⽆效。
此外,还有众多的声⾳⽂件的打开和关闭等函数节点,在此不⼀⼀介绍,读者可参考LabVIEW帮助窗⼝进⾏了解。另外在程序框图下【Express】下【输⼊】下的【声⾳采集】及【输出】下的【播放波形】也是与声⾳信号相关的函数节点,如图5所⽰。
图 5 LabVIEW中Express下的声卡控件4.应⽤程序举例4.1声⾳的基本采集
利⽤声卡采集声⾳信号,其程序的基本实现过程如图6所⽰。
图6 声卡采集程序流程图4.1.1 VIs声⾳采集
本案例通过采集由Line In 输⼊的声⾳信号,练习声⾳采集的过程。操作步骤
[1] 执⾏【开始】/【程序】/National Instruments LabVIEW8.5】命令,进⼊LabVIEW8.5的启动界⾯。
[2] 在启动界⾯下,执⾏【⽂件】/【新建VI 】菜单命令,创建⼀个新的VI ,切换到前⾯板设计窗⼝下,移动光标到前⾯板设计区,打开【空间】/【新式】/【图形显⽰控件】控件选板,选择⼀个“波形图”控件,放置到前⾯板设计区,编辑其标签为“声⾳信号波形”并调整它的⼤⼩,如图7所⽰。
图7 波形图标签编辑
[3] 切换到程序框图设计窗⼝下,打开【函数】/【编程】/【图形与声⾳】/
【声⾳】/【输⼊】函数选板,在程序框图设计区放置⼀个“配置声⾳输⼊”节点、⼀个“启动声⾳输⼊采集”节点、⼀个“读取声⾳输⼊”节点、⼀个“停⽌声⾳输⼊采集”节点、⼀个“声⾳输⼊清零”节点,如图8所⽰。
图8 声⾳输⼊控件
[4] 移动光标到各节点上。可以在“即时帮助”窗⼝中看到各节点的端⼝及解释。如“配置声⾳输⼊”节点,如图9所⽰。
图9 “配置声⾳输⼊”节点
[5] 分别移动光标到“配置声⾳输⼊”节点的“设备ID”、“声⾳格式”、“采
样模式”的输⼊端⼝上,单击⿏标右键,从弹出右键快捷菜单中,执⾏【创建】/【输⼊控件】菜单命令,通过端⼝创建相应的输⼊节点,如图10所⽰。
图10 “配置声⾳输⼊”节点设置
[6] 移动光标到“声⾳输⼊清零”节点的“错误输出”端⼝上,单击⿏标右
键,从弹出的右键快捷菜单中执⾏【创建】/【显⽰控件】菜单命令,创建相应的显⽰节点,如图11所⽰
图11 “声⾳输⼊清零”节点设置
[7] 打开【函数】/【编程】/【结构】函数选板,选择“While循环”节点,
放置到程序框图设计区,在“While循环”的循环条件端⼝创建⼀个输⼊控件,移动光标到“While循环”的循环条件节点的输⼊端,单击⿏标右键,从弹出的右键快捷菜单中执⾏【创建】/【输⼊控件】菜单命令,创建相应的输⼊节点,并按图12所⽰,完成程序框图的设计。
图12 程序框图的设计
[8] 切换设计界⾯到前⾯板,可以看到与程序框图设计区节点相对应的控件对象,调整它们的⼤⼩和位置,美化界⾯。
[9] 单击⼯具栏上程序运⾏按钮,并对着传声器输⼊语⾳或⼀段⾳乐,即可在波形图空间中查看声⾳信号的波形,其中的⼀个运⾏界⾯如图13所⽰。
图13 程序运⾏界⾯⼆、实验内容
1、基于LabVIEW,⽤声卡采集声⾳信号,并显⽰出来,计算并显⽰声⾳信号的幅度谱。
2、对声⾳信号添加频率为20KHz,幅度为0.01V的噪声(采样频率为44.1KHz,采样数:10000个点),将加噪后的信号波形及其幅度谱显⽰出来。3、对加噪后的信号滤波,采⽤低通滤波器,截⽌频率为15KHz,Butterworth 型,阶数为10,将滤波后的信号波形及其幅度谱显⽰出来。4、⽐较以上3个步骤的波形和幅度谱。
5、采⽤同样的⽅法可以测量信号的相位谱、功率谱等信息,实验前⾯板如图14所⽰
实验程序框图如图15所⽰
图15 实验程序框图