APP下载

一种优化的VMD算法及其在语音信号去噪中的应用

2021-09-22李定文朱海琦

吉林大学学报(理学版) 2021年5期
关键词:变分小波分量

李 宏, 李定文, 朱海琦, 田 雷, 李 富

(1. 东北石油大学 电气信息工程学院, 黑龙江 大庆 163318;2. 大庆钻探工程公司 钻井一公司, 黑龙江 大庆 163458)

由于Fourier变换、 小波变换、 小波包变换等[1]传统方法对具有非线性和非平稳特性的语音信号降噪效果都不理想, 因此为更好地降噪, 近年来包括小波阈值去噪的一些新的语音信号去噪方法[2-3]被相继提出. 利用小波去噪首先要选择合适的小波基、 分解层数和阈值, 然后使用选择的小波基和分解层数对含有噪声的信号进行分解, 分解后可得到多个小波系数. 最后对这些小波系数做阈值筛选操作. 如果小波系数比阈值大, 则表明该系数成分主要由噪声组成需进行去噪处理; 通过阈值筛选后余下的就是有用信号, 可保留进行重构语音信号实现去噪. 但小波基和分解层的确定是一个难题, 为能有效去噪同时弥补小波分解过程中的缺陷, 文献[4]提出了一种使用小波阈值和经验模态分解(empirical mode decomposition, EMD)的改进去噪方法, 但自适应分解的EMD易产生模态混叠和伪成分. 为克服EMD的缺点, 文献[5]提出了集成经验模态分解算法(ensemble empirical mode decomposition, EEMD)对语音信号去噪, 该算法在EMD的基础上加入了高斯白噪声, 但其存在理论基础不严格、 效率低、 易滤除有用信号及会产生残差噪声等缺陷, 实用价值较低. 为有效消除EEMD产生残余噪声的影响, 提高运算效率, 文献[6]提出了一种改进的噪声辅助分析算法(complementary EEMD, CEEMD), 但CEEMD算法中存在模态分裂问题. 因此, 文献[7]提出了一种改进的EEMD算法, 其具有抑制模态混叠、 减少计算和重构误差、 消除信号中的噪声等优点, 但该算法仍存在一些缺陷. 变分模态分解算法(variational mode decomposition, VMD)[8]避免了上述方法固有的模式混叠问题, 能更好地去除语音信号中的噪声. 这种信号分解方法目前已应用到信号处理中, 但在VMD分解信号时, 分解模态数K和惩罚因子α需人为设定, 分解效果较差. 为从低信噪比语音信号中分离出特征信息丰富的信号成分, 获得最佳的处理效果, 本文采用灰狼优化(grey wolf optimizer, GWO)算法寻找VMD算法的参数组合确定分解模态数K和惩罚因子α, 并将该算法与小波变换相结合实现语音信号的去噪. 实验结果表明, 该方法能较好地去除语音信号中的噪声.

1 信号去噪原理

1.1 变分模态分解

自适应、 非递归的信号分解方法——变分模态分解算法(VMD)可以将信号分解成有限数量的固有模态分量(intrinsic mode function, IMF)之和. 这些固有模态分量的特点符合文献[9]中固有模态的定义. VMD分解信号的过程实际上就是求解变分问题的过程, 求解变分首先要构造变分, 所以构造变分问题和求解变分问题是该算法的核心.

1.1.1 构造变分问题

采用VMD分解算法将输入信号x(t)分解为k个模态分量μk(k=1,2,…), 并假设分解后的模态分量包含有限带宽的中心频率. 首先, 各模态分量需要进行Hilbert变换, 得到分析信号, 即单侧谱; 其次, 在相应的估计中心谱上加入指数项, 同时需要使各模态分量的谱调制到相应的基频带; 最后, 得到梯度平方(L2)范数对解调后的信号进行计算, 得到各模态分量对应的估计带宽.因此, 可构造约束变分问题为

(1)

1.1.2 求解变分问题

在求解构造的约束变分问题时, 需引入二次惩罚函数项α和Lagrange乘子λ, 表达式为

