的去噪效果,能更好的反应原始信号的特征。
5.4.3小波函数的选取
对傅立叶变换而言,变换基是唯一的,没有最优基的问题。小波变换则不然因为有众多的小波函数可供选择,从而使得同一信号可以在不同的变换基上展开,得到不同的展开结果。因此在进行小波变换时,选择一个适当的小波函数是很重要的。对于如何选择小波函数并无定论,通常考虑的是变换的有效性、通用性和系数的唯一性。
对于正交小波而言,可以考虑的变化因素有两个,一个是支撑度,另外一个是消失矩阶数。支撑有限的紧支撑正交小波基的重要性在于它在数字信号的分解过程中可以提供有限的从而更实际、更具体的数字滤波器。支撑越长,则频率分辨率越高,频带间干扰减小,但时域分辨率变差,变换的计算量也增大。消失矩则定义了小波变换的有效性,消失矩越高则变换系数衰减越快,从而变换更有效。对于支撑长度为2N的正交小波函数,其消失矩阶数最高为N。Daubechies小波即为具有最高消失矩的紧支正交小波。
进行语音增强时,必须考虑运算量、时域分辨力、频率分辨力等因素。 综合第三章所讨论的小波基函数可知,Haar小波不是连续可微的,应用有限,多用于理论研究。Meyer小波是正交、双正交的,不存在紧支集。CoifN,symN小波计算量均较大,不利于实时实现。biorNr.Nd小波的分解性和重构性好,但没有正交性并且计算量较大。Morlet小波是复值小波,能够提取信号中的幅值和相位信息,在地球物理信号处理中广泛应用,但是尺度函数不存在,也不具备正交性,只能满足连续小波的允许条件,也不存在紧支集,不能做正交小波变换和离散小波变换(DWT)。所以,本文选择Daubechies小波db5进行小波变换,这是在时域分辨率和频域分辨率之间的一个折衷。仿真结果表明,这个选择比较合理。
5.5 小波阈值的设定
阈值的设定是小波域阈值信号增强算法的关键,阈值的设定通常有四种,即通用阈值规则,Stein的无偏似然估计,启发式阈值规则和极值阈值规则等。 (1) Sqtwolog阈值
Sqtwolog采用固定阈值为??2lnN,其中N是信号长度。
(2) Rigrsure阈值
Rigrsure阈值是基于Stein的无偏似然估计的自适应阈值,是软件阈值估计器。先求出给定阈值的似然估计,再把非似然的阈值最小化就得到所选阈值。具体算法如下:
①将信号f(n)的每个元素取绝对值由小到大排序,再对各个元素平方得到:
sf2?k???sort?f??,k?0.1.?N?1
2 (5.5)
②取阈值为sf2?k?的第k个元素的平方根:??sf2?k?,k?0,1,?N?1那
么该阈值产生的风险为:
k?? Risk?k???N?2K??sf2?j???N?K?sf2?N?K?? (5.6) Nj?1?? ③由式(5.6),令kmin是最小风险点所对应的值,则阈值??sf2?kmin? (3) heursure
启发式阈值是Sqtwolog阈值和Rigrsure阈值的综合,当f(n)的信噪比小时,采用启发式阈值。
?NA???dj?j?12??N?N,B??1?lnN??? N?ln2?3如果AB,就选??2lnN和Rigrsure阈值中较小的为启发式阈值的选定阈值。 (4) 极值阈值
极值原理是使估计的最大风险最小化。阈值?是:
??0,N?32???0.3936?0.1829?lnN?,N?32 (5.7)
????ln2??以上阈值选取都没有涉及噪声方差?,用鲁棒估计计算?就是 ??mediadnj?k?0.6745?? (5.8)
即对分解出的第j尺度上的小波系数取绝对值再取中值,median是Matlab中的运算命令。
噪声水平采用鲁棒估计来计算,是因为如果信号足够规则,尺度上的小波系数若含有信号的细节,这些细节将集中在少数小波系数上;另外是为了避免小波系数计算中的边界效应。
5.6 算法的实现与仿真 5.6.1 算法实现的流程
选择纯语音 画出原始信号 选择带噪语音 画出带噪信号 用小波做7层分解 进行阈值处理 重建信号 画出去噪信号
图5.1 小波包语音去噪流程图
5.6.2 算法的实现步骤
基于小波包变换的语音增强算法的实现步骤如下:
(1)用db5小波对带噪语音信号进行Bark小波包分解,得到7层共68个结点的分解结构。
(2)用阈值???2lnN(N为信号长度)计算这7层结点的阈值。 (3)对分解结构的7层的各个结点的小波包分解系数进行新的阈值函数的阈值量化。
(4)利用阈值量化后的小波包系数对原始语音信号进行小波包重建。
5.6.3 算法的仿真结果
利用Matlab进行实验仿真,其中纯净语音是安静环境下8kHz的连续自然语音,噪声选了火车噪声、粉红噪声、F16战斗机噪声和工厂噪声四种噪声,都是选自Noisex-92数据包里的噪声。噪声是采用db5小波对信号进行小波包分解,然后进行阈值处理。
第六章 总结与展望