概述
SDB(Superdirective Beamformer,超指向波束)是麦克风阵列处理中实现语音增强的一种方法。SDB使用MVDR(Minimum Variance Distortionless Response)准则,且采用理论推导的噪声场,如散射噪声场。超指向的“超(Super)”指的是SDB相对于传统DSB(Delay-Sum Beamformer)能实现更好的指向性。本文介绍频域SDB原理,包括MVDR准则、所用噪声场并画出波束图(Beam Pattern)。
符号表示:对语音信号做短时傅里叶变换,用k k k 表示各频点,l l l 表示帧编号,M M M 表示麦克风个数,c c c 表示声速,θ \theta θ 为目标声源的角度,τ m n \tau_{mn} τ m n 表示第m m m 个麦克风与第n n n 个麦克风的时延差,l m n l_{mn} l m n 表示第m m m 个麦克风与第n n n 个麦克风的距离。W ( k , l ) W(k,l) W ( k , l ) 表示波束的系数,d θ ( k , l ) = ( 1 , e − j w τ 21 , . . . , e − j w τ M 1 ) T \textbf{d}_\theta(k,l)=(1, e^{-jw\tau_{21}}, ..., e^{-jw\tau_{M1}})^T d θ ( k , l ) = ( 1 , e − j w τ 2 1 , . . . , e − j w τ M 1 ) T 表示来自角度θ \theta θ 方向的方向向量,R z z ( k , l ) R_{zz}(k,l) R z z ( k , l ) 表示噪声互相关矩阵。下文为简洁起见省略括号,分别用W W W 、d \textbf{d} d 和R z z R_{zz} R z z 表示对应项。
原理
MVDR
MVDR的目标是求解如下优化问题:
min W { W H R z z W } \min \limits_{W}\{W^HR_{zz}W\} W min { W H R z z W }
s . t . d θ H W = 1 s.t. \textbf{d}_{\theta}^HW=1 s . t . d θ H W = 1
采用拉格朗日乘子法可解得
W o p t = R z z − 1 d θ d θ H R z z d θ W_{opt}=\frac{R_{zz}^{-1}\textbf{d}_{\theta}}{\textbf{d}_{\theta}^HR_{zz}\textbf{d}_{\theta}} W o p t = d θ H R z z d θ R z z − 1 d θ
可见,如果已知目标声源方向,已知噪声互相关矩阵
R z z R_{zz} R z z ,就可使用上式求得
W W W 。其中目标声源方向可使用DOA估计算法求得,而标准的超指向波束使用的噪声互相关矩阵为散射(Diffused)噪声场的互相关矩阵,后文将介绍。
拉格朗日乘子法推导
W o p t W_{opt} W o p t 的具体过程如下:
拉格朗日函数为
L ( W , λ ) = W H R z z W + λ ( d θ H W − 1 ) L(W, \lambda)=W^HR_{zz}W+\lambda(\textbf{d}_{\theta}^HW-1) L ( W , λ ) = W H R z z W + λ ( d θ H W − 1 )
对其求导且置零
∂ L ( W , λ ) ∂ W ∗ = R z z W + λ d θ = 0 \frac{\partial L(W, \lambda)}{\partial W^*}=R_{zz}W+\lambda\textbf{d}_{\theta}=\textbf{0} ∂ W ∗ ∂ L ( W , λ ) = R z z W + λ d θ = 0
得
W o p t = − λ R z z − 1 d θ W_{opt}=-\lambda R_{zz}^{-1}\textbf{d}_{\theta} W o p t = − λ R z z − 1 d θ
将上式代入MVDR的约束条件
d θ H W o p t = 1 \textbf{d}_{\theta}^HW_{opt}=1 d θ H W o p t = 1 中,可解得
λ = − 1 d θ H R z z d θ \lambda=-\frac{1}{\textbf{d}_{\theta}^HR_{zz}\textbf{d}_{\theta}} λ = − d θ H R z z d θ 1 ,再将
λ \lambda λ 代入上式,即可得上文所示
W o p t W_{opt} W o p t 的解析式。
散射噪声场
散射噪声场描述处于强反射封闭空间中的噪声场,即麦克风接收到的噪声来自于四面八方的反射噪声。3D空间的散射噪声场,也称为spherical isotropic noise field,其互相关矩阵为
R z z = [ 1 R z 1 z 2 ⋯ R z 1 z M R z 2 z 1 1 ⋯ R z 2 z M ⋮ ⋮ ⋱ ⋮ R z M z 1 R z M z 2 ⋯ 1 ] R_{zz}=
\left[
\begin{matrix}
1 & Rz_1z_2 & \cdots & Rz_1z_M \\
Rz_2z_1 & 1 & \cdots & Rz_2z_M \\
\vdots & \vdots & \ddots & \vdots \\
Rz_Mz_1 & Rz_Mz_2 & \cdots & 1 \\
\end{matrix}
\right] R z z = ⎣ ⎢ ⎢ ⎢ ⎡ 1 R z 2 z 1 ⋮ R z M z 1 R z 1 z 2 1 ⋮ R z M z 2 ⋯ ⋯ ⋱ ⋯ R z 1 z M R z 2 z M ⋮ 1 ⎦ ⎥ ⎥ ⎥ ⎤
其中
R z m z n = s i n c ( w l m n c ) Rz_mz_n=sinc(\frac{wl_{mn}}{c}) R z m z n = s i n c ( c w l m n )
2D空间的散射噪声场,也称为cylindrical isotropic noise field,模拟比如天花板和地板弱反射而四周强反射的房间内的噪声场。其互相关矩阵中的元素为
R z m z n = J 0 ( w l m n c ) Rz_mz_n=J_0(\frac{wl_{mn}}{c}) R z m z n = J 0 ( c w l m n )
其中
J 0 ( ⋅ ) J_0(·) J 0 ( ⋅ ) 为第一类零阶Bessel函数。
由于散射噪声场的互相关矩阵只与麦克风阵列结构有关,而与信号无关,因此计算所得的波束系数
W o p t W_{opt} W o p t 也与数据无关。只有当目标方向改变时,才需重新计算
W o p t W_{opt} W o p t 。
以两麦为例,互相关矩阵的推导如下:
对spherical isotropic噪声场,考虑下图所示的球体,假设球半径
R R R 远大于麦克风间距
d d d 。
图1 spherical isotropic 噪声场示意图
先考虑只有两个噪声源,分别来自不同的方向
ϕ 1 \phi_1 ϕ 1 和
ϕ 2 \phi_2 ϕ 2 ,两个麦克风分别用下标A和B表示,则麦克风接收信号为
s A ( t ) = s 1 ( t ) + s 2 ( t ) s_A(t)=s_1(t)+s_2(t) s A ( t ) = s 1 ( t ) + s 2 ( t ) s B ( t ) = s 1 ( t − d c o s ϕ 1 c ) + s 2 ( t − d c o s ϕ 2 c ) s_B(t)=s_1(t-\frac{dcos\phi_1}{c})+s_2(t-\frac{dcos\phi_2}{c}) s B ( t ) = s 1 ( t − c d c o s ϕ 1 ) + s 2 ( t − c d c o s ϕ 2 )
自相关功率谱和互相关功率谱分别为
S A A ( e j w ) = S 1 ( e j w ) + S 2 ( e j w ) S_{AA}(e^{jw})=S_1(e^{jw})+S_2(e^{jw}) S A A ( e j w ) = S 1 ( e j w ) + S 2 ( e j w ) S B B ( e j w ) = S 1 ( e j w ) + S 2 ( e j w ) S_{BB}(e^{jw})=S_1(e^{jw})+S_2(e^{jw}) S B B ( e j w ) = S 1 ( e j w ) + S 2 ( e j w ) S A B ( e j w ) = S 1 ( e j w ) e − j w d c o s ϕ 1 c + S 2 ( e − j w d c o s ϕ 2 c ) S_{AB}(e^{jw})=S_1(e^{jw})e^{-jw\frac{dcos\phi_1}{c}}+S_2(e^{-jw\frac{dcos\phi_2}{c}}) S A B ( e j w ) = S 1 ( e j w ) e − j w c d c o s ϕ 1 + S 2 ( e − j w c d c o s ϕ 2 )
由互相关函数的定义
γ ( e j w ) = S A B ( e j w ) S A A ( e j w ) S B B ( e j w ) \gamma(e^{jw})=\frac{S_{AB}(e^{jw})}{\sqrt{S_{AA}(e^{jw})S_{BB}(e^{jw})}} γ ( e j w ) = S A A ( e j w ) S B B ( e j w ) S A B ( e j w )
可知
γ ( e j w ) = 1 2 ( e − j w d c o s ϕ 1 c + e − j w d c o s ϕ 2 c ) \gamma(e^{jw})=\frac 1 2(e^{-jw\frac{dcos\phi_1}{c}}+e^{-jw\frac{dcos\phi_2}{c}}) γ ( e j w ) = 2 1 ( e − j w c d c o s ϕ 1 + e − j w c d c o s ϕ 2 )
如果存在N个不相关的噪声源,互相关函数为
γ ( e j w ) = 1 N ∑ n = 1 N e − j w d c o s ϕ n c \gamma(e^{jw})=\frac 1 N\sum\limits_{n=1}^Ne^{-jw\frac{dcos\phi_n}{c}} γ ( e j w ) = N 1 n = 1 ∑ N e − j w c d c o s ϕ n
考虑图1所示球面上所有点都是噪声源,红线所示的圆环都对应同一个角度
ϕ \phi ϕ ,圆环的面积是
2 π R s i n ϕ R d ϕ 2\pi Rsin \phi Rd\phi 2 π R s i n ϕ R d ϕ ,球表面积为
4 π R 2 4\pi R^2 4 π R 2 ,则有
γ ( e j w ) = 1 4 π R 2 ∫ 0 π e j w d c o s ϕ c 2 π R 2 s i n ϕ d ϕ = s i n c ( w d c ) \gamma(e^{jw})=\frac 1 {4\pi R^2}\int_0^{\pi} e^{jw\frac{dcos\phi}{c}}2\pi R^2 sin\phi d\phi=sinc(\frac{wd}{c}) γ ( e j w ) = 4 π R 2 1 ∫ 0 π e j w c d c o s ϕ 2 π R 2 s i n ϕ d ϕ = s i n c ( c w d )
同理,对cylindrical isotropic噪声场,在平面圆上求解,有
γ ( e j w ) = 1 2 π R ∫ 0 2 π e − j w d c o s ϕ c R d ϕ = J 0 ( w d c ) \gamma(e^{jw})=\frac 1 {2\pi R}\int_0^{2\pi} e^{-jw\frac{dcos\phi}{c}}Rd\phi=J_0(\frac{wd}{c}) γ ( e j w ) = 2 π R 1 ∫ 0 2 π e − j w c d c o s ϕ R d ϕ = J 0 ( c w d )
以上。
波束图
Beam pattern的定义为∣ W H d ϕ ∣ |W^H\textbf{d}_\phi| ∣ W H d ϕ ∣ ,即给定那个某W W W ,它反映波束在不同频点f f f 上对不同来声方向ϕ \phi ϕ 的信号给予多大增益。从波束图上能清晰看出波束的指向性、不同频点的主瓣宽度、混叠频率等信息。
这里设麦克风阵列为彼此间距6cm的四麦克风圆阵(分别分布在0°、90°、180°和270°方向),目标方向为135°,采样率为16kHz,使用超指向波束计算W W W ,噪声场采用spherical isotropic噪声场,根据定义画出Beam pattern如图2所示。
图2 超指向波束的波束图示意
以上。
Reference
本文主要参照书[1]的第2章,关于散射噪声场的推导参照Gannot博士论文[2]的附录A。图1来自[2]。
[1] M. Brandstein, D. Ward, Microphone Arrays: Signal Processing Techniques and Applications, Germany, Berlin:Springer, 2001.
[2] http://www.eng.biu.ac.il/~gannot/articles/phd_pdf.pdf