其中δ(t)表示Dirac分布,f表示原始信号, 〈·〉表示内积运算, *表示卷积运算,k=1,2,…,K.

(3)

(4)

(5)

VMD算法是通过在频域上不断地更新每个模态, 再利用Fourier变换将其转换到时域上, 更新模态分量的步骤如下:

2) 根据式(3)和式(5)更新μk和ωk;

3) 利用

更新λ;

1.2 相关系数

先将每个模态分量μk与原始语音信号利用

(6)

计算出(k+1)个自相关函数Rx,Rμ1,Rμ2,…,Rμk, 然后将自相关函数进行归一化处理, 分别求出Rμ1,Rμ2,…,Rμk与Rx的相关系数, 计算公式为

(7)

其中N表示信号的点数,μj表示第j个模态.

1.3 小波去噪

小波去噪中选择合适的小波基及确定分解的层数是实现去噪的前提, 然后对含噪声语音信号进行分解以获得不同尺度的小波系数.对这些小波系数进行比较后发现含噪声的小波系数比实际信号的小波系数小, 因此可选择合适的阈值与小波分解得到的系数进行比较.当小波系数高于阈值时, 可确定小波系数主要由实际语音信号产生并保留; 否则, 可认为小波系数由噪声产生并过滤掉.最后, 对小波系数进行小波逆变换, 再进行重构, 实现小波去噪.

根据小波去噪原理[11]可知, 小波去噪效果在很大程度上取决于恰当的阈值与阈值函数.硬阈值和软阈值是常用的两个阈值函数[12].硬阈值处理后的重构信号存在不连续、 振荡和失真现象等缺点; 软阈值函数虽然连续, 但常出现的偏差会导致重构信号出现高频部分信息丢失、 边缘模糊等问题.由于这些缺陷, 需对传统的阈值函数进行改进构建新的阈值函数.除阈值函数的选取外, 小波去噪阈值的选取也非常重要[13].在阈值选取过程中, 若阈值选择过小则不能将信号中的噪声滤除干净; 若选取的阈值过大则可能将有用成分滤除, 导致数据出现偏差.测试实验结果表明, 当用于小波分解的小波基选为sym8, 分解层数选为6层时去噪效果较好, 因此本文选取其用于实验.本文选取的阈值函数[14]为

(8)

(9)

其中σ2表示噪声的方差,N表示离散采样信号的长度,j表示小波分解的尺度.

2 VMD算法优化

用VMD处理信号时, 需预先设定分解模态分量的个数K和惩罚因子α.但在实际应用中信号是复杂多变的, 导致难以确定模态分量的个数K和罚因子α.因此, 选择合适的模态分解次数K和惩罚因子α是VMD分解结果的关键.

2.1 灰狼优化算法

灰狼优化(GWO)算法[15-16]是受灰狼捕食行为启发提出的一种群体智能优化算法. 由于该算法具有收敛性强、 输入参数少、 实现容易等优点, 在车间调度、 图像分类、 参数优化等领域应用广泛, 因此, 本文VMD分解所需的模态分解次数K和惩罚因子α采用GWO算法进行优化选取, 并利用适应度函数在解空间中随机搜索目标函数, 得到优化参数. 在使用GWO算法时, 需要社会分层、 包围、 捕猎和攻击猎物求解优化问题, 以获得适应能力更强的新一代种群. GWO算法的求解建模过程如下.

图1 狼群等级划分Fig.1 Wolves rank

1) 分层. 灰狼是群体生活的动物, 平均每个灰狼群有5~12匹灰狼. 为更好地生存, 在灰狼群体中有严格的社会等级划分和明确的任务分工制度, 如图1所示, 其中: 头狼是狼群中的统治者, 被称为α狼, 通常由一匹公狼和一匹母狼组成, 狼群中的组织和纪律事务、 执行制定的猎捕计划、 狼群居住地的选择等任务都由头狼完成;β狼是处于第二等级的狼, 一旦头狼死去即成为头狼, 它必须服从头狼的决定, 其在狼群中主要负责帮助头狼做出决策和向下级狼群发布命令; 其余的狼群等级依次为δ狼和ω狼, 下级狼必须服从上级狼的管理.灰狼群体按照该等级分工开展日常活动和群体狩猎活动.

2) 包围.在进行猎捕前, 需先确定猎物与灰狼之间的距离D以及灰狼的位置X, 表示为

D=|C·Xp(t)-X(t)|,

(10)

X(t+1)=Xp(t)-A·D,

(11)

其中t表示当前的迭代次数,A和C为系数向量,Xp(t)表示猎物位置, 即全局最优解,X表示灰狼群的位置, 即潜在的解空间.A和C的计算公式如下:

A=2a·r1-a,

(12)

C=2·r2,

(13)

随着迭代次数的增加,a的值将会由2递减至0, 随机产生的r1和r2属于[0,1].

3) 猎捕.包围猎物后狼群对猎物进行猎捕, 该过程严格遵循等级分层制度, 通常该过程由α狼、β狼和δ狼引导进行, 同时, 根据当前α狼、β狼和δ狼的最佳位置对ω狼的位置进行更新, 以此达到优化搜寻猎物的目的.猎捕过程中灰狼群的位置更新表达式为

Xi=Xk-Ai·Dk,

(14)

Xp(t+1)=(X1+X2+X3)/3,

(15)

图2 灰狼优化算法位置更新过程Fig.2 Location update process of grey wolf optimization algorithm

其中k=α,β,δ,i=1,2,3.位置更新过程如图2所示.

4) 攻击.包围猎捕后, 狼群将会发起攻击.发起攻击的目的是为了完成捕获猎物的行为, 通过调节A完成整个攻击过程.当a值随着迭代次数的增加由2递减至0时,A值将在[-2,2]内变化.狼群按照A值采取行动, 若|A|<1, 则灰狼群会集中攻击, 获得最优解; 反之, 灰狼群则会四散而去, 失去最优解, 同时开始寻求其他局部最优解.

2.2 排列熵

排列熵(permutation entropy, PE)[17]反映了一维时间序列的复杂性, 与Lyapunov指数相似. 但排列熵与Lyapunov指数、 分形维数等复杂参数相比, 其不仅计算简单且抗噪声干扰能力强[18-19]. 在计算信号的空间复杂度时可用排列熵度量, 该方法计算简单、 快速且能很好地处理非线性和非平稳信号, 因此广泛应用于各领域. 排列熵算法通过定量描述信号空间复杂度的变化, 可放大信号的微小变化, 突出信号的异常, 对信号去噪具有重要意义.

2.3 GWO算法优化的VMD

图3 GWO算法优化变分模态分解参数流程Fig.3 Flow chart of GWO algorithm optimizing variational mode decomposition parameters

采用GWO算法对VMD参数进行优化时, 可用排列熵作为适应度函数. 通过对适应度函数的计算, 从排列熵中得到信号的复杂性. 信号越复杂, 计算得到的排列熵越大, 反之亦然. 语音信号经VMD分解后, 如果有很多的噪声分量包含在IMF分量中, 则信号复杂性越高, 排列熵越大; 如果有很少的噪声分量包含在IMF分量中, 则信号的正则性越强, 信号越简单, 排列熵越低. 一旦确定了分量K和惩罚因子α的个数, 就采用VMD对其进行分解, 熵值最小的分量即为语音信号特征信息最好的分量. 因此, 参数优化的目标是使排列熵最小为适应值.

GWO算法优化变分模态分解参数的过程如图3所示. 在使用GWO算法优化的过程中首先需要选定适应度函数, 然后形成随机的初始化阶次种群, 在该种群条件下计算种群的适应度值, 判断是否达到终止条件. 若未达到终止条件, 则需再次进行等级划分、 跟踪、 包围、 攻击操作形成新的种群, 并重复前面的操作. 最后, 在达到条件后输出最优的参数组合.

3 GWO-VMD-WT去噪算法

