改进小波阈值算法在语音减噪中的应用

2017-12-15 12:03孙春泉
电脑知识与技术 2017年32期
关键词:小波变换

孙春泉

摘要:针对Donoho提出的硬閾值函数和软阈值函数存在的缺点即硬阈值函数会产生附加震荡,产生跳跃点,使原始信号的丢失其本身具有的平滑性。软阈值函数估计得到的小波系数由于会压缩信号,会产生一定的误差,直接影响到重构信号的准确度的缺陷,改进了一种小波阈值算法。并在含有噪声的语音信号中应用该算法,实验结果表明,该算法有效地抑制了噪声。

关键词:小波变换;语音信号;去噪;MATLAB

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2017)32-0194-02

1 概述

如今的语音识别被广泛地应用在日常生活中,而在生活中很难能有比较纯净的语音信号,大多含有噪声。因此为了得到较为纯净的语音信号,语音去噪的研究就显得格外重要。近些年来,去噪算法的不断提出,小波分析理论得到了广泛的重视,并显示出了其非常好的去噪性质。由于小波在时域和频域上同时具有非常好的局部化性质,因此就可以更好的研究所需要研究对象的更深层处的东西。

20世纪四五十年代,Gabor提出的短时傅里叶变换所具有的局部特性为小波分析提供了理论基础,20世纪80年代,Strormberg提出了一种支撑长度无穷的正交多项式小波,到20世纪90年代,Mallat在实现小波变换的快速算法的基础上,首次提出了多分辨率分辨分析的概念。该算法具有与快速傅里叶变换相同的重要性。早期语音去噪的算法基本上都离不开滤波器,设计这个滤波器就是将语音信号中的噪声去除,滤波器的这种方法只能对具有线性平稳这个特性的信号有很好地去噪效果,而自然界中的信号并不都是具有这样的特性的,在自然界中存在大量的非平稳信号,宽带噪声,因此早期的语音去噪算法在处理从自然环境中录下的语音就不能的到号的效果,而小波去噪算法由于其具有非常好的保护信号边缘细节的性质,在语音信号处理方面具有非常广泛的应用。文献[2]通过修改小波阈值函数和修正阈值系数来提高小波阈值去噪的去噪效果。文献[3]根据语音信号的浊音和清音的特点,提出一种在阈值函数中引入参数,通过调整参数来获得最佳小波系数的阈值估计值方法提高了小波阈值去噪的去噪效果。

2 小波变换原理

2.1 连续小波变换原理

对任意函数f(t)属于L2(R)的连续小波变换公式如下:

[Wf(a,b)==a-12Rf(t)Ψ(t-ba)dt] (1)

其重构公式(即逆变换)如下:

[f(t)=1CΨ-∞+∞-∞+∞1a2Wf(a,b)Ψ(t-ba)dadb] (2)

由于基小波[Ψ(t)]生成的小波[Ψa,b(t)]在小波变换中对被分析的信号起着观测窗的作用,所以[Ψ(t)]还应满足如下的约束条件:

