《武汉工程大学学报》  2011年10期 96-99   出版日期:2011-11-30   ISSN:1674-2869   CN:42-1779/TQ
家庭安防系统中声音信号的小波分析与降噪


0引言在家庭智能报警系统中,当客户端进行设防的条件下,探测器通过数据采集卡向控制主机发出报警指令时,控制主机将通过相应功能模块来启动相应的拾音器和USB摄像头进行现场声音与图像信息采集,并把采集到的数据经过处理后与用户的具体信息一起通过LabVIEW中Internet工具包的FTP网络技术传送到服务器端,并通过GRPS彩信猫把采集的声音与图像以彩信的形式发向用户预先设定的手机.由于在现场进行声音采集时会受到各种噪声以及背景信号的干扰和影响,包括拾音器和声卡自身带来的噪声,要求采集声音信号之后,必须经过降噪处理,使传送到接收端的信号在人的听觉范围内既消除了噪声的干扰,又不存在失真现象.本文就是在此背景下,基于LabWIEW平台,对现场语音信号采集与处理进行了研究和试验.1系统简介该家庭智能报警系统客户端所需硬件主要由控制主机、数据采集卡、探测器、遥控器等组成[12].整个系统组成如图1所示.图1系统硬件连接图
Fig.1Connection diagram of the systematic hardware系统中的遥控接收装置通过USB口与控制主机连接,将3.5 mm警笛插入声卡的Line out插孔,3.5 mm拾音器并联后插在声卡的Line in插孔.红外栅栏的电源正、地线分别与所配带的电源正负线连接,信号线接在数据采集卡的DI相应的引脚,同时将地线接在数据采集卡的GND引脚.门缝门磁开关,柜子门磁开关的两根线分别接在数据采集卡的GND和DI相应的引脚上.USB红外摄像头以及GPRS彩信猫,直接插在与控制主机相连的USB HUB上USB母口.当SQL Server数据库的彩信发送表MSG OUTBOX里有客户端相应的功能模块采集的现场数据时,彩信猫就会通过移动网络向用户预先设定的手机发送彩信.客户端控制主机通过Internet或电话网络与服务器端的110接警中心、小区保安中心以及用户指定地点等进行数据通信.系统所用的探测器为东尼TONYA7拾音器,考虑到Mic in插孔有前置放大电路,容易引起噪声且会导致信号过负荷,而将其与Line in连接,但由于拾音器是高灵敏度的声音采集装置,声卡本身以及控制主机风扇等其它部件也容易形成噪声源,所以在实际运行中先把采集的声音放大,经过去噪等信号处理后再将采集的声音信号传送出去.2现场语音信号采集与处理2.1小波去噪原理信号和噪声在小波域中有不同的形态表现,它们的小波系数幅值随尺度变化的趋势不同.随着尺度的增加,噪声系数的幅值很快衰减为零,而真实信号系数的幅值基本不变.小波去噪的机理就是基于信号与噪声的小波系数在尺度上的不同性质,采用相应的规则,对含噪信号的小波系数进行取舍、抽取或切削等非线性处理,以达到去除噪声的目的[34].小波去噪的本质是一个函数逼近的问题,就是如何在由小波母函数伸缩和平移版本所展成的函数空间中,根据提出的衡量准则,寻找对原信号的最佳逼近,以完成原信号和噪声信号的区分.因此,小波去噪方法也就是寻找从实际信号空间到小波函数空间的最佳映射,以便得到原信号的最佳恢复.在实际工程中,有用信号通常表现为低频部分或是一些比较平稳的信号,而噪声信号通常表现为高频信号.所以,小波去噪实际上是特征提取和低通滤波的综合.2.2小波去噪方法研究去噪的基本思路是带噪信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数滤除掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复信号.相对于傅里叶变换滤波的等步长频谱去噪,小波变换去噪是二等分频谱去噪,只有进行小波分解才能实现等步长频谱去噪.在小波去噪处理中,选用的小波不一样,去噪效果也不一样.小波去噪方法大致上可分为[57]:①小波系数收缩法:分为阈值收缩和比例收缩;②投影方法:将带噪信号以一种迭代的方式投影到逐步缩小的空间.由于最后的空间能更好地体现原信号的特点,所以投影法也能够有效地区分噪声和信号;③相关法:是基于信号在各层相应位置上的小波系数之间往往具有很强的相关性而噪声的小波系数则具有弱相关或不相关的特点来进行去噪的.第9期王会青,等:基于LabVIEW的家庭安防系统中声音信号的小波分析与降噪
武汉工程大学学报第33卷
由小波消噪原理可知,利用小波变换进行去噪的基本方法为:首先选择一个小波并确定小波分解的层次N,然后对信号进行N层小波分解.分解后的近似信号代表低频信号,它包含有用信号的主要成分;细节信号为高频部分,包含有用信号的高频成分和噪声成分.在这个过程中,选择合适的小波基对降噪效果影响很大.一个合适的小波基,能使信号能量分布在少数的几个基底上.对于小波分解的尺度,若信号中噪声含量较多,小波变换尺度要大些;而噪声含量较少时,小波变换尺度可小一点.其次,高频系数的阈值选取和量化.在处理过程中,小波变换的近似信号全部保留,而对于从第一层到第N层的每一层的高频系数,选择一个阈值,并对高频系数用阈值函数进行量化处理.最后根据小波分解的第N层的低频系数和经过量化处理后的第1层到第N层的高频系数,进行声音信号的小波重构.2.3基于LabVlEW的小波去噪实现系统声音信号的采集、处理和传送是在LabVlEW平台下的子程序实现的.录制声音的子VI程序运行时,先检测报警是否处于设置状态,若是,则检查存放采集声音文件的目录是否存在,存在就通过声音子VI进行声音采集,不存在则动态地创建此目录.声音采集是通过声音子VI进行,如图2所示.声音文件从0开始动态的每隔20 s就以下一个数字为文件名,以.mid为扩展名建立.声音子VI左边的两个输入变量分别控制采集的采样数目和采集的硬件设备ID.程序运行时,首先通过Sound File Open函数打开声音文件,通过配置声音输入函数对采集的声音信息及参数进行配置,然后通过读取声音函数读取采集的声音数据进行放大3倍和小波降噪后存入到声音文件.一个实用的现场声音信号采集系统不仅要具有声音信号的采集、传送和回放功能,还应具有进行复杂的声音信号分析和处理功能.通常这些信号处理的运算量比较大,而且又要满足实时的快速高效处理要求,以完成对声音信号的采集和处理任务.在进行声音处理最初试验中,尝试着采用了自适应滤波降噪、联合视频分析降噪和小波降噪等方法,效果都不太理想.用普通的滤波器几乎没有任何效果;自适应滤波降噪虽然噪.图2声音子VI(对声音数据放大和降噪)
Fig.2Sound VI subroutine (amplification of sound
 data and noise reduction)声降低了很多,但不够彻底.自适应分析因地点不同选取的背景参考噪声可能就不同,从而用在本文是行不通的;而联合时频分析在系统采集的声音降噪中有一定的失真.最终确定采用小波降噪方法.但在该方法中,小波分析所涉及的参数太多,需要经过大量的分析研究与试验才使得小波分析降噪法达到了理想效果.在小波降噪处理过程中,所选的小波不一样,去噪效果也不同.先选取了小波函数中的Daubechies、Symlets和Coiflet小波族进行比较试验.通过对信号数据进行小波变换,然后将重构信号与原始信号的信噪比和峰值误差大小作比较,选取最优小波基.并进行了在选择同一个小波家族的情况下,比较不同的滤波器长度;在选择的滤波器长度相同的情况下,比较不同家族的小波的研究.结果确定Coif N小波族较优.消噪过程是通过对小波分解系数进行阈值量化来实现的,它可以让用户选择自己的量化方案.经过试验比较,选定通用阈值形式,其大小是通过运算sqrt(2*log(1ength(X)))作为阈值.声音降噪的实现是在LabVlEW环境下,系统采集到的原始数据通过MATLAB Script节点,进行小波阈值降噪.小波降噪的主要参数是小波个数、小波的分解层数及采用的小波类型等.测试中,确定小波分解级数的依据是,若信号的信噪比大些,即信号占主要成分,则分解级数就小一点;反之,若信号的噪声占主要成分,分解级数就大些.具体参数设置:Transform type为undecimated wavelet transform (UWT);Wavelet类型为coif3;小波分解层数为3;相应的Threshhold Settings:Thresholding rule为Universal;Rescaling method为Multiple;Option for approx为Threshold;Data type为waveform.经过反复试验比较,以上的参数设置降噪效果为最佳,在人的听觉范围内没有没有感觉到噪声存在.其降噪前后的波形如图3、4所示.图3降噪声前的信号
Fig.3Sound signal before noise reduction图4降噪后的效果
Fig.4Effect after the noise reduction从原始声音信号的波形图中可以看出其中包含有噪声,先对其利用小波进行完全分解,最后重构信号,选用合适的小波函数,采用3层分解级数,从图3、4中可以明显的看出,处理后的声音信号基本不含任何噪声分量.3结语声音信号降噪是任何声音采集都会遇到的问题,需要大量反复的试验才能达到理想的效果.本文经过分析对比自适应滤波降噪、联合视频分析降噪和小波降噪等方法,最终确定了采用小波去噪.由于小波的特性,决定了只有小波降噪在本系统中的效果最为理想.小波分析虽然可行,但因涉及的参数太多,需要经过大量的分析研究与试验才使得小波分析降噪法达到了理想效果,即在人的听觉范围内没有感觉到有噪声存在,同时又无失真现象.在试验中还发现这个声音采集相关的函数与小波分析降噪函数不能出现在同一个项目工程里,经过研究发现这是LabVIEW2009平台的一个BUG点(LabVIEW平台自身的一个缺陷),后来在LabVIEW2010中解决了这个问题.参考文献: