刘文俊,巩朋成*,吴云韬
1.智能机器人湖北省重点实验室(武汉工程大学),湖北 武汉 430205;2.武汉工程大学计算机科学与工程学院,湖北 武汉 430205
波束形成本质上是一种空间滤波器,对麦克风阵列接收到的信号进行加权,在接收到的来自期望信号方向形成主波束,对接收到的其他方向的干扰信号进行抑制[1-2]。近几十年来,许多专家学者投入到对该领域的研究和探索,形成了许多关于波束形成的分支,常见的包括延迟求和波束形成(delay-sum beamformer,DSB)[3]、超指向性波束形成(super-directive beamformer,SDB)[4]、自适应波束形成(adaptive beamformer,AB)[5]、差分波束形成(differential beamformer,DB)[6]等等。
其中,差分波束形成算法是当前的一个研究热点。差分麦克风阵列不同于加性麦克风阵列(将麦克风阵列接收到的信号进行相加),它利用麦克风阵列中相邻的麦克风的声压差来实现波束形成,相较于加性麦克风阵列,差分波束形成具有高指向性增益和能形成波束图不随频率而改变的优点。因此,使用差分波束形成算法来处理像语音信号这种频率波动大的信号,具有其独特的优势。另外,差分麦克风阵列中的相邻2个麦克风之间间距较小,致使整个麦克风阵列所占的空间较小,这就方便了它嵌入到小设备中,为差分麦克风阵列的实际应用提供了方便。
最初,差分波束形成是采用多层结构的形式来设计的,一个高阶的差分波束形成器通常由多个低阶的差分波束形成器组成[7]。但是,这种传统的波束形成缺乏灵活性,存在失配问题,而且在低频时对传感器噪声和麦克风阵列自身的缺陷非常敏感。为了克服以上缺陷,在文献[8]中,通过短时域傅里叶变换来形成差分波束形成的方法被提出,这个方法将传统的求解波束形成问题转化为在零陷约束下对线性结构优化求解的问题。随着波束形成技术的发展,出现了一种利用空间差分算子来设计波束形成的方法[9]。这种利用空间差分算子来设计波束形成的方法在白噪声增益和指向性因子之间进行了折衷。设计的波束形成器在各个方面的表现更加均衡。
另外,Kronecker积的方法应用在多输入多输出(multiple-input multiple-output,MIMO)雷达波束形成领域[10],为设计差分波束形成提供了新的思路[11],Kronecker积是将一个较大的麦克风阵分解成2个麦克风子阵列分别优化求解,从而设计出效果更好的波束形成器。
本文提出一种利用Kronecker积将一个大的麦克风阵列分解成2个子阵列,其中一个利用空间差分算子优化求解,另一个则使用零陷约束[12]方法优化求解。最终得到的波束形成器可以进一步在白噪声增益(white noise gain,WNG)和指向性因子(directivity factor,DF)之间取得平衡,并得到更好的稳健性。
考虑将均匀线性麦克风阵列作为接收信号的阵列。它由M个全方向性麦克风组成,相邻2个阵元的间距设为δ,该实验在远场模型中进行,即发射信号为平面波。用θ表示方位角,且期望信号方向设为端射方向(θs=0)。
阵列的导向矢量[13-14]为
其中,j表示复数的虚部,ωˉ=ωδ/c,ω=2πf表示角频率,f>0是频率,c是声音在空气中传播的速度,一般有c=340 m/s。
使用式(1)中定义的方向矢量,频域内观察信号的向量表示为:
Ym(ω)表示第m(1≤m≤M)个麦克风接收到的信号,X(ω)是零均值期望信号,v(ω)指零均值加性噪声信号向量,它的数学形式类似于y(ω)。
波束形成通常是指通过对麦克风阵列接收到的观测信号应用一种空间滤波进行加权的方式,来估测期望信号。一般,波束形成器的输出可表示为:
其中,Hm是波束形成器中的第m个元素,Z(ω)是对期望信号X(ω)的估测,上标∗表示复共轭。
h(ω)是一个长度为M的线性波束形成器[15-16]。通常,为了获得无失真的期望信号,需要添加无失真约束:
利用空间差分算子来设计第一个子阵列,对于空间差分算子的定义,可以参考文献[11]。假设在这里考虑的是一个P(1≤P≤M1)阶空间差分阵列。为了简洁起见,将省略对角频率ω的表示。
另外有:
式(8)是一个长度为p+1的向量。,是二项式系数。因此,式(2)在空间差分阵列下的观测信号为:
其中,q=τP0
波束形成的过程就是寻找一个空间滤波器对麦克风阵列接收到的期望信号进行强化,对干扰信号和噪声进行抑制和削弱。因此,一个p阶空间差分波束形成,是将一个长度为M1-P的滤波器h(P)作用于观测信号y(P)。
于是有:
对第二个子阵列,采用零陷约束来设计一个N阶差分阵列,其中,N≤M2-1。通常,在使用阵列接收期望信号时,周围环境中存在的噪声信号会对其产生干扰,零陷约束的本质是通过在噪声方向上设置零陷,进而起到抑制噪声信号,增强期望信号的目的。一般而言,零陷的个数与差分波束形成器的阶数数值上相等,假设一个N阶差分波束形成器对应的零陷方向分别为θ0;1,θ0;2,…,θ0;N。第二个子阵列的导向矢量为:
另有:
其中,
i是(N+1)×(N+1)单位矩阵的第一列。进而:
利用Kronecker积,将一个由M个麦克风组成的线性阵列分解成2个麦克风子阵列,一个子阵列麦克风数为M1,第二个子阵列麦克风数为M2。其中,M=M1×M2,全局麦克风阵列和第一个子阵列的相邻两个阵元间距为δ,第二个子阵列的相邻2个阵元间距为M1δ,它的结构如图1所示。而第一个子阵列在利用Kronecker积的过程中可以重复进行运算,因此,只需要M1+M2个麦克风,这样不仅节约了麦克风成本,而且使麦克风阵列更小巧,便于嵌入到其他设备中。其中,全局导向矢量可以表示为2个子阵导向矢量的Kronecker积,有:
图1 全局麦克风阵列和麦克风子阵列的模型图Fig.1 Models of microphone global-array and microphone sub-array
全局波束形成器表示为:
根据Kronecker积的结合律,有:
其中IM1和IM2分别表示大小为M1×M1和大小为M2×M2的单位矩阵。
对于设计的波束形成器的好坏进行评判,通常,波束图(beampattern)、白噪声增益和指向性因子是波束形成器好坏的衡量指标。
波束图[17-18]的定义表示为:
白噪声增益[19]的定义可表示为:
考虑到指向性因子[20-21]是在各向同性噪声场条件下的测量指标,所以不能单纯将2个子阵列的指向性因子相乘。结合式(19),有:
其中,
对提出的方法进行仿真实验,并将其与传统的方法以及单纯的空间差分算子方法进行对比。
使用均匀线性阵列,阵元间距σ=1 cm,期望信号方向为端射方向,即θs=0°。设计传统差分波束形成的线性阵列的麦克风数M=16,空间差分算子波束形成线性阵列的麦克风数M=4,本文提出的差分波束形成的2个子线性阵列的麦克风数M1=4,M2=4。
图2显示了在阵元间距σ=1 cm,频率f=3 kHz的条件下,图2(a)为传统差分波束形成(麦克风数M=16)对应的波束图、图2(b)为空间差分算子波束形成(麦克风数M=4)对应的波束图以及图2(c)为本文提出的波束形成方法(麦克风数分别为M1=4,M2=4)对应的波束图,频率f设为3 000 Hz。图3画出了传统差分波束形成(麦克风数M=16)、空间差分算子波束形成(麦克风数M1=4)和本文提出的波束形成方法(麦克风数M2=4)在阵元间距σ=1cm的条件下,关于频率f的指向性因子图3(a)和白噪声增益曲线图3(b),其中,D为指向性因子,W为白噪声增益。通过图3,可以看到本文提出的方法相比于传统差分波束形成、空间差分算子波束形成方法,该方法设计的波束形成的指向性因子和白噪声增益都有一定程度的提升,也就意味着本文提出的方法具有更好的指向性和在白噪声环境下更高的稳健性。
图2 波束图比较:(a)传统差分波束形成,(b)空间差分算子,(c)本文提出的Fig.2 Comparison of beam patterns:(a)tranditional differential beamforming,(b)spatial difference operator,(c)proposed method
图3 性能对比:(a)指向性因子(DF),(b)白噪声增益(WNG)Fig.3 Comparison of performances:(a)directivity factor,(b)white noise gain
以上提出通过Kronecker积将一个全局麦克风阵列拆分为2个小的麦克风子阵列来分别优化求解的方法,其中一个子阵列使用零陷约束来求解,另一个子阵列通过空间差分算子算法求解。通过上面的仿真实验对比,采用Kronecker积的方式设计的波束形成,相比于传统的波束形成方法以及单纯的空间差分算子方法而言,不仅减少了麦克风数量,节约了生产成本。而且,使用Kronecker积来设计的波束形成器具有更高的指向性因子和白噪声增益,也就意味着设计的波束形成器具有更高的方向指向性和更突出的稳健性。