【学术论文】基于神经网络的含噪动态源分离算法
盲源分离(Blind Source Separation,BSS)[1]技术旨在从M个混合信号中恢复出N个统计独立的源信号,这里的“盲”是指源信号和混合信道的先验知识未知。由于这种“盲”的特性,BSS被广泛的应用于数字通信、阵列信号处理、语音和图像处理等领域中。线性瞬时混合模型是BSS问题中最常见的模型之一,适用于远程通信等环境,该模型同时也是其他混合模型(如卷积混合)的基础模型,其数学描述如下:
其中A为未知混合矩阵,t为采样时刻,s(t)=[s1(t),…,sN(t)]T为N个未知的统计独立的源信号组成的矢量,x(t)=[x1(t),…,xM(t)]T由M个可获取的混合信号组成,n(t)=[n1(t),…,nM(t)]T包含M路加性高斯白噪声。此时,BSS问题转化为寻找一个解混矩阵W,使得输出y(t)=Wx(t)为输入s(t)的估计,且允许存在幅度和排列次序的不确定性。
为解决上述问题,很多有效的方法被提出,如基于独立成分分析[2]、非线性主成分分析[3]的方法等,但是这些方法大部分都需要已知源信号的数目,而且一般都假设源信号的数目与混合信号的数目相等,即M=N。在实际应用中,这样的设定往往是不成立的,因为源信号数目作为源端信息常常是不可直接获取的,甚至有可能动态变化,例如在无线通信系统中,接入系统的用户数目可能随时都在改变。可见,实际应用中,M=N很难满足,当设定接收混合信号的传感器数目足够多时,往往出现M>N的超定情况。对于源数目未知且在超定假设下的BSS问题,文献[4]首先在白化阶段估计出源数目
,然后将混合信号维度M降低到
,利用自然梯度算法解决上述BSS问题,但是当混合矩阵为病态时或者源信号之间幅值比例失调严重时,这种算法可能会失效。文献[5]从理论上证明了最小互信息准则能够用在超定的情况下,并提出一种适用于未知源数目的改进的自然梯度算法。文献[6]利用自组织结构的神经网络对瞬时源信号数目进行估计,并调整神经网络大小进行混合信号的分离。文献[7]提出一种自适应神经网络算法(Adaptive Neural Algorithm, ANA)进一步提高了收敛的稳定性,但是收敛速度较慢。文献[8]在ANA算法的基础上加入了动量项,提出了一种基于神经网络和动量项的动态源恢复算法(Neual Network with Momentum for Dynamic Source Number,NNM-DSN),该算法收敛速度更快且稳态误差更小。但是上述算法通常都不考虑噪声,算法的实用化程度不高。
本文针对含噪动态源条件下的BSS问题,提出了一种新型在线盲源分离算法,该算法包括两部分:第一部分是基于最小描述长度(Rissanen’s Minimum Description Length,MDL)[9]的一种动态源数目估计算法,该算法能实时精确地估计信道中的瞬时信源数目;第二部分是基于偏差去除的变步长神经网络算法,该算法采用前馈神经网络结构,在学习准则中加入了由噪声引起的偏差去除项,并在此基础上给出了变步长策略。仿真实验表明,本文算法在含噪静态源和动态源情况下能实现源信号的准确恢复,相比于含噪情况下的ANA算法以及NNM-DSN算法,本文算法在静态源和动态源情况下性能都更加优异,收敛速度更快,且稳态分离性能接近无噪情况下NNM-DSN算法的性能。
对于含噪动态源条件下的BSS问题,首先必须要确定瞬时源信号数目
,然后将混合信号矢量的维度降低到
维,其中M-
个高度相关的成分将被去除,以此来调整神经网络的大小,使得问题变成源信号数目和混合信号数目相等的含噪BSS问题,利用本文提出的基于偏差去除的变步长神经网络算法即可得到源信号的估计。图1所示为算法的框架图,其中神经网络和学习算法共同作用可实现混合信号的分离。下面将分别介绍源数目估计和混合信号分离方法。
1.1 源数目估计
对于动态源的瞬时源数目估计,文献[7]采用改进的交叉验证(cross-validation)算法;文献[8]对混合信号协方差进行特征分解,利用特征值的结构对源信号数目进行估计,但是上述算法均用于无噪声的条件下。一些经典的批处理源数目估计算法(如MDL)可以用在有噪声的情况下,因此本文基于MDL提出一种动态源数目估计算法,能实时精确地估计信道中的信源数目。
选用当前时刻和前B-1时刻的混合信号值对当前时刻的源信号数目进行估计,定义t时刻的瞬时协方差矩阵为:
其中,上标H代表共轭转置操作,t≥B。当t<B时,瞬时协方差矩阵按文献[7]中给出的递归方式获得。对瞬时协方差矩阵进行特征值分解得到M个特征值如下(降序排列):
其中,σ2为噪声的功率,则利用MDL检测准则即可估计出当前时刻的瞬时源信号数目。
利用上述方法进行瞬时源信号数目估计存在一个问题,即在源信号数目变化处,会出现一小段过估计的情况。如图2所示为源信号数目变化处的示意图,N1为源信号数目变化前的信号个数,N2为变化后的信号个数,t1时刻为源信号数目变化的临界点,可以看出此时刻的前B-1个时刻处,源信号数目保持稳定不变,因此利用上述方法能准确地估计出源信号数目为N1。t2时刻满足t2-B+1=t1,且前B-1个时刻处,源信号数目保持稳定,因此同理可准确估计出源信号数目为N2。在t1和t2之间的时刻如t′处,源信号数目可能会过估计,但由于t1和t2的时间差小于B,所以这种过估计的持续时间不会超过B。
为解决上述问题,算法在检测到源数目变化的时刻开始记录当前估计源数目值,在此后的γB(1<γ≤1.5)时间内,若估计源信号发生变化,则将第一次变化与第二次变化之间的源数目值更改为第一次变化之前的源数目值,再从第二次源数目变化的时刻开始记录,重复上述的检测,直到在记录开始时刻后的γB时间段内估计源数目值不发生变化,则停止记录,等待下一次估计源数目变化。采用这种方法即可消除源信号数目变换处的过估计问题。
1.2 混合信号的分离
一般地,解混矩阵的元素wij被认为是神经网络的权值,可以通过梯度下降法对其进行调整。本文考虑基于前馈神经网络的稳健的学习准则,表达式如下:
将式(6)代入到式(4)中可得到基于偏差去除的神经网络算法,但是算法中步长μ(t)必须适当进行选择,μ(t)太小则收敛速度过慢;反之,则稳态波动太大。为克服上述问题,引入变步长策略,参照文献[11],μ(t)可以按下列递推式进行调整:
为验证本文提出算法在含噪动态源条件下的性能,本文将与文献[7]中的ANA算法和文献[8]中的NNM-DSN算法进行对比。源信号的选取与文献[7-8]中一致,设置采样率为1 kHz,则源信号波形示意图如图3所示,混合矩阵A随机生成,只要满足列满秩即可。本文采用PI指数(performance index)[2]来评价算法的分离性能,PI越小代表分离性能越好。
仿真实验包括两种情况,一种是静态源的情况,另一种是动态源的情况。所有实验将进行100次Monte Carlo试验,在下面的实验中,n=k(k≤6)的意思是取图3中前k个信号作为源信号,设置B=200,γ=1.2。
2.1 静态源的情况
本小节考虑静态源的情况,设n=5保持不变,接收传感器数为8,取10 000个样值点,信噪比(Signal-to-Noise Ratio,SNR)设置为10 dB。图4所示为静态源情况下采用本文算法得到的源数目的估计图,可以看到算法很快得到了准确的源数目。图5为静态源情况下采用本文算法得到的输出信号的波形图,图中显示的是最后500个输出样值点,由图可知,输出信号完成了源信号的恢复,仅存在幅度和排列次序的不确定性。图6为有噪声存在时ANA算法、NNM-DSN算法、本文算法以及无噪声时NNM-DSN算法在静态源情况下的平均PI性能对比图,其中无噪声时的NNM-DSN算法用来作性能参照,由图可知,当噪声存在时,ANA算法和NNM-DSN算法性能恶化且稳定性降低,而本文算法平均PI性能优于含噪情况下的ANA算法和NNM-DSN算法,且接近无噪声时的NNM-DSN算法性能,与含噪情况下的ANA算法和NNM-DSN算法相比,本文算法也具有更快的收敛速度。
2.2 动态源的情况
本小节考虑动态源的情况,设n=3,6,2,取15 000个样值点,具体设置方式如下:
设信噪比为10 dB,接收传感器数为8,图7所示为动态源情况下本文算法进行源数目估计的示意图,可以看到源数目得到了快速准确的估计。图8为动态源情况下采用本文算法得到的输出信号波形图,取3种不同源数目情况下的分离信号最后300个样值点,其中空白框表示无输出,由此可见,混合信号被成功地分离,仅存在幅度和排列次序的不确定性。图9为有噪声存在时ANA算法、NNM-DSN算法、本文算法以及无噪声时NNM-DSN算法的在动态源情况下的平均PI性能对比图,同样,无噪声时的NNM-DSN算法用来作性能参照,当源数目动态变化时,所有算法都能调整至收敛,ANA算法与NNM-DSN算法在有噪声情况下平均PI定性变差,与有噪声情况下的ANA算法与NNM-DSN算法比较,本文算法平均PI性能更优,收敛速度更快,并且稳态时的平均PI性能接近无噪声时的NNM-DSN算法的性能。
本文针对含噪动态源的情况提出了一种新型在线盲源分离算法,包括两部分,即:基于MDL的动态源数目估计算法和基于偏差去除的变步长神经网络算法。新型算法能实时准确地估计出瞬时源信号的数目,并在含噪条件下对混合信号进行成功分离。仿真实验表明,本文算法在含噪静态源和动态源情况下都能准确地恢复出源信号,相比于含噪情况下的ANA算法和NNM-DSN算法,本文算法具有更好的分离性能和更快的收敛速度,且分离性能接近无噪情况下的NNM-DSN算法性能。