基于VMD分解和小波阈值的语音信号去噪
2017-11-02王晶
王晶
摘要:为了对非平稳、非连续的语音信号进行降噪,提出一种基于VMD分解和小波阈值的语音降噪方法。通过仿真信号对比分析了VMD、EMD和EEMD算法对信号分解中存在的伪分量、模态混叠问题。先用VMD对语音信号进行分解,再利用小波阈值降噪。实验结果表明,该降噪方法明显优于小波阈值的语音信号降噪、基于EMD和小波阈值的语音信号降噪以及基于EEMD和小波阈值的语音信号降噪。
关键词:变分模态分解;小波阈值去噪;经验模态分解;总体平均模态分解
DOIDOI:10.11907/rjdk.172283
中图分类号:TP301文献标识码:A文章编号:16727800(2017)010001203
0引言
1998年,Huang N E.等[1]提出了经验模态分解(Empirical Mode Decomposition,EMD)算法。EMD作为一种优秀的时频信号分析方法,不仅可以对线性、平稳的信号进行分析,也同样适合对非线性、非平稳的信号进行分析。与其它时频分析方法相比,EMD能更好地反映信号包含的物理意义。对于EMD本身存在的模态混叠、端点效应等问题,Huang等[2]于2009年提出了总体平均经验模态分解(Ensemble Empirical Mode Decomposition,EEMD)算法。EEMD通过给信号添加高斯白噪声的方法让信号能均匀分布,虽然一定程度上克服了EMD的模态混叠问题,但存在严重的伪分量。Dragomiretskiy等[3]于2013年提出了一种自适应的、非递归的信号分解方法——变分模态分解(Viational Mode Decomposition,VMD)。实际上,VMD算法就是自适应的维纳滤波组,具有有效减少伪分量、模态混叠现象不明显等优势,相比于EMD和EEMD有更好的噪声鲁棒性。
国内外众多研究人员对小波去噪[45]进行了大量研究。小波去噪的关键在于找到适合的小波基、分解层数和阈值,将含噪的信号在固定小波基和分解层数上进行小波分解,分解成多个小波系数。这些小波系数与阈值相比,认为大于阈值的小波系数主要由噪声组成,需去掉;而小于阈值的小波系数主要为有用信号,需保留,对保留下来的小波系数进行重构得到去噪后的信号。
在获取和传输语音信号时难免会被噪声感染,被感染后的语音信号大大降低了语音识别的准确率。为了有效去除语音信号中的噪声,本文结合VMD和小波去噪及信号处理优势提出基于VMD和小波阈值的语音信号去噪。仿真实验结果表明,本文提出的方法在低信噪比的情况下去噪性能优于直接用小波阈值去噪、基于EMD和小波阈值去噪以及基于EEMD和小波阈值去噪。
1去噪原理
1.1变分模态分解算法(VMD)
VMD是2013年由Dragomiretskiy等提出的自适应的、非递归的、将信号分解成有限个固有模态分量(Intrinsic Mode Function,IMF)之和的变分模态分解方法。
信号通过VMD算法处理被分解成K个IMF,这些固有模态均满足文献[6]中对固有模态的定义。
对每一个分解得到的模态都经过以下3个步骤:①通过Hilberthuang变换计算与该模态相关联的解析信号;②加入指数项调整模态的中心频率,将模态的频谱换到基带上;③将解调信号通过H1高斯平滑处理估计带宽。
通过上述3个步骤得到一个变分约束问题,为了求得模型的最优解引入二次罚函数项α和Lagrange乘子λ。
L({uk},{ωk},λ)=
α∑k‖t[(δ(t)+jπt*uk(t)]e-jωkt‖22+
‖f(t)-∑kuk(t)‖22+[λ(t),f(t)-∑kuk(t)](1)
其中,ωk(t)为uk(t)的瞬时频率,δ(t)为Dirac分布,*代表卷积,k=1,2,…,K,f表示原始信号。
VMD对信号的具体分解过程如下:
(1)将{u1k},{ω1k},λ1和n的值初始化定义为0。
(2)定义n=n+1,执行循环过程。
(3)定义k=0,k=k+1,当k un+1k(ω)= (f(ω)-∑i 2α(ω-ωnk)2(2) ωn+1k=∫∞0ωun+1k(ω)2dω/∫∞0un+1k(ω)2dω(3) 更新λ为: λn+1(ω)←λn(ω)+τ[f(ω)-∑kun+1k(ω)](4) (4)判断是否满足迭代停止条件∑k‖un+1k-unk‖22/‖unk‖22<ε),如果满足,循环结束,输出得到的若干个IMF分量;否则,重复步骤(2)-(4)。 1.2小波阈值去噪 小波去噪先要选取合适的小波基和分解层数,对带有噪声的信号进行小波分解,得到一组小波分解系数。设定一个阈值,认为大于该阈值的小波系数由信号产生,保留或收缩该小波系数;认为小于该阈值的小波系数由噪声信号产生,舍去该小波系数。对保留下来的信号进行重构,得到去噪后的信号。 小波阈值去噪[7]基本原理:①设一个临界阈值λ,信号x(t)通过小波变换到小波域上,得到一组小波分解系数;②将这些小波系数与λ进行比较,当小波系数小于λ,认为该系数主要由噪声组成,舍去小波系數;当小波系数大于λ,则认为该系数主要由信号组成,保留或者收缩该小波系数;③对上述处理后的小波系数进行信号重构,得到的即是去噪后的信号。小波软阈值的阈值函数为: f(x)=sgn(x)(x-λ)x>λ0x≤λ(5)
小波硬阈值的阈值函数为:
f(x)=xx≥λ0x<λ(6)
小波阈值去噪中除了阈值函数的选择,阈值的选择也很重要。常用的阈值选择方法有以下4种[8]:
(1)固定阈值(sqtwolog准则)。它是实际应用中一种常用的阈值选择方法。固定阈值的表达式为:
thr=σ×2lnN(7)
其中,N为信号的采样长度,σ为估计的噪声方差,σ=median(ωj,k)/0.674 5。ωj,k代表信号经小波分解后的小波系数,median函数是求小波系数绝对值的中间数。
(2)Stein无偏似然估计阈值(rigrsure准则)。设一个向量W,W中的元素按照小波系数的平方大小递增排列,即:W=[ω21,ω22,ω23,…,ω2n],ω21<ω22<…<ω2n。ωk(k=1,2,3,…,n)是小波系数,n表示信号长度。
再定义一个风险向量R,R=[r1,r2,…,rn]。其中,第k个元素表示为:rk=[n-2k+(n-k)×ω2k+∑kj=1ω2j])/n。找到rmin,确定对应的k值,然后找到与之对应的ωk。阈值表达式为:thr=ω2k。
(3)启发式阈值(heursure准则)。先定义两个变量X和Y,X=(∑ni=1ω2i-n)/n,Y=(log2n)3/n。其中,ωi为小波系数,n表示信号长度。当X
(4)最大最小准则阈值(minimaxi准则)。该准则的阈值表达式为:
thr=0.393 6+0.182 9log2nn<320n≥32(8)
由文献[9]可知,阈值如果选取过小,则去噪后信号依然有噪声存在:反之,阈值选择过大,信号中含有的重要数据特征就会被过滤掉,引起数据偏差。因此,本文采用Stein无偏似然估计阈值法选择阈值。
2基于VMD的语音信号去噪方法
本文提出的去噪方法基本原理是先将语音信号进行VMD分解获得IMF分量;然后分别对每一个分量进行小波阈值去噪,本文选取阈值用Stein无偏似然估计原理;最后,将去噪后的分量进行重构,得到去噪后信号。基于VMD的小波阈值语音信号去噪方法流程如图1所示。
3仿真分析
为验证VMD分解优于EMD分解、EEMD分解和本文提出的去噪方法,使用MATLAB R2016a进行仿真实验。
3.1仿真信号分析
用cos(2×π×2)、1/4×(cos(2×π×24))和1/16×(cos(2×π×288))这3个信号合成一个仿真信号,分别用VMD、EMD和EEMD对该信号进行分解(见图2)。
图2-图5分别是仿真信号的源信号、仿真信号经VMD分解的分量、经EMD分解的分量和经EEMD分解的分量。可以看出,EMD和EEMD在分解时出现了模态混叠和伪分量的情况,而VMD有效地减少了伪分量,模态混叠现象也不明显,与EMD和EEMD相比具有更好的噪声鲁棒性。
3.2仿真实验
截取一段男生发音“啊”的音频作为原始音频信号。采样频率为8 000Hz,对原信号加入信噪比为10db的高斯白噪声构成加噪信号。对噪声信号进行VMD分解后用小波阈值去噪。图6(a)为原始男生发音“啊”的语音信号,(b)是加入了信噪比为10db的高斯白噪声的加噪语音信号,(c)是用本文提出的基于VMD分解的小波阈值去噪后的语音信号。
图6仿真结果
使用信噪比作为评价信号去噪性能的评价指标。信噪比越大说明去噪效果越好,反之,信噪比越小说明去噪效果越不好。信噪比公式为:SNR=10×log10[∑ni=1y2i/∑ni=1(yi-y′i)2)]。其中,yi为原始语音信号,y′i为去噪后的估计信号。
对加噪信号分别用小波阈值去噪,基于EMD分解的小波阈值去噪,基于EEMD分解的小波阈值去噪和基于VMD的小波阈值去噪。选取sym8作为分解的小波基,分解层数为3时取得的去噪效果最佳。
从表1可看出,对同一个信号,在输入信噪比相同情况下用小波阈值去噪、基于EMD的小波阈值去噪、基于EEMD的小波阈值去噪和基于VMD的小波阈值去噪这4种不同方法进行去噪处理,从去噪后的输出信号信噪比看,基于VMD的小波阈值去噪明显优于其它3种方法。
4结语
仿真实验表明,VMD在信号分解时相较于EMD和EEMD减少了伪分量、模态混叠不明显的优点。结合VMD算法和小波去噪原理,本文提出了基于VMD和小波阈值的语音信号去噪方法。实验结果表明,本文提出的去噪方法在低信噪比时较小波阈值去噪、基于EMD和小波阈值的去噪以及基于EEMD和小波阈值的去噪有更好的去噪性能。如果是较长的语音信号,计算量也很大,所需运算时间也会很长,语音识别系统的时效性因此会受到影响。如何减少计算量、加快运算时间、提高时效性值得深入研究。
参考文献参考文献:
[1]NEHUANG,ZSHEN,SRLONG.A new view of nonlinear water waves: the Hilbert spectrum [J].Annu. Rev. Fluid Mech,1999,31(1):417457.
[2]ZWU,NEHUANG.Ensemble empirical mode decomposition:a noiseassisted data analysis method [J].Adv. Adapt. Data Anal.,2009,1(1):141.
[3]KDRAGOMIRETSKI,DZOSSO.Variational mode decomposition[J].IEEE Trans. SIGNAL Process,2014,62(3):531544.
[4]朱伟华,安伟,尤丽华,等.基于改进阈值函数的小波阈值去噪算法[J].计算机系统应用,2016,25(6):191195.
[5]唐鹏,郭宝平.改进型阈值函数寻优法的小波去噪分析[J].信号处理,2017,33(1):102110.
[6]I DAUBECHIES,J LU,H T WU.Synchrosqueezed wavelet transforms: an empirical modedecompositionlike tool[J].Appl. Comput. Harmon. Anal.,2011,30(2):243261.
[7]邵鸿翔,高宏峰.改进小波阈值去噪方法处理FBG传感信号[J].激光与红外,2014,44(1):7376.
[8]卢仕泽,星野.新双阈值函数下的小波去噪研究[J].计算机与数字工程,2015(9):16341639.
[9]代海波,单锐,王换鹏,等.基于改进阈值函数的小波去噪算法研究[J].噪声与振动控制,2012(6):189193.
責任编辑(责任编辑:孙娟)