基于声源方向实时预测跟踪的动态盲信号分离方法
【专利摘要】本发明提出了一种基于声源方向实时预测跟踪的动态盲信号分离方法,该方法根据上一个时间段的信号特征自动预测下一个时间段的信号方向,并且,根据信号在时间上的连续性进行自我纠正;然后,根据预测的信号方向对麦克风阵列接受信号的强度矢量进行筛选,实现动态信号分离,通过简单的预测算法对声音源信号的位置进行实时预测,从而简化了原本复杂的声源定位过程,为算法节约了时间开销,并且算法简单,容易实现,预测效果也不错,因此可以保证得到不错的分离效果,并且由于加入了分帧操作,分离结果保持了信号在时间上的连续性,不易受突发噪声的影响。
【专利说明】 基于声源方向实时预测跟踪的动态盲信号分离方法
【技术领域】
[0001]本发明属于信号处理【技术领域】,具体涉及一种基于声源方向实时预测跟踪的动态盲信号分离方法。
【背景技术】
[0002]盲信号分离是指在没有任何关于声音源数量和位置信息的前提下,自动将混合声音信号中的各个独立信号分离出来的技术。目前,常用的声音信号分离方法主要包括:随机方法、自适应方法和确定方法。
[0003]随机方法用于信号分离需要假设各源信号在统计学上是独立的,它们的分离质量只与信号本身的特性有关。然而,实际应用中混合的声音信号往往卷积在一起,因此,这个假设是很难满足的。另外,随机方法在分离过程中有大量的迭代过程,时间开销大,很难在实时系统中应用。自适应方法根据信号特征优化分离滤波器的结构,从而在空间上抑制干扰信号、强化捕捉目标信号。但是,自适应算法很可能收敛到一个局部最优点,而且该方法在反射环境下的分离结果并不理想。与这两种算法不同,确定性方法不需要关于信号源的任何前提假设,仅仅根据信号本身的决定性特征进行信号分离,例如:方向、环境反射等。但是,当前的确定性信号分离方法都需要对混合信号进行预处理,即:借用其他算法的辅助得到信号源的数目和方向,分离方法本身不能对信号的这些确定性特征进行自动计算。所以,不仅算法的计算量大,而且,分离的质量也直接受预处理算法的影响。尤其是当信号持续时间长或者信号源相对于声音传感器不断运动时,连续时间段的信号方向计算完全是孤立的,忽略了信号在时间上的连续性,从而很难对随机噪声进行排除。因此,当前的很多确定性信号分离方法并不是严格意义上的盲信号分离技术,而且,分离速度慢、精度低、缺乏连续性。
【发明内容】
[0004]针对现有方法存在的不足,本发明提出了一种基于声源方向实时预测跟踪的动态盲信号分离方法,该方法根据上一个时间段的信号特征自动预测下一个时间段的信号方向,并根据信号在时间上的连续性进行自我纠正;再根据预测的信号方向对麦克风阵列接受信号的强度矢量进行筛选,实现动态信号分离,达到提高效率,简化算法的目的。
[0005]本发明的技术方案是:
[0006]一种基于声源方向实时预测跟踪的动态盲信号分离方法,包括以下步骤:
[0007]步骤1、采用由M个麦克风组成的麦克风阵列接收环境中的N个人的混合声音信号,根据设定的处理周期对混合声音信号进行分段,并根据处理周期的长度获得每一段内的采样点个数;
[0008]步骤2、在每一个处理周期内,将M个麦克风采集到的M个混合声音信号的所有采样点的幅值进行矩阵化,进而获得混合声音信号矩阵,并计算该矩阵的秩,即获得混合声音信号的个数N ;上述混合声音信号矩阵的行数为麦克风个数M,列数为每个处理周期内采样点个数,矩阵中元素为每个采样点的幅值;
[0009]步骤3、获得的麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度,并计算出频域内麦克风阵列接收到的混合声音的声压信号强度矢量方向,将其代入冯米修斯分布中,计算每个角度的声压信号分布情况,获得每个角度混合声音信号能量的均方差波形,并将每个角度对应的波形进行叠加获得合成波形,确定所需峰值对应的角度,即获得N个独立声音信号对于麦克风阵列中心的初始入射角度,进而获得该角度对应的信号即为分离后的独立声音信号;
[0010]具体过程如下:
[0011]步骤3-1、根据声音源信号、麦克风对于阵列中心的方向角度、声音源的波束到达方向和麦克风阵列中心声压获得的麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度;
[0012]步骤3-2、将获得的时域内麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度,通过傅里叶变换,获得频域内的麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度;
[0013]步骤3-3、根据频域内麦克风阵列声压、频域内的麦克风阵列水平方向声压梯度、频域内的麦克风阵列垂直方向声压梯度计算出频域内麦克风阵列接收到的混合声音的声压信号的强度矢量方向;
[0014]步骤3-4、将获得的声压信号的强度矢量方向代入冯米修斯分布中,计算每个角度的声压信号分布情况,公式如下:
【权利要求】
1.一种基于声源方向实时预测跟踪的动态盲信号分离方法,其特征在于,包括以下步骤: 步骤1、采用由M个麦克风组成的麦克风阵列接收环境中的N个人的混合声音信号,根据设定的处理周期对混合声音信号进行分段,并根据处理周期的长度获得每一段内的采样点个数; 步骤2、在每一个处理周期内,将M个麦克风采集到的M个混合声音信号的所有采样点的幅值进行矩阵化,进而获得混合声音信号矩阵,并计算该矩阵的秩,即获得混合声音信号的个数N ;上述混合声音信号矩阵的行数为麦克风个数M,列数为每个处理周期内采样点个数,矩阵中元素为每个采样点的幅值; 步骤3、获得的麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度,并计算出频域内麦克风阵列接收到的混合声音的声压信号强度矢量方向,将其代入冯米修斯分布中,计算每个角度的声压信号分布情况,获得每个角度混合声音信号能量的均方差波形,并将每个角度对应的波形进行叠加获得合成波形,确定所需峰值对应的角度,即获得N个独立声音信号对于麦克风阵列中心的初始入射角度,进而获得该角度对应的信号即为分离后的独立声音信号; 具体过程如下: 步骤3-1、根据声音源信号、麦克风对于阵列中心的方向角度、声音源的波束到达方向和麦克风阵列中心声压获得的麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度; 步骤3-2、将获得的时域内麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度,通过傅里叶变换,获得频域内的麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度; 步骤3-3、根据频域内麦克风阵列声压、频域内的麦克风阵列水平方向声压梯度、频域内的麦克风阵列垂直方向声压梯度计算出频域内麦克风阵列接收到的混合声音的声压信号的强度矢量方向; 步骤3-4、将获得的声压信号的强度矢量方向代入冯米修斯分布中,计算每个角度的声压信号分布情况,公式如下:
其中,Y (ω)表不麦克风阵列接收到的混合声音的声压信号的强度矢量方向; V-表不声压信号的强度矢量方向服从的单一冯米修斯分布对应的均值,即每个独立声音信号对麦克风阵列中心的入射角度; 10(k)表示一阶修正贝塞尔函数; k表示声压信号的强度矢量方向服从的单一冯米修斯分布对应的浓度参数,即冯米修斯分布的方差的倒数; 步骤3-5、将声音信号对麦克风阵列中心的入射角度从1°到360°,以1°为公差,从小到大依次取值,根据每个角度对应的冯米修斯分布函数和频域内麦克风阵列声压,计算出每个角度对应的频域内的独立声音信号,将得到的频域内独立声音信号经过反傅里叶变换转换成时域独立声音信号,并计算每个角度独立声音信号能量的均方差;将1°~360°的每个角度依次代入公式(I)中,获得每个角度对应的冯米修斯分布函数,进而得到每个方向的声音信号,计算公式如下:
其中,5(ω)表示经过分离后得到的频域内所有角度对应的独立声音信号矩阵; 将得到的频域内所有角度对应的独立声音信号矩阵经过反傅里叶变换转换到时域内,并计算每个角度信号能量的均方差,计算公式如下:
其中,RMS表不每个角度混合声音信号对应的能量的均方差; 表示由经过反傅里叶变换转换成的时域内所有角度对应的独立声音信号矩阵; L表示为处理周期; 步骤3-6、由所有角度对应的独立声音信号能量均方差组成混合信号的能量均方差分布波形,将波形的峰值由大到小进行排序,取其前N个峰值,进而获得上述峰值对应的角度,其对应的角度即为N个独立声音信号对于麦克风阵列中心的初始入射角度,根据步骤3-5获得该角度对应的信号即为分离后的独立声音信号; 步骤4、根据每个独立声音信号对于麦克风阵列中心的初始入射角度,采用卡尔曼滤波算法对第一处理周期之后的其他处理周期内的各独立声音信号的运动方向进行预测;具体过程如下: 步骤4-1、根据获得的N个独立声音信号相对于麦克风阵列的初始入射角度及其角速度,获得下一处理周期内N个独立声音信号相对于麦克风阵列的入射角度向量的预测估计值; 计算公式如下: = i42k_1(4) 其中,A表示第k个处理周期独立声音信号角度向量预测估计值; 毛―,表示表示第k-ι个处理周期独立声音信号角度向量准确估计值,初始时\ i表示第一处理周期的角度向量,Xi^lJ,k = 2, α H表不各个独立声音信号对于麦克风阵列中心的初始入射角度,α ' η表示各个独立声音信号相对于麦克风阵列的初始入射角速度,[.]Τ为对中括号中的矩阵转置;Α为状态转移矩阵,
步骤4-2、对获得的下一处理周期内,独立声音信号相对于麦克风阵列中心的入射角度向量的估计值进行修正,获得上述入射角度向量的准确估计值; 计算公式如下:
其中,毛表示第k个处理周期独立声音信号角度向量准确估计值; Kk表示卡尔曼增? K =PM'*(HP,;H' + R)' Pk =APk^Af+ Q根据实际情况需求设定Plri的初始值;Pk = (1- KkH') Pk,Pk为第k个处理周期的角度向量误差的协方差,I为单位矩阵;巧为第k个处理周期的角度向量的估计值误差的协方差,A'为A的转置'Q为过程噪声的协方差,Q = E (wk2),Wk为第k个处理周期的系统噪声; H为测量矩阵,Η = [^|,H'为矩阵H的转置,R为测量噪声的协方差,R = E( <),uk为第k个处理周期的测量噪声,(^r1为对括号中的矩阵求逆矩阵; yk表示系统测量值,yk的取值方法为:在第k个处理周期独立声音信号相对于麦克风阵列的入射角度估计值的-10°?+10°范围内,搜索查找RMS最大值所对应的角度,该角度即为yk的取值; 步骤4-3、根据预测获得的下一处理周期各个独立声音信号相对于麦克风阵列的入射角度准确值,结合步骤3-5确定该角度所对应的声音源分离信号; 步骤4-4、反复执行步骤4-1至步骤4-3,直至获得所有处理周期内各声音源的预测分离信号; 步骤5、将各处理周期内的各声音源分离信号进行连接,获得时域内各声音源完整的分离信号。
2.根据权利要求1所述的基于声源方向实时预测跟踪的动态盲信号分离方法,其特征在于,步骤3-1所述的获得的麦克风阵列声压、麦克风阵列水平方向声压梯度、麦克风阵列垂直方向的声压梯度,计算公式如下: 计算麦克风阵列声压Pw(t)公式为: Pw(O = 0.5 Σ?=1 Σ--=ι PoOm(仏 OOK ⑴(6) 其中,Sn(t)为t时刻第η个声音源信号; P0(t)表示t时刻由声波造成的麦克风阵列中心声压; am( Θ n(t))表不在t时刻第m个麦克风关于第η个声音源的导向矢量; am(0n(t)) = ejkdm cos (^m-e?(t))(7) j表示虚数单位; k = 2 3i / λ , λ表示混合音频信号的波长; dm表示第m个麦克风与阵列中心的距离; θ n(t)表不t时刻第η个声音源的波束到达方向; M表示麦克风个数; N表不声音源的个数; 计算麦克风阵列水平方向声压梯度Px(t)公式如下:PxOO = Em=I Σ^=1 P0COam(WO)Si,⑴ CosOm)(8) 其中,表示第m个麦克风对于阵列中心的方向角度; 计算麦克风阵列垂直方向的声压梯度Py(t)公式如下:
3.根据权利要求1所述的基于声源方向实时预测跟踪的动态盲信号分离方法,其特征在于,步骤3-3所述的计算出频域内麦克风阵列接收到的混合声音的声压信号的强度矢量方向, 计算混合声音的声压信号强度矢量方向公式如下:
其中, Re[.]表示取复数实部; Ρ^(ω)表示频域内的麦克风阵列声压的共轭矩阵; Ρχ(ω)表示频域内的麦克风阵列水平方向声压梯度; Py (ω)表不频域内的麦克风阵列垂直方向声压梯度; ω表示频率单位,即弧度/采样点。
【文档编号】G10L21/028GK104200813SQ201410310400
【公开日】2014年12月10日 申请日期:2014年7月1日 优先权日:2014年7月1日
【发明者】王 义, 魏阳杰, 陈瑶, 关楠 申请人:东北大学