其中,差分波束形成算法是当前的一个研究热点。差分麦克风阵列不同于加性麦克风阵列(将麦克风阵列接收到的信号进行相加),它利用麦克风阵列中相邻的麦克风的声压差来实现波束形成,相较于加性麦克风阵列,差分波束形成具有高指向性增益和能形成波束图不随频率而改变的优点。因此,使用差分波束形成算法来处理像语音信号这种频率波动大的信号,具有其独特的优势。另外,差分麦克风阵列中的相邻2个麦克风之间间距较小,致使整个麦克风阵列所占的空间较小,这就方便了它嵌入到小设备中,为差分麦克风阵列的实际应用提供了方便。
最初,差分波束形成是采用多层结构的形式来设计的,一个高阶的差分波束形成器通常由多个低阶的差分波束形成器组成[7]。但是,这种传统的波束形成缺乏灵活性,存在失配问题,而且在低频时对传感器噪声和麦克风阵列自身的缺陷非常敏感。为了克服以上缺陷,在文献[8]中,通过短时域傅里叶变换来形成差分波束形成的方法被提出,这个方法将传统的求解波束形成问题转化为在零陷约束下对线性结构优化求解的问题。随着波束形成技术的发展,出现了一种利用空间差分算子来设计波束形成的方法[9]。这种利用空间差分算子来设计波束形成的方法在白噪声增益和指向性因子之间进行了折衷。设计的波束形成器在各个方面的表现更加均衡。
另外,Kronecker积的方法应用在多输入多输出(multiple-input multiple-output,MIMO)雷达波束形成领域[10],为设计差分波束形成提供了新的思路[11],Kronecker积是将一个较大的麦克风阵分解成2个麦克风子阵列分别优化求解,从而设计出效果更好的波束形成器。
本文提出一种利用Kronecker积将一个大的麦克风阵列分解成2个子阵列,其中一个利用空间差分算子优化求解,另一个则使用零陷约束[12]方法优化求解。最终得到的波束形成器可以进一步在白噪声增益(white noise gain,WNG)和指向性因子(directivity factor,DF)之间取得平衡,并得到更好的稳健性。
1 信号模型
考虑将均匀线性麦克风阵列作为接收信号的阵列。它由[M]个全方向性麦克风组成,相邻2个阵元的间距设为[δ],该实验在远场模型中进行,即发射信号为平面波。用[θ]表示方位角,且期望信号方向设为端射方向[(θs=0)]。
阵列的导向矢量[13-14]为
[dθ(ω)=[1 e-jωcosθ ? e-jω(M-1)cosθ]T] (1)
其中,[j]表示复数的虚部,[ω=ωδ/c],[ω=2πf]表示角频率,[f>0]是频率,[c]是声音在空气中传播的速度,一般有[c=340 m/s]。
使用式(1)中定义的方向矢量,频域内观察信号的向量表示为:
[yω=[Y1ωY2ω?Ymω]T=xω+v(ω)=]
[dTθωXω+vω] (2)
[Ym(ω)]表示第[m]([1≤m≤M)]个麦克风接收到的信号,[Xω]是零均值期望信号,[vω]指零均值加性噪声信号向量,它的数学形式类似于[yω]。
波束形成通常是指通过对麦克风阵列接收到的观测信号应用一种空间滤波进行加权的方式,来估测期望信号。一般,波束形成器的输出可表示为:
[Zω=m=1MH?m(ω)Ym(ω)=hHωyω=]
[hHωdωXω+hHωvω] (3)
其中,Hm是波束形成器中的第m个元素,[Zω]是对期望信号[Xω]的估测,上标[?]表示复共轭。
[hω?[H1ω H2ω ?HM(ω)]T] (4)
[hω]是一个长度为[M]的线性波束形成器[15-16]。通常,为了获得无失真的期望信号,需要添加无失真约束:
[hHωdθsω=1] (5)
2 测量指标
利用空间差分算子来设计第一个子阵列,对于空间差分算子的定义,可以参考文献[11]。假设在这里考虑的是一个[P] (1[≤P≤M1])阶空间差分阵列。为了简洁起见,将省略对角频率[ω]的表示。
[d1,θ=[1 e-jωcosθ ? e-jω(M1-1)cosθ]T] (6)
另外有:
[y(P)=Δ(P)y] (7)
其中,[Δ(p)=CT(P)0?00?CT(P)???0?00?CT(P)]是一个[(M1-P)] [×] [M1] 的矩阵。
[CP=(-1)PP0 (-1)P-1P1 ? -PP-1 1]
(8)
式(8)是一个长度为[p+1]的向量。[Pj = P!j!P?j!] ,是二项式系数。因此,式(2)在空间差分阵列下的观测信号为:
[y(P)=qd0, M1-PX+v(P)=x(p)+v(P)=Δ(P)y] (9)
其中,[q=τP0]
[τ0=e-jω-1] (10)
[d0, M1-P=[1e-jω ? e-jM1-P-1ω]T] (11)
波束形成的过程就是寻找一个空间滤波器对麦克风阵列接收到的期望信号进行强化,对干扰信号和噪声进行抑制和削弱。因此,一个[p]阶空间差分波束形成,是将一个长度为[M1-P]的滤波器[h(P)]作用于观测信号[y(P)]。
于是有:
[ZP=hTPyP=hTPxP+hTPvP=hTPXqd0, M1-p+ hH(P)v(P)] (12)
对第二个子阵列,采用零陷约束来设计一个N阶差分阵列,其中,[N≤M2-1]。通常,在使用阵列接收期望信号时,周围环境中存在的噪声信号会对其产生干扰,零陷约束的本质是通过在噪声方向上设置零陷,进而起到抑制噪声信号,增强期望信号的目的。一般而言,零陷的个数与差分波束形成器的阶数数值上相等,假设一个N阶差分波束形成器对应的零陷方向分别为[θ0;1],[θ0;2],…,[θ0;N]。第二个子阵列的导向矢量为:
[d2,θ(ω)=[1 e-jωM1cosθ ? e-jω(M2-1)M1cosθ]T] (13)
另有:
[DHθh2=i] (14)
其中,
[Dθ=dH2,0dHθ2,0;1dHθ2,0;2?dHθ1,0;NT]
[i]是[N+1×N+1]单位矩阵的第一列。进而:
[h2=DHθ0;N (Dθ0;N DHθ0;N)-1i] (15)
3 Kronecker product方法
利用Kronecker积,将一个由[M]个麦克风组成的线性阵列分解成2个麦克风子阵列,一个子阵列麦克风数为M1,第二个子阵列麦克风数为M2。其中,[M=M1×M2],全局麦克风阵列和第一个子阵列的相邻两个阵元间距为[δ],第二个子阵列的相邻2个阵元间距为[M1δ],它的结构如图1所示。而第一个子阵列在利用Kronecker积的过程中可以重复进行运算,因此,只需要[M1+M2]个麦克风,这样不仅节约了麦克风成本,而且使麦克风阵列更小巧,便于嵌入到其他设备中。其中,全局导向矢量可以表示为2个子阵导向矢量的Kronecker积,有:
[dθ=dθ, M1-pd2,θ] (16)
<G:\武汉工程大学\2022\2022-06工程\Image\刘文俊-1.tif>[Global array][Array 1][Array 2][1 2 3][1 2 P M1][1 2][δ][δ][δ][δ][P][M1-P][M1δ][M][M1]
图1 全局麦克风阵列和麦克风子阵列的模型图
Fig.1 Models of microphone global-array and
microphone sub-array
全局波束形成器表示为:
[h=h(p)h2] (17)
根据Kronecker积的结合律,有:
[h(p)h2=(h(p)IM2)h2=(IM1h2)h(p)] (18)
其中[IM1] 和[IM2]分别表示大小为[M1×M1]和大小为[M2×M2]的单位矩阵。
对于设计的波束形成器的好坏进行评判,通常,波束图(beampattern)、白噪声增益和指向性因子是波束形成器好坏的衡量指标。
波束图[17-18]的定义表示为:
[Bθh=hHdθ=]
[(h(p)h2)H (τPθdθ, M1-pd2,θ)=]
[τPθhH(P)dθ,M1-p×hH2d2,θ=]
[BθhP×Bθh2] (19)
白噪声增益[19]的定义可表示为:
[ωh=hHd02hHh=(h(p)h2)H(τP0d0, M1-pd2,0)2(h(p)h2)H(h(p)h2)=]
[τ02phH(p)d0, M1-p2hH(p)h(p)×hH2d2,02hH2 h2=]
[ω(h(p))×ω(h2)] (20)
考虑到指向性因子[20-21]是在各向同性噪声场条件下的测量指标,所以不能单纯将2个子阵列的指向性因子相乘。结合式(19),有:
[Dh(p)| h2=BθhP2hH(P)Γh2hP] (21)
[Dh2|h(p)=Bθh22hH2ΓhPh2] (22)
其中,
[Γh(p)=120πd2,θ dH2,θBθhp2sinθdθ] (23)
[Γh2=120πτθ2pdθ, M1-p dHθ, M1-pBθh22sinθdθ] (24)
4 仿真实验
对提出的方法进行仿真实验,并将其与传统的方法以及单纯的空间差分算子方法进行对比。
使用均匀线性阵列,阵元间距[σ=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])在阵元间距[σ=1 cm]的条件下,关于频率[f]的指向性因子图3(a)和白噪声增益曲线图3(b),其中,D为指向性因子,W为白噪声增益。通过图3,可以看到本文提出的方法相比于传统差分波束形成、空间差分算子波束形成方法,该方法设计的波束形成的指向性因子和白噪声增益都有一定程度的提升,也就意味着本文提出的方法具有更好的指向性和在白噪声环境下更高的稳健性。
<G:\武汉工程大学\2022\2022-06工程\Image\刘文俊-3.tif>
图3 性能对比:(a)指向性因子(DF),
(b)白噪声增益(WNG)
Fig. 3 Comparison of performances:(a) directivity factor , (b) white noise gain
5 结 论
以上提出通过Kronecker积将一个全局麦克风阵列拆分为2个小的麦克风子阵列来分别优化求解的方法,其中一个子阵列使用零陷约束来求解,另一个子阵列通过空间差分算子算法求解。通过上面的仿真实验对比,采用Kronecker积的方式设计的波束形成,相比于传统的波束形成方法以及单纯的空间差分算子方法而言,不仅减少了麦克风数量,节约了生产成本。而且,使用Kronecker积来设计的波束形成器具有更高的指向性因子和白噪声增益,也就意味着设计的波束形成器具有更高的方向指向性和更突出的稳健性。