[-∞+∞Ψ(t)dt<∞,Ψ'(0)=-∞+∞Ψ(t)dt=0] (3)

2.2 离散小波变换原理

对连续变换公式中取[a=aj0,b=kaj0b0,j∈Z,]将步长因子[a0≠1]设定为一个确定的值,且一般设[a0>1]。由此可以得出离散小波函数的计算公式如下:

[Ψj,k(t)=a-j/20Ψ(t-kaj0b0aj0)=a-j/20Ψ(aj0t-kb0)] (4)

而对于离散小波函数一般使用[a0=2,b0=1]的二进离散小波。因此,可得(4)式的变形如下:

[Ψj,k(t)=2-j/2Ψ(2-jt-k)] (5)

从式(4)和(5)可以得出离散小波变换的计算公式如下:

[D[Wf(j,k)]=2-j/2Rf(t)Ψ(2-jt-k)dt] (6)

3 改进的小波阈值算法

3.1 小波阈值去噪的原理

Donobo提出的小波阈值去噪算法的基本思想是通过小波变换(采用Mallat算法)获取信号的小波系数,此小波系数包含有关于信号的重要信息,将信号经小波分解后可以看出有用的信号所产生的比噪声所产生的小波系数要大,选定一个阈值,将大于这个阈值的小波系数看作是信号所产生的,反之则是由噪声所产生的,并将其值置为0。从而达到去除噪声的目的。最后利用小波变换的逆变换进行重构获得去除噪声后的有效信号。而该算法的最关键的部分在于如何设置这个阈值,由D.L Donoho提出的软、硬阈值函数分别如式(7),(8)。

[μj,k=sgn(ωj,k)(ωj,k-λ),ωj,k≥λ0,ωj,k<λ] (7)

[μj,k=ωj,k,ωj,k≥λ0,ωj,k<λ] (8)

其中sgn()为符号函数,阀值[λ]为[σ2logN],σ为噪声的标准差,可通过最小尺度上的小波系数来估计,其估计值,其中[σ=2*median(ω1,k)0.6745]表示取第一层小波变换系数ω1,k幅值的中间值,N为信号长度。

3.2 改进的小波阈值算法

软阈值方法与硬阈值方法由于其在实际应用中具有较好的去噪效果,而得到老较为普遍的应用,但由于算法本身具有较多的缺点比如硬阈值函数会产生附加震荡,产生跳跃点,使原始信号的丢失其本身具有的平滑性。软阈值估计得到的小波系数由于会压缩信号,会使获取的信号与原始的信号产生部分不符,这直接会造成结果与原信号的偏差。因此,提出了一种新的改进阈值函数:

[μj,k=sgn(ωj,k)(ωj,k-αλ),ωj,k≥λ0,ωj,k<λ] (9)

它是介于软、硬阈值发之间的一个灵活选择。其中ɑ∈[0,1] 为一调整参数,由上式可知,当ɑ=0时,(8)式就是硬阈值函数,当ɑ=1时,(8)式就是软阈值函数。对于式(8)中的未知参数ɑ在输入不同的信号需要反复测试才能获取合适的值。这给其实际应用增加了困难,针对这个情况,本文通过使用计算离散随机变量最大熵原理,通过计算最大熵来确定最佳的未知参数[a]。其算法计算步骤如下:

(1) 选择合适的小波和小波分解层数,得到相应的小波分解系数ωj,k;

(2) 对步骤1中获取的ωj,k通过式

[μj,k=sgn(ωj,k)(ωj,k-αλ),ωj,k≥λ0,ωj,k<λ]和式[vj,k=0,ωj,k≥λωj,k,ωj,k<λ]获取去噪后的语音信号的小波系数μj,k和噪声的小波系数vj,k;

(3) 对于不同的参数α ,分别由离散随机变量最大熵原理公式

[Ws=-j=1mEsjEslogEsjEs=-j=1miωj,i2iω1i2+iω2i2+…+iωmi2logiωj,i2iω1i2+iω2i2+…+iωmi2] (10)

[Wn=-j=1mEnjEnlogEnjEn]

[=-j=1mivj,i2iv1i2+iv2i2+…+ivmi2logivj,i2iv1i2+iv2i2+…+ivmi2]

(11)

计算去噪后语音信号的小波熵Ws和噪声的小波熵Wn,再根据[W=Ws+Wn2]求出信號的小波熵。

(4) 比较步骤3中获取的小波熵,求出其中的最大值,此时所对应的α值即为所求的最佳参数。

4 仿真实验结果

针对上文给出的算法改进,本文使用美国MathWorks公司出品的商业数学软件MATLAB 7.1版编程工具,给出了其仿真实验结果。通过仿真实验发现改进后的算法相比软阈值去噪算法和硬阈值去噪算法提高了信噪比。表1给出了软硬阈值去噪算法和改进后的算法对加噪语音信号处理后的信噪比。通过对比发现改进后的算法具有较好的去噪效果。

5 结论

本文针对软硬阈值去噪算法所存在的缺陷,提出了一种通过离散随机变量的最大熵确定阈值的改进算法。虽然该算法明显提高了语音信号的信噪比,但是通过计算离散随机变量的最大熵来确定最优参数,从算法的复杂度角度分析,明显提高了算法的时间复杂度。接下来的研究就是怎样提高算法的时间复杂度。

参考文献:

[1] Wenyong Dong, Hong Ding.Full Frequency De-noising Method Based on Wavelet Decomposition and Noisetype Detection.爱思唯尔期刊,2016.

[2] 赵鸿图,刘云.改进的小波阈值语音去噪算法[J].河南理工大学学报,2014,33(5):3-4.

[3] 董胡,钱盛友.基于小波变换的语音增强方法的研究[J].计算机工程与应用,2007,43(31):28-29.

[4] Guang Hua Chen,Gui Hong Yan.The Application of the Improved Threshold Method in Wavelet Image DeNoising.Trans Tech,2014.endprint

猜你喜欢
小波变换
基于峰度和小波变换的超短波信号调制识别
基于双树四元数小波变换的图像降噪增强
基于小波变换的数字水印技术