神经网络自适应噪声抵消系统的性能比较与仿真
2018-12-13李方鑫王建新肖超恩
张 磊 李方鑫 王建新 肖超恩
(北京电子科技学院 北京 100070)
0 引 言
自适应噪声抵消系统的基本要求是原始输入和参考输入中信号必须统计相关[1]。在传统的抵消算法中,要求噪声满足线性相关的条件。然而在现实中,噪声通道往往十分复杂,具有非线性的特性;当两路输入噪声非线性相关时,传统的自适应噪声抵消算法(LMS、NLMS、RLS)[2-5]去噪效果难以保证,甚至产生信号失真。因此,需要寻找一种有效应对噪声非线性相关的自适应噪声抵消方法。
神经网络[6-7]利用大量的人工神经元相互连接进行计算,根据外界的信息改变自身的结构,主要通过调整神经元之间的权值来对输入的数据进行建模,最终具备解决实际问题的效果。目前,在人工神经网络的实际应用中,绝大多数的神经网络模型都采用BP网络及其变化形式,它是前馈型神经网络的核心部分[8]。近年来,已有部分研究将神经网络应用于自适应噪声抵消系统中,在有源噪声控制方面取得了一定的效果。
2010年,Miry等[9]提出了一种基于模糊神经网络[10]的自适应噪声消除算法,该算法用于长距离通信信道的噪声消除,系统的主要优点是易于实施和快速收敛。2010年,李晓艳[11]将基于神经网络的自适应噪声抵消器与基于LMS算法的自适应噪声抵消器进行对比,在两路噪声信号线性和非线性相关时进行了性能比较。结果表明基于神经网络的自适应噪声抵消器在两路信号线性相关和非线性相关时,均具有良好的噪声抵消能力。2011年,蒋威等[12]为了提高无线电引信的抗干扰性,采用量子神经网络建立自适应干扰对消系统,实现对无线电引信干扰噪声的自适应抵消,提高了无线电引信的抗干扰性。2012年,周伟等[13]研究了基于最小均方误差LMS准则、递推最小二乘RLS准则和线性神经网络ADALINE[14]的三种自适应噪声抵消算法。结果表明,采用ADALINE算法信噪比至少改善26.6 dB,实现了高性能滤波。2014年,Dixit等[15]利用神经网络实现了基于最小均方自适应滤波器算法(LMS)的自适应噪声抵消器,提出了自适应噪声抵消器的系数通过神经网络而不是数值自适应算法进行调整的方法。与直接使用LMS作为自适应算法相比,使用神经网络调整系数后的LMS算法,收敛速度更快。但是相关文献均没有考虑神经网络结构的变化对噪声抵消效果的影响。
本文基于上述问题,分别在原始输入和参考输入中,噪声线性相关和非线性相关的条件下,研究神经网络自适应噪声抵消系统不同隐含层神经元节点数、不同隐含层传输函数、不同神经网络学习算法以及不同信噪比原始输入下,系统的噪声抵消效果。
1 神经网络自适应噪声抵消系统基本原理
神经网络自适应噪声抵消系统的噪声抵消原理如图1所示,噪声和信号沿信道传到传感器A、B中。除了接收到信号s之外,传感器A还接收到一个不相关的噪声n1。信号加噪声为s+n1,组成抵消系统的“原始输入”。传感器B用来接收与信号不相关的,但是以某种未知的方式与噪声n1相关的噪声n0,这个传感器给系统提供“参考输入”。将噪声n0通过神经网络自适应滤波系统加以调整,使其产生近似为n1的输出y。再将该输出从原始输入s+n1中减去,得到系统输出为z=s+n1-y。
图1 神经网络算法自适应噪声抵消系统
噪声源的噪声n0经过实际环境得到噪声n1,两路噪声(n0和n1)往往是非线性的,可以用非线性变换来模拟实际中噪声所经过的通道。要想得到滤波器的输出y,必须尽可能地辨识出该非线性函数,相当于获得自适应神经网络,使得在获得噪声源n0的条件下,自适应神经网络无限逼近非线性变换函数,此时y就能无限逼近原始输入中的噪声n1。现实条件中,由于n1难以获得,而传感器A能得到d,且d为信号s与n1的叠加,s与n1不相关,所以利用d替代n1对网络进行训练,完成对噪声通道的模拟,得到系统输出为z=d-y,达到噪声抵消的目的。
2 自适应噪声抵消系统的模型
2.1 输入信号模型
噪声抵消系统的输入信号分为两个部分:原始输入和参考输入。根据文献[11]提出的参考输入与原始输入中,噪声信号相关性的模型,在MATLAB R2014a环境下对两路输入信号进行建模,如图2所示。设原始输入为50 Hz单频信号和randn函数产生的服从正态分布的随机噪声信号的线性叠加,采样频率为1 kHz。
图2 两路噪声信号建模
根据图2的模型,在两路噪声线性相关条件下,设参考输入n1与原始输入中噪声信号n0的关系为线性变换n0=n1+1。在两路噪声非线性相关条件下,设参考输入n1与原始输入中噪声信号n0的关系为非线性变换n0=sin(n1)。
2.2 BP神经网络模型
根据图1的噪声抵消模型,本文采用的单输入单输出BP神经网络结构如图3所示。BP神经网络输入层、隐含层、输出层的层数各为一层。输入层节点数和输出层节点数为1,隐含层节点数为N。
图3 BP神经网络结构
输入层节点的输出等于整个网络的输入信号x(n),隐含层第i个神经元节点的输入vi(n)等于权向量ω1i(n)与x(n)的乘积:
vi(n)=ω1i(n)x(n)
(1)
假设f(·)是隐含层传输函数,则隐含层第i个神经元的输出等于:
ui(n)=f(vi(n))
(2)
输出层节点的输入等于权向量ω2i(n)与ui(n)的加权和:
(3)
假设g(·)是输出层传输函数,输出层神经元的输出等于:
y(n)=g(w(n))
(4)
网络的总误差为:
e(n)=d(n)-y(n)
(5)
式中:d(n)为期望信号。
2.3 噪声抵消系统的评价指标
若按照信号功率来计算信噪比[16],自适应噪声抵消系统的输入信噪比为原始输入信号中的有用信号s的功率与干扰噪声n0的总功率之比,并将结果取以10为底数的对数,即:
(6)
输出信噪比为有用信号s与经过噪声抵消系统的剩余噪声z-s总功率之比,将结果取对数:
(7)
式中:z为噪声抵消系统的输出信号。
本文定义信噪比增量ΔSNR为:
ΔSNR=SNRout-SNRin
(8)
3 仿真分析
根据前述模型,分别对不同隐含层节点数、不同神经网络学习算法、不同隐含层传输函数和不同信噪比原始输入下系统的噪声抵消效果进行仿真分析。
在MATLAB R2014a环境下,使用newff函数创建一个结构为1-N-1的BP神经网络(N表示隐含层节点数)。网络的隐含层使用tansig或logsig函数,输出层使用purelin型线性函数,训练过程的学习速率取为0.01,期望误差值为0.01,学习算法[17]使用GD(标准梯度下降算法)、GDM(带动量的梯度下降算法)、GDA(可变学习速率梯度算法)、RP(弹性梯度算法)、LM(Levenberg-Marquardt算法)、BFG(拟牛顿算法)、OSS(一步正割算法)。
3.1 改变隐含层节点数
隐含层节点数对BP神经网络性能有很大影响。一般较多的隐含层节点数可以带来更好的性能,但会导致训练时间过长。目前并没有一个理想的解析式可以用来确定合理的神经元节点数,通常的做法是采用经验公式给出估计值[18]。
本节中,神经网络学习算法使用LM算法,网络的隐含层使用tansig函数,改变隐含层节点数,对噪声抵消系统进行仿真。
原始输入和参考输入中,噪声线性相关时(两路噪声线性相关),进行10次实验并对结果取平均值后,仿真结果如图4所示。设定原始输入信号信噪比为-0.87 dB,输出信号信噪比随隐含层节点数增加呈下降趋势。在本节仿真的1-N-1网络结构中,当隐含层节点数为1个时,输出信号信噪比为26.24 dB,输出信号与原始输入的ΔSNR为27.11 dB,达到最佳的噪声抵消效果。
图4 隐含层节点数仿真结果图
在两路噪声线性相关的条件下,根据实验结果,优化的单输入单输出BP神经网络隐含层节点数的公式为:
(9)
式中:取值范围为[0,5]的整数,计算结果向0取整。
原始输入和参考输入中,噪声非线性相关时(两路噪声非线性相关),进行10次实验并对结果取平均值后,仿真结果如图5所示。设定原始输入信号信噪比为0.42 dB,输出信号信噪比随隐含层节点数增加呈下降趋势。在本节仿真的1-N-1网络结构中,当隐含层节点数为1时,输出信号信噪比为4.76 dB,输出信号与原始输入的ΔSNR为5.18 dB,达到最佳的噪声抵消效果。
图5 隐含层节点数仿真结果图
在两路噪声非线性相关的条件下,根据实验结果,优化的隐含层节点数的经验公式与式(9)相同。
3.2 改变学习算法
使用式(9),在两路噪声线性相关和非线性相关的条件下,本节将隐含层节点数q确定为3。网络的隐含层使用tansig函数,神经网络学习分别使用GD、GDM、GDA、RP、BFG、LM、OSS算法,进行仿真。
两路噪声线性相关时,设定原始输入信号信噪比为-5.58 dB,经过神经网络噪声抵消系统后,输出的信号信噪比如图6所示。对仿真结果取10次平均后,神经网络学习算法改善效果依次为:
OSS>LM>BFG>RP>GDA>GDM>GD
其中,OSS、LM、BFG和RP四种学习算法对原始输入信号的ΔSNR都超过了25 dB,噪声抵消效果明显优于其他3种算法。
图6 神经网络学习算法仿真结果图
两路噪声非线性相关时,设定原始输入信号信噪比为-3.34 dB,经过神经网络噪声抵消系统后,输出信号的信噪比如图7所示。在两路输入非线性相关时,神经网络噪声抵消器的改善效果较两路输入线性相关时较弱,7种学习算法中对原始输入信号的ΔSNR最大为6.70 dB(BFG),且经过各学习算法噪声抵消后的输出信号平均信噪比为3.11 dB,噪声抵消效果差别不大。
图7 神经网络学习算法仿真结果图
3.3 改变传输函数
logsig函数的特点是(-∞,+∞)范围的数据被映射到区间(0,1),使用的计算公式为:
(10)
tansig函数是双曲正切sigmoid函数,在tansig函数中,输出被映射在(-1,1)内。计算公式为:
(11)
神经网络学习使用GD、GDA、GDM、LM、OSS、RP、BFG算法,根据式(9),在两路噪声线性相关和非线性相关的条件下,本节将隐含层节点数q确定为3,对网络的隐含层分别使用logsig、tansig函数进行仿真。各组仿真实验进行10次,并对结果取平均值。
两路噪声线性相关时,设定原始输入信号信噪比为-3.43 dB,仿真结果如图8所示。神经网络学习使用GD和GDM算法,经过不同传输函数得到的输出信号之间的SNR差值大于3 dB;GDA、LM、OSS、RP和BFG算法经过不同传输函数得到的输出信号之间的SNR差值小于1 dB。结果表明,神经网络学习使用GD和GDM算法时,相比logsig函数,噪声抵消系统使用tansig作为传输函数得到的输出信号,噪声抵消效果显著;其余五种算法由传输函数的差异产生的噪声抵消效果差别不大。
图8 传输函数仿真结果图
两路噪声非线性相关时,设定原始输入信号信噪比为-2.50 dB,仿真结果如图9所示。神经网络训练使用GD和GDM算法,经过不同传输函数得到的输出信号之间的SNR差值小于1.3 dB;GDA、LM、OSS、RP和BFG算法经过不同传输函数得到的输出信号之间的SNR差值小于0.5 dB。结果表明,两路噪声非线性相关时,噪声抵消系统使用tansig作为传输函数得到的输出信号,ΔSNR较大,噪声抵消效果较好;其余五种算法由传输函数的差异产生的噪声抵消效果差别不大。
图9 传输函数仿真结果图
3.4 不同信噪比原始输入下的噪声抵消效果
两路噪声线性相关和非线性相关时,根据式(9),将隐含层节点数q确定为3,隐含层传输函数使用tansig。设定原始输入为不同信噪比的信号,在两路噪声线性相关和非线性相关的条件下,比较使用BFG、GD、GDA、LM学习算法的噪声抵消效果。
两路噪声线性相关时,噪声抵消系统的原始输入和经神经网络不同算法训练后,输出信号信噪比如图10所示。原始输入信号的信噪比取-10~0 dB中的值,经过系统噪声抵消后,各算法输出信号信噪比至少提高了2 dB,且随着原始输入信号信噪比的提高,系统的输出信号信噪比也在提高。结果表明,两路噪声线性相关时,神经网络噪声抵消系统对信噪比小于0 dB的输入信号有显著的噪声抵消效果。
图10 系统的噪声抵消效果
两路噪声非线性相关时,噪声抵消系统的原始输入和经神经网络不同算法训练后,输出信号的信噪比如图11所示。原始输入信号的信噪比取2~10 dB中的值,经过系统噪声抵消后,各算法输出信号信噪比平均提高了1~1.5 dB,且随着原始输入信号信噪比的提高,系统的输出信号信噪比也在提高。结果表明,两路噪声非线性相关时,神经网络噪声抵消系统对信噪比大于0 dB的输入信号有良好的噪声抵消效果。
4 结 语
BP神经网络具有非线性映射和学习的能力,可用于噪声抵消系统中噪声的非线性建模。本文利用BP神经网络组成自适应噪声抵消系统,在原始输入和参考输入中噪声线性相关和非线性相关的条件下,研究了不同隐含层节点数、不同神经网络学习算法、不同隐含层传输函数对系统噪声抵消效果的影响,并优化了噪声抵消系统中单输入单输出BP神经网络隐含层节点公式。在不同信噪比原始输入下,比较了系统的噪声抵消效果。从仿真结果可知,系统的噪声抵消效果受到隐含层节点数的影响;在隐含层传输函数选择上,建议使用tansig作为传输函数;在原始输入和参考输入中噪声线性相关时,神经网络噪声抵消系统对信噪比小于0 dB的输入信号有显著的噪声抵消效果;两路输入中噪声非线性相关时,系统对信噪比大于0 dB的输入信号有提高信噪比的效果。噪声抵消系统中BP神经网络采用优化后的隐含层节点数公式,具有很强的降噪能力,可用于低信噪比下噪声抵消。