一种多目标声信号混叠下的识别方法与流程
本发明涉及声音信号处理领域,具体涉及一种多目标声信号混叠下的识别方法。
背景技术:
在实际战场环境下,低空飞行目标多以编队的形式出现,传感器阵列采集到的声信号不再是单一的目标信号,而是多个目标声信号的混叠。这时需要识别的不再是独立的单个目标,而是同时出现的多个目标,特别是当多个目标密集出现时,它们的声信号互相干扰,传感器阵列所采集到的信号往往是多种声信号互相混叠后的结果。此时针对单一目标的特征提取、分类算法会失去作用。
在多目标混叠场景下,由于声学传感器采集到的信号是多个目标声信号的混合,采用这样的信号样本是无法进行目标识别的,必须将混叠信号加以分离,获得每个目标所产生的单一信号。但通常我们无法直接得到源信号的先验知识,此外,混合信号是如何由原始信号混叠得到也是未知的,因而无法建立原始信号到传感器的传递函数和模型,所面临的问题属于“盲”问题。
盲源分离(blindsourceseparation,bss)理论是近年来新兴并引起广泛重视的一种信号处理方法。bss理论的主要思想是:当各源信号未知,同时混叠通道参数也未知的情况下,仅从混合信号样本出发,根据某些统计特性,即可实现对各个源信号的估计。独立分量分析(independentcomponentanalysis,ica)是求解盲源分离最常用的工具,美国的sensit项目组曾尝试使用ica去解决基于混叠声音信号的多目标识别问题,但没有取得好的结果。这是因为复杂的外界环境情况所导致的。而且,至今基于低空飞行目标信号的相关文献还很少。
技术实现要素:
本发明所要解决的技术问题是提供一种多目标声信号混叠下的识别方法,用于分离识别低空飞行目标效果好。
为解决上述技术问题,本发明采用以下技术方案:
一种多目标声信号混叠下的分离识别方法,包含以下步骤:
1)采用多传感器采集多目标的混叠声信号,建立线性瞬时混叠的盲分离模型;
2)对混叠声信号进行盲源分离得到单信号。
进一步的,所述盲源分离的方法为:
1)引入基于峭度的盲源分离开关算法:
δw(k)=α(k)e[λ-d(t,k)]w(k),
式中,d(t,k)=y(t,k)yt(t,k)+jtanh(y(t,k)yt(t,k)),是以矩阵的对角元素为元素的对角矩阵λ=diag(diag(d));
2)基于滑动窗技术,将盲源分离开关算法应用于动态分析,获取基于滑动窗的峭度递推公式:
当n=0,…l-1时,
进一步的,所述混叠声信号的目标为低空飞行目标。
所述盲分离模型描述为下述形式:x(t)=as(t);
式中,a为n×n的混合矩阵;x(t)为m维观测信号矢量;s(t)为n个统计独立的源信号组成的列向量;
通过寻求分离矩阵w,通过它能由观测信号x(t)恢复源信号s(t):y(t)=wx(t);
式中y(t)即为s(t)的估计矢量。
进一步的,所述分离识别方法还包括下述步骤:
对单信号进行特征提取,根据得到的特征向量判决信号的类别。
传统的盲源分离算法,一般采用的是以批处理的方式进行独立分量提取,并且假设混合系统是非时变的。批处理算法利用事先保存在计算机内的采样数据,在分离矩阵的每次学习过程中,重复调用这些数据样本,因此能充分利用静态数据集中包含的统计信息。如果混合模型满足一定的前提条件,那么批处理ica算法的收敛速度和收敛效果均比较理想。但是在战场多目标混叠情况下,混合系统的时变性问题是不可忽略的。我们所探测的低空声目标是处于高速的运动状态下的,运动状态不一致。另外,随着目标的运动,其周围环境也发生着改变,这些都会带来混合模型的变化,导致非时变混合模型的假设一般不能成立。应用传统的批处理算法解决多目标混叠下的声目标识别问题就难以得到较理想的效果。
本申请对ica的峭度开关算法进行研究,以解决时变情况下的盲源分离问题。选择基于峭度的盲源分离开关算法作为研究对象,结合滑动窗技术对其进行改造,提出了基于滑动窗技术的动态盲分离方法。仿真实验结果表明,改进后的算法可以用于在线盲源分离和动态ica分析,在处理时变混合系统时也具有良好的盲源分离性能。
基于滑动窗技术的动态盲分离方法的推导过程为:
1.基于峭度的盲分离开关算法
很多bss自适应算法的关键是源于对源信号的概率密度函数作出正确的假设。若能事先知道各源信号的概率密度函数的特性,则问题可以归结为寻找一个与真实pdf接近又便于计算的解析函数作为对源信号pdf的估计,并由此求得算法中起关键作用的激活函数,进而实现盲源分离。但在实际情况中,很难在分离前就具备对概率密度函数的先验知识,因此,只能依据源信号pdf的重要测度——峭度自适应地确定激活函数,实现盲源分离。
1.1开关算法的相关概念
首先是峭度。设sj(t)是第j个源信号,则信号sj(t)的峭度归一化定义为:
其中m2和m4分别为信号sj(t)的二阶矩和四阶矩。当信号sj(t)的概率密度函数为高斯函数时,kurt(sj(t))=0,当信号sj(t)的概率密度函数为超高斯函数时,kurt(sj(t))>0,当信号sj(t)的概率密度函数为亚高斯函数时,kurt(sj(t))<0。
估计的源信号概率密度函数常见的形式有双曲正割函数的平方、修正的双曲正割函数的平方、混合高斯函数和混合双曲正割的平方等非线性函数。下面给出双曲正割函数的平方、混合高斯函数概率密度函数及相应的激活函数。
信号sj(t)修正的双曲正割函数平方的估计概率密度函数p(sj)及相应的激活函数
混合的高斯概率密度函数p(sj)及相应的激活函数
1.2开关算法
基于随机梯度的离线批处理ica学习算法为:
式中:t=1,2,…m;k=0,1,2…;
基于随机梯度的离线批处理形式为:
w(k+1)=w(k)+α(k)e[f(y(t,k),w(k))]w(k)(0-8)
整理得:
该算法的关键是寻找估计函数f(y,w)中的激活函数
δw(k)=α(k)e[i-y(t,k)yt(t,k)-jtanh(y(t,k)yt(t,k))]w(k)(0-10)
其中,未知源信号s由估计信号y源信号近似代替,j=diag[j1,j2,…,jn];若第j信号中存在一个高斯信号,则jj=0;若第j个源信号为亚高斯信号,则jj=-1;若第j个源为超高斯信号,则jj=1。利用jj为1,0,-1的特性,就可作为判断函数,即构成开关算法。
实际上,由于开关算法存在i-yyt项,因此它也属于一种白化约束算法,其作用是使输出的估计信号之间不存在二阶相关性,根据启发式的观点,可放宽白化约束条件,即选用适当的正定对角矩阵λ代替单位矩阵i,则使式(0-10)等号右边数学期望项的对角元素变为零,即:
δw(k)=α(k)e[λ-d(t,k)]w(k)(0-11)
式中,d(t,k)=y(t,k)yt(t,k)+jtanh(y(t,k)yt(t,k)),λ=diag(diag(d))是以矩阵d的对角元素为元素的对角矩阵。这种受不完整条件约束的开关算法可改善算法(0-10)对某些非平稳或坏尺度源信号的数值稳定性和收敛性,扩大其应用范围。
2.基于滑动窗技术的在线峭度开关算法
动态ica算法(自适应算法)是基于单次观测样本的盲源分离算法,在一定程度能自适应跟踪混合系统的时变特性,并具有一定的实时信号处理能力。根据(0-8)式所示的盲分离开关算法迭代公式,将(0-11)式批处理算法所采用的数据矩阵换成单次观测样本向量即可得到相应的动态盲分离开关算法。但是算法中切换矩阵的正确估计需要一定的数据长度,滑动窗技术正好可以解决这个问题。滑动窗技术通常用于信号的动态分析,已经被广泛应用于信号的瞬时特征检测以及系统时变特性分析等应用场合,不过滑动窗数据分析的运算量一般较大,通常需要建立在线递归算法。
由(0-11)式可见,在线递归算法的关键是峭度计算公式的四阶矩和二阶矩随新样本的更新公式的估计。令当前窗口的位置为n(对应窗口内最右端样本的位置),则此时窗口内的数据为x(n-l+1),x(n-l+2),…x(n-1),x(n),根据统计理论可知,窗口内数据的k阶矩的估计公式为:
当k为2和4时,得到2阶和4阶矩。假设数据的均值为0,带入(0-1)式可得当前时刻窗口内数据的峭度估计值kurt(n)为:
当窗口由位置n向右移动到位置n+1时,窗口内最左边的数据移出,从最右端移进新的样本x(n+1),不难证明,n+1时刻窗口内数据的矩递推公式为:
对应的峭度递推公式为:
需要注意的是,还必须考虑n=0,…l-1时的矩和峭度递推估计问题。在这段时间内,数据长度小于给定的滑动窗长度,因此需要新的递推公式。不难证明,对于0≤n,n+1≤l-1,矩和峭度可按下式进行递推计算:
公式(0-15)和(0-17)称为基于滑动窗的峭度递推公式。而公式(0-11)和峭度的递推公式就组成了基于滑动窗技术的在线峭度开关算法。
实际应用中还需要考虑的问题是输出独立分量在排序上的不确定性,排序的不确定性会产生同一路输出前后不一致问题,可能会给后续处理带来不便。输出前后的不一致是由在学习过程中峭度的前后取值发生变化(1变成-1和-1变成1),前后两个阶段分别采用了不同的概率模型造成的。本文采用峭度值排序的方法,在每次迭代过程中,对各路输出信号的峭度值按大小进行排序,并利用所得的排序信息确定各路输出信号在输出端的位置。需要说明的是,上述对输出进行排序步骤是每次窗口移动都必须进行的,因此属动态排序过程。
附图说明
图1为源信号图。
图2为混合后的信号图
图3为批处理分离结果图。
图4为基于滑动窗的动态分离结果图。
图5为混叠矩阵的变化图。
图6为ica实际信号分离信号效果图;其中,(a)为分离前,(b)为分离后,(c)为混合矩阵的变化。
具体实施方式
在下面的实验中,对批处理峭度开关算法和本发明的基于滑动窗的峭度开关算法进行比较。
如图1所示,用于模拟实验的源信号是一正弦信号和一均匀分布的随机序列。数据长度为1450点。为了验证本文提出的动态ica算法性能以及在时变混合系统中盲源源分离效果,对原始数据的前后725点数据采用不同的混合矩阵。为了更好地分析在线算法对时变混合问题的处理能力,记录下算法迭代过程中分离矩阵系数的变化情况。本例中,分离矩阵的大小是2×2,混合矩阵为:
图中前后两个不同的混合矩阵为:
值得一提的是由于动态ica算法的峭度估计采用了递推算法,因此此单次迭代运算量比批处理ica算法的单次迭代运算量要小得多。同样的迭代次数下,在线算法所花费的时间比批处理算法要少很多。
还有一个需要讨论问题的是滑动窗长度l的选择。窗口长度的选择与算法的收敛速度和稳定性都有很密切的关系。在两种信号混叠矩阵变化的过程中,算法有一段的调整过程,其宽度应该与窗口宽度基本保持一致,它反映了当混合矩阵发生变化时算法调整速度的快慢情况。如图4、图5,正弦信号和混叠矩阵在中间位置处都有个跳变,若窗口长度过长的话这个调整变化的过程持续就很长,这在混叠矩阵快速变化的实际信号分离时会带来很多的奇异值。因此,在保证算法能够收敛的前提下窗口的宽度应尽量取小。但是算法不仅需要估计数据的峭度符号,还要利用峭度大小对独立分量进行动态排序,因此对峭度估计的精度有一定的要求,所以过小的滑动窗口对算法的稳健性会造成一定的影响。从这一角度来看窗口长度不应太小。
综合考虑算法的收敛速度和稳定性,在大量实验的基础上,实际的信号分离时,本文选取的窗长为64。
1.实际信号的分离实验
如图6,(a)图为实测的一枚巡航导弹在海边飞过时采集到的两路原始声信号的波形(巡航导弹和海浪的声音);(b)图为经过基于滑动窗的峭度开关算法分离后得到的信号波形,此时窗口的长度为128。可见动态盲分离算法已经可以很好地分离混合信号,上图为海浪声,下图为巡航导弹;(c)图为分离的过程中,混叠矩阵的各系数动态变化曲线,表明在线算法可以跟踪时变混叠矩阵。
2.实际低空目标声信号的识别结果及分析
分别取一组实测的巡航导弹、民航机、战斗机单目标源信号,用随机产生的混叠矩阵两两混合出观测信号。分别取不同时刻实测的三种混合声信号样本200个,滑动窗动态盲分离算法分离后通过单目标基础上建立的hmm模型,训练样本和测试样本为同一传感器在同一地点所测,且信号的采集环境较好。在matlab.2010a上运行程序,识别结果如下表:
表1实际信号经动态盲分离后的识别结果
结果显示,由于动态盲分离算法可以克服混叠矩阵由于目标运动状态不一致以及周围环境发生改变带来的影响,将其应用于声目标识别系统中取得的识别效果更好,可以有效地提高系统的鲁棒性和准确性。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除