在上述理论基础上, 本文提出一种GWO-VMD-WT去噪算法, 该算法的基本原理是: 首先使用GWO算法对VMD进行优化, 找到优化后组合[K0,α0]中的分解模态数K和惩罚因子α, 对语音信号进行分解; 然后利用相关系数滤波原理对分解后的模态分量选择有效模态和含有噪声模态, 并用小波阈值对噪声模态进行去噪; 最后重构去噪模态分量和有效模态, 使语音信号达到去噪目的. 算法流程如图4所示.

图4 GWO-VMD-WT去噪算法流程Fig.4 Flow chart of GWO-VMD-WT denoising algorithm

本文用去噪后的语音信号与原始含噪信号的信噪比(signal to noise radio, SNR)和均方误差(mean square error, MSE)评估语音信号的去噪效果. SNR值越大去噪效果越好, 均方误差MSE值越小, 反之则达不到很好的去噪效果. SNR和MSE的数学表达式分别为

(16)

(17)

其中x表示含噪信号,y表示去噪后信号.

4 实 验

图5 适应度函数值随进化代数的变化曲线Fig.5 Change curve of fitness function value with evolutionary algebra

4.1 仿真信号实验

分别使用本文算法和对比算法处理加10 dB高斯白噪声的仿真信号, 结果如图6所示. 不同算法对仿真信号进行实验的信噪比和均方误差列于表1. 由图6和表1可见, 在仿真信号中加入10 dB的高斯白噪声后, 使用本文算法能得到更接近仿真信号的效果, 更高的SNR和更低的MSE, 所以本文算法能更好地去除仿真信号中的噪声.

图6 不同算法去噪后的仿真信号Fig.6 Simulation signals after denoising by different algorithms

表1 不同算法对仿真信号进行实验的信噪比和均方误差

4.2 实际信号实验

为进一步验证本文方法的有效性, 选取一段发音为“蓝天, 白云, 碧绿的大海”的语音信号, 在该语音信号中加入信噪比为10 dB的高斯白噪声. 使用本文方法处理含噪信号得到优化VMD分解参数组合[20,1 458.8], 先对加噪语音信号使用该组合进行VMD分解, 然后利用相关系数选择模态分量, 最后结合小波实现去噪, 结果如图7所示. 不同算法对实际语音信号进行实验获取的信噪比和均方误差列于表2. 由图7和表2可见, 在实际语音信号中加入10 dB的高斯白噪声后, 使用本文算法能得到更接近语音信号的效果, 更高的SNR和更低的MSE, 所以本文算法能更好地去除语音信号中的噪声.

综上所述, 本文先利用GWO算法优化VMD分解参数, 然后使用优化的参数组合对语音信号进行分解, 用相关系数筛选原则选出有效模态和含噪模态, 对含噪模态进行小波阈值去噪后将有效模态和处理后模态进行模态重构, 该过程实现了语音信号的去噪, 同时避免了有用信号被滤除. 并且使用GWO算法优化VMD的参数组合可对语音信号进行精确分解, 分解过程不会产生模态混叠和伪分量. 优化过程中使用排列熵作为适应度函数, 可降低计算复杂度使GWO算法能尽快找到合适的分解模态数K和惩罚因子α的参数组合. 实验结果表明, 用本文算法处理信号得到的信噪比显著提高, 而均方误差也明显减少, 验证了本文算法的有效性.

图7 不同算法去噪后的实际语音信号Fig.7 Actual speech signals after denoising by different algorithms

表2 不同算法对实际语音信号进行实验的信噪比和均方误差

猜你喜欢

变分小波分量
构造Daubechies小波的一些注记
逆拟变分不等式问题的相关研究
基于MATLAB的小波降噪研究
求解变分不等式的一种双投影算法
带椭球势阱的Kirchhoff型方程的变分问题
一斤生漆的“分量”——“漆农”刘照元的平常生活
一物千斤
论《哈姆雷特》中良心的分量
基于改进的G-SVS LMS 与冗余提升小波的滚动轴承故障诊断
基于变分水平集方法的数字图像分割研究