基于分布式压缩感知的麦克风阵列声源定位
2019-09-11黄惠祥郭秋涵童峰
黄惠祥, 郭秋涵, 童峰
(厦门大学 水声通信与海洋信息技术教育部重点实验室, 福建 厦门 361100)
0 引言
麦克风阵列目前被广泛应用于音频/视频会议系统、车载系统以及智能音箱等领域。麦克风阵列对声源方向上的语音进行增强,要求信号相对于麦克风阵列的位置是已知的,而基于麦克风阵列的声源定位技术为此提供了支持。传统麦克风阵列声源定位技术主要分为三大类:基于最大输出功率的可控波束形成定位算法[1]、时延估计定位算法[2]和基于高分辨率谱估计的定位算法[3]。
可控波束形成定位算法需要做全局搜索,计算量大,同时对语音信号和噪声信号的频谱特性依赖性较强。时延估计定位算法[4]运算量较小,易于算法的硬件实现。但是该算法受到噪声、混响、信号采样率等方面的影响,麦克风阵列各个阵元时延值精确获取的难度增大,导致算法的定位性能降低。基于联合可控响应功率和相位变换(SRP-PHAT)声源定位算法[5]结合了可控响应功率和相位变换加权的优点,相对于时延估计定位算法有更好的性能,然而在混响和噪声强情况下,该算法可能会在错误的空间位置上产生波束峰值,定位效果下降。基于高分辨率谱估计的算法主要运用于窄带信号的处理,对于语音这种宽带信号会使算法运算量增加,不适于实时实现。
2006年,Donoho等提出的压缩感知(CS)[6]算法为信息获取提供了新的理论。该算法提出,对于可压缩信号,可以通过低于奈奎斯特标准的方式对其进行数据采集并精确重构该信号[7]。随着CS理论的发展,近些年已经应用于声学领域对空间稀疏的声源进行定位研究[8]。赵小燕等[9]针对高混响低信噪比的环境提出了基于CS的定位算法,将声源定位问题转化为稀疏信号的重构问题,利用正交匹配追踪(OMP)算法对信号进行重构。曾帆等[10]在CS框架下,利用麦克风阵列空间关系构造冲激响应组成混合矩阵,进行远场波达方向估计,在较低信噪比情况下相比SRP-PHAT算法和时延累加(DS)定位算法具有更高的方位估计分辨率。
Haupt等[11]在2006年提出了将CS应用到多个观测信号中,但是仅考虑各个信号间的互相关,没有考虑单个信号的内相关。Baron等[12]根据多个信号稀疏性的相关,提出了分布式压缩感知(DCS)理论,对多个信号的联合重构提升了稀疏信号的重建性能。Baron提出了3种联合稀疏模型(JSM),其中JSM2模型提出每个信号间具有相同的稀疏支撑集,而只是非零系数不同[12]。JSM2模型主要应用于水声多输入多输出通信和阵列信号处理与声源定位两个方面,周跃海等[13]在DCS框架下,将稀疏长时延水声信道估计问题转化为JSM2模型的联合稀疏恢复问题,提高了稀疏长时延水声信道估计的性能。然而DCS理论在阵列信号处理与声源定位等方面的应用较少。
考虑声源定位中声源在空间域上的稀疏相关性,结合麦克风阵列的实际应用,本文以DCS的JSM2模型为框架,将声源定位问题转化为稀疏信号的联合重构问题。采用同步正交匹配追踪(SOMP)算法对信号进行重构,进而估计声源方位。在仿真和实测实验中,对DS算法、SRP-PHAT算法、压缩感知- 正交匹配追踪(CS-OMP)算法和本文采用的分布式压缩感知- 同步正交匹配追踪(DCS-SOMP)算法的声源定位效果进行了对比和评估,结果表明DCS-SOMP算法具有更好的定位性能。
1 基于DCS的方位估计算法
1.1 CS理论
考虑有限长一维离散时间信号X,可以看作N×1维的列向量X=[X1,X2,…,Xn,…,XN]T,可用基矩阵Ψ=[Ψ1,Ψ2,…,Ψn,…,ΨN]T线性表示为
(1)
式中:系数矢量S为N×1维的列向量,显然S和X是同一个信号的等价表示,不同之处在于X是信号的时域表示,而S则是信号的Ψ域表示。若矢量S中的非0个数‖S‖0满足
‖S‖0=K≪N,
(2)
则认为信号X在基矩阵Ψ上为K稀疏信号,K为X信号的稀疏度,基矩阵Ψ为稀疏基。
在CS理论中,若信号在基矩阵上是稀疏的,则稀疏信号可以线性投影到低维空间,利用低维空间的采样信号,能够高概率地无损重构出高维的原始信号。通常利用一个平稳的、与基矩阵Ψ不相关的P×N(P≪N)维观测矩阵Φ对信号X进行线性变换,得到P×1维的观测矢量Y=[Y1,Y2,…,Yp,…,YP]T,可表示为
Y=ΦX=ΦΨS=ΘS,
(3)
=argmin‖S‖0,
s.t. ‖Y-ΘS‖2≤ε,
(4)
式中:ε为与噪声有关的常量。CS理论的核心问题是信号重构,目前重构算法有贪婪追踪算法、凸松弛法、组合算法三大类[15]。
1.2 CS声源方位估计算法
处于远场室内环境的M元麦克风阵列,第m个麦克风接收到的信号xm(n)(m=1,2,…,M)为
(5)
Xm(k)=Hm(rs,k)S(k)+Wm(k),
(6)
式中:Xm(k)、Hm(rs,k)、S(k)、Wm(k)分别为xm(n)、hm(rs,n)、s(n)、ωm(n)的离散傅里叶变换。将M个麦克风信号用矢量表示为
X(k)={X1(k),X2(k),…,XM(k)}T,
H(rs,k)={H1(rs,k),H2(rs,k),…,HM(rs,k)}T,
W(k)={W1(k),W2(k),…,WM(k)}T,
则(6)式可扩展为
X(k)=H(rs,k)S(k)+W(k),
(7)
式中:X(k)为频域的麦克风阵列接收信号矢量;H(rs,k)为声源位置rs处的房间频域响应矢量;W(k)为频域的噪声矢量。
令声源的空间位置集为{r1,r2,…,rD},其中空间位置集个数D远大于目标声源个数,则冗余的房间频域响应矩阵为
D(k)={H(r1,k),H(r2,k),…,H(rD,k)},
(8)
(9)
在各类信号重构算法中,OMP算法[17]的计算复杂度较低,该算法的主要过程为:计算观测矩阵和压缩采样信号的最大相关位置,通过求解最小二乘问题得到信号的近似解;在迭代次数小于稀疏度的情况下重复上述过程,输出最大相关的索引集和重构后的信号。
1.3 DCS声源方位估计算法
基于DCS的算法,在经典CS算法基础上,利用共同稀疏性可以提高稀疏恢复性能。麦克风阵列接收的多个信号间具有共同稀疏集,但是由于信号传播导致的幅度衰减,非0系数的值不同[12],符合DCS理论中的JSM2模型。因此可以利用这种稀疏相关的特性,提高稀疏信号的无损恢复概率,从而进一步提高对声源定位的能力。
在JSM2模型中,第i个数据块的接收信号Xi在基矩阵下可线性表示为
Xi=SiΨT+Wi,i=1,2,…,I,
(10)
式中:I表示数据块个数。联合I个数据块对信号稀疏重构,建立如下优化问题:
(11)
CS矩阵Θ在满足RIP条件下,对系数S联合重构后的结果在基矩阵Ψ上的表示最稀疏。对S的联合重构问题可以采用SOMP算法进行求解。联合稀疏重构实现声源定位的算法流程如下:
输入:I个接收数据块X=[X1,X2,…,XI],观测矩阵Φ,稀疏度K,残差误差门限thres.
输出:重构信号Y=[Y1,Y2,…,YI],稀疏位置集Ω,残差r.
(12)
3) 采用最小二乘法求出信号的近似解:
βi=[(φi,λt)Tφi,λt]-1φi,λtXi,
(13)
保存各个数据块的信号近似解:Yi=Yi∪βi,并求残差:
(14)
在上述迭代过程中可以看出,联合稀疏重构算法在OMP基础上,利用每个数据块具有相同稀疏位置的特性,对数据块之间相同的稀疏部分进行叠加,以进一步提高找出信号稀疏位置的能力。特别地,当I=1时,联合稀疏重构的SOMP算法退化成经典OMP算法。
2 数值仿真
为了评估DCS-SOMP算法的定位性能,本文进行了仿真和实验评估分析,在仿真实验中比较了DS算法、SRP-PHAT算法、CS-OMP算法和本文DCS-SOMP算法在不同信噪比和混响时间下的定位情况,同时对比了CS-OMP算法和DCS-SOMP算法在选取不同频点数和不同联合估计数据块个数情况下的定位性能。在实际场景的实验中,对比了4种算法在不同信噪比下的定位效果。
2.1 仿真设置
仿真实验中麦克风阵列直径为65 mm,阵列拓扑结构为圆形阵列,阵元数为7,包括圆周6个阵元以及几何中心1个阵元,将声源可能存在的空间按照15°间隔划分为24个空间域集,目标声源数目为1. 语音信号选取TIMIT标准语音信号,信号时间长度为5 s,语音信号采样率为32 kHz,处理帧长为128个点,每帧信号采用汉明窗加窗处理,做128点离散傅里叶变换。实验通过对语音信号叠加不同程度的高斯白噪声后形成不同信噪比的语音信号,通过房间混响产生工具[18]获取不同混响程度下的房间冲激响应与语音信号并进行卷积,形成不同混响情况下的语音信号。
采用样条插值法进行均方根误差(RMSE)性能评估[19],计算公式为
(15)
2.2 仿真结果与分析
分别选取信噪比SNR=13.41 dB,7.39 dB,3.88 dB,混响时间RT60=0.2 s,0.4 s,0.6 s. 不同信噪比和不同混响时间下CS-OMP算法和DCS-SOMP算法的定位精度分别如图1和图2所示。
图1 不同信噪比不同算法的RMSEFig.1 RMSEs of different algorithms for different SNRs
图2 不同混响时间不同算法的RMSEFig.2 RMSEs of different algorithms at different reverberation times
从图1中可以看出:信噪比较大情况下,4类算法的定位性能相差不大,本文算法的RMSE最低,定位性能最优;信噪比降低后,SRP-PHAT算法的定位效果下降最明显,RMSE增长最快,其他3类算法的定位效果有一定降低,但本文算法相比于其他3类算法仍然具有最优的定位性能。从图2中可以看出,随着混响时间的增加,本文算法相对于传统DS算法和SRP-PHAT算法的定位性能具有明显的提升,与CS-OMP算法相比定位效果也有一定改善,体现了本文算法具有更强的稳健性。综合来看,DCS-SOMP算法在低信噪比高混响环境下,相对于其他3类算法具有更好的定位效果和鲁棒性。
本文进一步比较了属于CS算法的CS-OMP算法与DCS-SOMP算法在不同频点阈值η和不同数据块个数I下的定位性能。在不同频点阈值下,本文算法和CS-OMP算法的RMSE对比如图3(a)所示。由图3(a)可见:在不同频点阈值下,本文算法相对于CS-OMP算法的RMSE均有所减小,不同的频点阈值对于声源定位性能有一定影响,在频点阈值较低时,用于定位的频点数较少,因此定位性能较差,频点阈值增加定位偏差逐渐减小;当选取的阈值增大到25%以上时,由于选取的频点数已经包括信号的大部分能量,再增大频点阈值,对定位性能提升不明显。
图3 不同频点阈值和数据块个数的RMSEFig.3 RMSEs of different frequency thresholds and number of data blocks
选取不同的数据块个数,CS-OMP算法分别对每个数据块做稀疏重构后叠加估计,DCS-SOMP算法对所有数据块做联合稀疏重构,不同数据块个数下的RMSE如图3(b)所示。由图3(b)可见,随着数据块个数的增加,CS-OMP算法的RMSE有一定减小,但是再增加数据块个数,定位性能改善不明显,而对于本文算法影响不大。不同数据块个数下,本文算法的定位性能仍然优于CS-OMP算法。
综上所述,随着频点阈值和联合估计数据块个数的增加,本文算法相对于CS-OMP算法的定位性能均不再明显改善,但是两种算法的计算量正比于阈值和数据块个数,选择更大的频点阈值和数据块个数将导致更大的计算量。综合考虑计算量和定位性能,后续的实验中选取频点阈值η为25%,联合估计数据块个数I为64.
3 实际环境实验
3.1 实验设置
实验地点为厦门大学艺术学院音乐厅,房间尺寸为30 m×20 m×6 m,结构为正常音乐厅结构,采用吸声设计,房间混响时间RT60通过赛宾公式[20]来近似估算约为1.85 s.实验采用七元麦克风圆形阵列采集板进行语音信号的采集,阵列直径70 mm,语音信号采集采样率为32 kHz. 实验采集的语音信号为TIMIT标准语音信号,信号时间长度为3.6 s,播放采样率为16 kHz,播放设备为Marshall Kilburn移动式无线蓝牙音箱。设置声源以15°间隔分别放置在环绕一周的24个不同方向,进行麦克风阵列声源定位测试。实验中播放的语音信号为3段音量不同、内容相同的TIMIT语音信号,麦克风阵列采集到的3段语音信号信噪比分别为11.30 dB、6.55 dB、-0.23 dB. 实验比较了DS算法、SRP-PHAT算法、CS-OMP算法和本文DCS-SOMP算法的定位性能。实验参数如表1所示。
表1 实验参数表
3.2 实验结果与讨论
不同信噪比下采用不同算法计算得到的RMSE如图4所示。由图4可见:与仿真结果类似的是,4类算法在高信噪比情况下定位性能相差不大,以本文算法的定位效果最好;随着信噪比的降低,定位性能也逐渐降低,但是DCS-SOMP算法仍然具有更低的RMSE值,即更好的定位性能。与仿真结果不同的是,DS算法在信噪比降低情况下定位性能下降明显,原因在于仿真情况下时延值是根据预设的声源与麦克风阵列之间相对的位置来获取,时延值更精确。而实际测试中随着信噪比的降低,获取的时延精度下降,因此定位性能下降明显。本文算法考虑语音信号的频点信息,取能量较高的频点做定位,并联合多个数据块的空间域信息,提高了对噪声信号的抗干扰能力,具有更好的鲁棒性。
图4 不同定位算法的RMSEFig..4 RMSEs of different algorithms
本文还对比了不同信噪比下各种算法的定位指向性,结果如图5所示。由图5可以看出:在不同信噪比下,SRP-PHAT算法的定位指向性尖锐程度最低;随着信噪比的降低,DS算法的定位指向性效果降低最明显,定位效果的降低也最明显。对比DS算法和CS-OMP算法可以看出,尽管在11.3 dB和6.55 dB信噪比情况下,DS算法都具有相对较低的旁瓣能量,但是CS-OMP算法具有更高的指向性尖锐程度,因此具有更好的定位精度。DS算法的指向性尖锐程度较差,定位精度也因此较差。该现象也能够解释DS算法的RMSE值要比CS-OMP算法的更高。
随着信噪比降低,4种算法的旁瓣能量都有提升。对比不同信噪比下的旁瓣能量可以看出,高信噪比情况下DS算法、CS-OMP算法和本文算法的旁瓣能量相差不大,但是低信噪比下,DS算法和CS-OMP算法的旁瓣能量有明显提升,而本文算法的旁瓣能量增加不大,与其他两类算法的旁瓣能量差值增大,具有更好的旁瓣抑制能力。同时可以看出,在不同信噪比情况下,本文算法都具有更尖锐的指向性。由此可见,相对于其他3类算法,本文算法具有更强的旁瓣抑制能力和更尖锐的指向性。
图5 定位指向性结果Fig..5 Result of positioning directionality
4 结论
本文将DCS理论引入麦克风阵列的声源定位中,采用DCS-SOMP算法对接收信号联合稀疏重构,进而实现声源定位。结果表明:在不同信噪比和混响时间下,DCS-SOMP算法相对于CS-OMP算法、DS算法和SRP-PHAT算法,都具有更高的定位精度和定位指向性;同时在不同频点阈值和不同数据块个数情况下,DCS-SOMP算法都比CS-OMP算法有更好的定位效果。综上所述,利用信号间的稀疏相关性进行联合稀疏重构,能够在低信噪比高混响环境下表现出更好的定位性能和鲁棒性。