基于Sigmoid框架的非负最小均方算法
2021-03-17樊宽刚邱海云
樊宽刚 邱海云
(江西理工大学 赣州 341000)
1 引言
自适应算法广泛应用于自适应控制、去噪、信道均衡和系统识别,其中应用最为频繁的是最小均方(Least Mean Square, LMS)和归一化LMS[1]。然而在收敛速度和计算精度上,这两种算法仍存在一些缺陷。为提高算法的性能,偏差补偿[2–4]的概念引进了自适应算法的数学模型,这一概念同时考虑输入和输出噪声的影响,根据无偏准则来补偿输入噪声引起的偏差,提高算法的收敛速率和计算精度。近年来,为更好地解决时间序列在线预测问题,核自适应算法[5–8]概念也被提出,通过核函数将输入数据映射到再生核希尔伯特空间(Reproducing Kernel Hilbert Space, RKHS),进而将非线性问题转换为线性问题进行分析,对于时间序列在线预测的应用,自适应算法的性能得到很大的改善。
在实际应用中,由于系统内在特性,需要在传统数学模型上添加一些约束,其中非负约束问题[9,10]是近几十年研究的一个热点,研究最为广泛的是非负最小均方[11](NonNegative Least Mean Square,NNLMS)。为了进一步提高NNLMS算法性能,以NNLMS为基础的系列变体算法[12]被提出,对应的算法性能分析也在相应的论文中进行[13]。虽然上述的NNLMS类算法在大多数噪声环境下有着良好的性能,但是性能分析和实验仿真发现这些算法存在收敛不均衡和大系数迭代扩散两大问题,为此加权非负最小均方(reweighted nonnegative least mean square)[14]和对数加权非负最小均方(Logarithmic Reweighting NonNegative Least Mean Square,LR-NNLMS)[15]被提出,这两类算法有效地解决了在稀疏系统下收敛不均衡和大系数迭代扩散的问题。虽然上述的算法对于稀疏系统识别问题有着较好的性能,但是仍然未解决脉冲测量噪声导致的算法失调问题。针对脉冲噪声环境的解决方案有将广义最大熵准则应用在自适应滤波而提出的GMCC算法[16]、使用步长缩放器(step-size scaler)的归一化LMS[17,18]、Sigmoid类算法[19]和使用广义对数代价函数导出的鲁棒最小对数均方(Robust Least Mean Logarithmic Square, RLMLS)[20]等。上述的方法很好地解决了脉冲噪声存在而引起的失调问题,但对于在非负约束下脉冲噪声存在而引起的失调问题未得到解决。
根据以上分析,本文将以在脉冲噪声环境下非负最小均方算法稳定性问题为研究重点。将传统非负代价函数嵌入Sigmoid框架得到新的代价函数能够有效抑制脉冲噪声影响,进而根据新的代价函数导出SNNLMS算法。此外,为了增强SNNLMS算法鲁棒性,改进算法在稀疏系统识别问题上的缺陷,本文还提出了基于反比例函数的IP-SNNLMS算法。
2 Sigmoid框架的非负最小均方算法
2.1 Sigmoid框架
脉冲噪声是较为常见的一种噪声,表现特性是持续时间短但幅值大,所以当脉冲噪声存在时,将造成大的估算误差,进而破坏算法的稳定性使其性能严重下降。本文利用Sigmoid函数[21]构架特性抑制脉冲噪声引起的大估算误差,在非负约束下将代价函数嵌入Sigmoid构架导出一种新的算法。
Sigmoid函数通用的表达式如(1)所示
其中,Sigmoid函数满足d [S(x)]=S(x)(1 −S(x)),易于求导。
根据文献[11]可知,非负最小均方算法数学模型表示为
将式(2)中代价函数J (w)嵌入Sigmoid框架得到新的代价函数JSk(w)
式中, β为一正实数,用于控制代价函数阈值,是调整抑制噪声效果的重要参数。下面给出两种代价函数的曲线图形,针对不同参数的函数曲线如图1、图2所示。
在图1、图2中,当估算误差超过一定值时,代价函数 JSk(w)梯度几乎为零,通过图2很明显地能够观察到JSk(w)的取值为有限值。不同于图1中的JSk(w)函 数曲线,JSk(w)值 不会随着估算误差ek无限增长。说明当存在大估算误差时,代价函数的梯度将趋近于零,进而算法的稳定性不会遭到破坏而导致失调。
取式(3)中JSk(w)表达式的偏导,偏导表达式为
图1 代价函数J (w)的曲线
图2 不同参数下代价函数J Sk(w)的曲线
式(4)分 为 Sk(1 −Sk) 项 和∂wJ(w)项,其 中∂wJ(w)项为NNLMS算法中的代价函数偏导。当估算误差 ek趋近于0时,Sk(1 −Sk)项近似等于0.25。此时 ∂wJSk(w) 与∂wJ(w)近 似呈 线 性关 系,即Sigmoid构架的代价函数在非脉冲噪声环境下,导出的新算法仍然有NNLMS算法的良好性能。
2.2 Sigmoid非负最小均方算法(SNNLMS)
本文考虑输入输出具有以下线性模型特征的未知系统,算法信号模型表示为
其中,dk是 系统的输出信号,nk表 示干扰噪声。xk=[xn,xn−1,···,xn−L+1]为 系统的输入信号,w0=[w1,w2,···,wL] 为 系统参数向量, L代表系统阶数。其中,输入信号xk和 输出信号dk为已知数据。估算误差ek表达式为
式中,w (k)代 表第k 次迭代后得到的对w0的估算向量,估算误差 ek是用于衡量估算向量与系统参数向量之间偏差。联合式(2)和式(3)即可得到SNNLMS算法模型,算法的数学模型为
文献[11]中提出式(7)这类不等式优化问题的解决方案,主要是通过使用KKT (Karush-Kuhn-Tucker)条件和不动点迭代算法(fixed-point iteration algorithm)得到优化的迭代算法表达式。根据不等式数学模型式(7)得到迭代算法表达式为
其中,等式中 fj(w(k))项 是一个关于w (k)的随机函数,且满足fj(w(k))>0。 µ 为步长,是用于调节算法收敛速度和估算精度的正实数。由式(2)和式(6)可知传统代价函数J (w)偏 导表示为∂wJ(w)=−2xkek,将∂wJ(w)代 入式(4)得到代价函数∂wJSk(w)偏导为
用式(9)中的偏导等式取代迭代等式(8)中的偏导项,然后将得到的迭代等式写成向量的形式,此时迭代式(8)将变成
式中, Dw(k)是 对角线上元素为w (k)的对角矩阵。由上述可知 f (w(k))是 一个关于w (k)的随机函数向量,令函数fj(w(k))=0.5代入式(10),整理迭代等式,即可得到SNNLMS算法表达式为
2.3 反比例Sigmoid非负最小均方算法(IP-SNNLMS)
通过2.2节中SNNLMS算法的数学模型的建立,导出的算法具备抑制脉冲噪声影响的能力。由于算法迭代式(11)右边第2项中w (k)的存在,SNNLMS算法迭代的收敛速率及算法稳定性将会受到w (k)和系统参数向量的影响。如果系统参数向量 w0中存在零或极小值系数,则当算法迭代的估算误差偏小时,受w (k)值的影响收敛速度会减慢甚至停滞,进而影响稳态时的估算精度。如果系统参数向量w0中 的系数是较为分散的值,则步长µ 的选择和迭代向量初始值的选择都会受到影响。为了解决上述的这些问题,提高SNNLMS算法的鲁棒性。本文引入了关于 w (k)的 反比例函数fj(w(k)),反比例函数的表达式为
其中 γ为一小正实数,为了保证函数分母不为零。用式(12)中的反比例函数取代式(10)中的f(w(k))项,则式(10)变为
下面通过曲线来比较2.2节模型中的gj(w(k))=wj(k)项 与本小节gj(w(k))项的函数特性,曲线图形如图3所示。
如图3所示,SNNLMS算法中的 gj(w(k))项与wj(k)是 线性关系,所以无法抑制w (k)函数项对算法迭代的影响。图3显示,由反比例函数生成的gj(w(k))项 受w (k)值 影响几乎可以忽略,当wj(k)到达一定值时gj(w(k))将近似等于1,此时迭代等式中w(k)函数项不会对算法迭代的收敛速率和估算精度造成明显的影响。
整理上述的迭代式(13),即可得到IP-SNNLMS算法迭代等式为
通过上述算法推导,IP-SNNLMS算法仍然具备抑制脉冲噪声影响的能力,同时算法的改进也增强了算法鲁棒性,抑制w (k)函数项对算法迭代收敛的影响。
图3 不同参数下两种算法的g j(w(k))项测试曲线
3 实验仿真
本节通过计算机软件仿真比较各类算法的性能,主要分为两小节实验,其中第3.1节实验是仿真各类算法在脉冲噪声环境下的性能,为了验证SNNLMS算法在脉冲噪声环境下的稳定性。3.2节实验是为了比较SNNLMS算法和IP-SNNLMS算法的性能。
3.1 SNNLMS算法在脉冲噪声环境下的性能
在本小节实验中输入信号xk为 高斯白噪声信号,背景噪声设定为信噪比SNR=10 dB,系统输入参数w0=[0.8,0.6,0.5,0.4,0.3,0.2,0.1,0,−0.1,−0.2],初始的迭代向量选择从单位均匀分布数据中随机抽取。脉冲噪声 gk是添加在有背景噪声的输出信号yk上 ,gk是 由gk=akuk获 得,其中ak为P(w =0)=p的二项式分布,uk是 零均值的高斯分布且方差=1000。本小节实验是为了研究提出的SNNLMS在脉冲噪声环境下的性能,图4—图6将显示SNNLMS,GMCC, SLMS和NNLMS的性能曲线。衡量算法性能是通过计算各个算法在迭代过程中的均方偏差(MSD),计算公式为
本实验在保证输入向量和系统参数一致的前提下,进行各种算法的性能比较。其中图4显示在p=0时各算法的性能,即在非脉冲噪声下的性能比较。各算法步长和对应参数选择已在图例中标注。对于SNNLMS中参数 β的选择,在上述分析中β =0.1的图形表现出良好的性能,所以在下面的实验中设定SNNLMS中的参数 β =0.1。图5和图6分别显示在p 等于0.1和0.5的脉冲噪声下的性能比较。
图4 p =0时4种算法的性能曲线
图5 p =0.1时4种算法的性能曲线
图6 p =0.5时4种算法的性能曲线
对比图4中的各算法曲线,在非脉冲噪声下SNNLMS依然有着和NNLMS一样良好的性能,同时这两种算法在非负约束下有着比GMCC和SLMS更好的估算精度。通过观察图5和图6可以发现,在脉冲噪声存在时SNNLMS依然保持着良好的收敛速度和估算精度,而NNLMS在迭代过程中已经失调。实验结果说明SNNLMS能够抑制脉冲噪声造成的影响,保持非负算法的鲁棒性。
3.2 SNNLMS和IP-SNNLMS性能比较
本小节实验在稀疏系统下进行两种算法的性能比较,衡量算法性能的参数与上述一致,通过计算在迭代过程中的均方偏差(Mean Square Displacement, MSD)。实验分别在非脉冲噪声和脉冲噪声下进行,非脉冲噪声是指背景噪声为信噪比SNR=10 dB,脉冲噪声添加方式和上述一样且选择p =0.1。对于IP-SNNLMS中参数γ 的选择,在上述图形分析中 γ =0.01的曲线表现出很好的性能,所以在下面实验中设定参数 γ =0.01。稀疏系统参数向量为
图7显示非脉冲噪声下SNNLMS和IP-SNNLMS的性能比较,图8为在脉冲噪声( p =0.1)下两种算法的性能比较。通过观察图7和图8,很明显地发现IP-SNNLMS在两种噪声环境下都有着更好的收敛速度和估算精度。本实验说明IP-SNNLMS增强了算法在稀疏系统识别问题上的鲁棒性,明显地提高了算法的性能。
图7 非脉冲噪声下稀疏系统中两类算法性能曲线
图8 脉冲噪声下稀疏系统中两类算法性能曲线
3.3 算法容忍性分析和仿真参数对算法性能影响分析
首先研究不同强度的脉冲噪声下算法性能,本小节中分别选择不同的p 值(0.1, 0.2, 0.4, 0.6, 0.8)进行仿真。仿真实验参数设置和3.1节实验一致, 背景噪声SNR=5 dB。图9中曲线通过调节算法的步长µ使得各曲线收敛速度一致,各曲线其他参数的设置保持一致。图9显示随着脉冲噪声强度增加,SNNLMS算法的收敛精度和速率下降。对于低脉冲噪声强度(p =0.1, 0.2, 0.4),算法性能下降不明显。但是当脉冲噪声强度过大( p=0.6~0.8)时,将导致有效信号数据过少,使得算法精度和收敛速度明显下降,需要大步长提高算法的收敛速度但将造成算法稳定性下降。本小节所有实验结果都通过100次独立试验得到。
其次,研究本文提出的SNNLMS算法在不同高斯噪声强度下的性能。设置背景噪声分别为SNR=10, 5, 1, 0, –5 dB, µ =0.028时,各曲线参数设置保持一致,脉冲噪声强度设置在p=0.2。图10给出了不同SNR的背景噪声下算法性能曲线,观察图10可知随着高斯噪声强度增强算法收敛精度明显降低,尤其在SNR=–5 dB时收敛精度下降至–15 dB,需要进一步改善输入信号质量。不同于脉冲噪声的影响,算法的收敛速度没有明显的变化。
最后,本小节研究各仿真参数对SNNLMS算法性能的影响。图11实验参数设置同3.1节,背景噪声SNR=5 dB。图12实验设置同3.2节,背景噪声SNR=5 dB。图11和图12的曲线是在不同的脉冲噪声强度下的仿真结果,其中图11是不同 β值下的性能曲线,图12是不同γ 值下IP-SNNLMS算法的性能曲线。图11显示 β值的选择对稳态精度有明显的影响,参数β 选取0.1~0.8时,收敛精度误差在3 dB,算法的性能变化不明显。但当 β 值过大(β =1, 5)时算法的稳态精度明显下降。图12显示选择过大的γ 值(γ =0.1, 0.5, 1, 2)时算法的稳态精度明显下降其收敛精度下降超过6 dB。由上述分析可知,3.1节和3.2节的仿真实验 β 和γ 值分别设定为0.1和0.01,算法有着良好的性能。
图9 不同脉冲噪声强度下算法性能
图10 不同高斯噪声强度下算法性能
图12 IP-SNNLMS算法不同γ 下稳态精度曲线
4 结论
本文针对在脉冲噪声环境下非负最小均方算法稳定性问题,提出了将传统非负代价函数嵌入Sigmoid构架导出的SNNLMS算法。实验证明SNNLMS算法提高了非负算法在脉冲噪声下的鲁棒性,能有效地抑制脉冲噪声造成的影响。同时针对SNNLMS算法在稀疏系统识别问题上的局限性,本文通过加入反比例函数导出IP-SNNLMS算法。在稀疏系统识别实验中,IP-SNNLMS算法有着更好的收敛速度和估算精度。仿真结果表明:(1)SNNLMS算法在脉冲噪声中有着良好的性能。(2) IP-SNNLMS算法增强了在稀疏系统识别问题上的鲁棒性,有着比SNNLMS算法更优越的性能。(3)低脉冲噪声的强度下,算法的收敛精度和收敛速度下降但是不明显;当脉冲噪声的强度过大( p=0.6, 0.8)时,算法的收敛精度和收敛速度明显下降,需要大步长提高算法的收敛速度但将造成算法稳定性下降。高斯噪声强度增强明显降低了算法的收敛精度,但不影响算法的收敛速度。 β 和γ 值的选择对算法的性能有明显的影响不能过大,过大的 β 和γ 值将导致算法收敛精度严重下降,实验结果中 β =0.1 和γ =0.01时算法性能最佳。