波束形成算法学习笔记之二(固定波束形成)

波束形成算法学习笔记

    • 波束形成的优缺点(Pros & Cons)
      • 优点
      • 缺点
    • 麦克风的指向性(Directivity pattern of a microphone)
    • 信号模型和定义
    • 评价指标
    • 最大化白噪声增益

麦克风阵列算法有两大类,一类是波束形成算法,另一类是盲源分离算法,两者互有优劣,先记录波束形成算法的笔记。系列博客先介绍两种常见麦克风阵列结构,然后分别介绍固定波束形成(fixed beamforming, data-independent) 和自适应波束形成(adaptive beamforming, data-dependent)。

波束形成的优缺点(Pros & Cons)

优点

  • 波束形成的优点是可以利用空间信息做空间滤波(Spatial filtering)。
    以单麦克风降噪为例。单麦克风接收到的信号,无法分辨来波方向。对于噪声的抑制主要抑制平稳噪声。因为语音信号是非平稳的,如何准确区分非平稳的噪声和语音比较困难。麦克风阵列至少有两颗麦克风,能够一定程度的区分来波方向。对于非期望方向的干扰语音或者其他非平稳噪声可以线性地衰减。

缺点

  • 波束形成算法的性能依赖目标信号的VAD信息。
    以GSC结构为例,MC的自适应噪声消除,其滤波系数更新依赖于这个VAD信息。只有当目标信号(有效语音)不存在时,才需要更新滤波器系数。否则会将有效语音消除掉。
  • 波束形成算法的性能依赖目标信号的DOA信息。
    恶劣的声场环境,强噪声和长混响都会影响DOA算法的准确性。准确的DOA算法运算量很大。
  • 如果目标信号和干扰信号在同一个波束内,是无法消除的。
    目标信号和干扰信号在同一个波束内,波束形成是无法分辨出它们的,空间滤波无法进行,自然无法消除。
  • 长混响条件下,波束形成性能会下降。
    长混响,比如 T 60 = 300 m s T_{60}=300ms T60=300ms,目标信号和干扰信号会相互泄露到对方的波束,空间滤波性能下降。原因同上。

麦克风的指向性(Directivity pattern of a microphone)

这里说的是麦克风的指向性,后面将要说的麦克风阵列的指向性,需要区分开。

  • 麦克风的指向性是由麦克风的物理特性决定的,它描述了麦克风对特定来波方向信号增益相位移动。类似于时不变系统对信号的幅频响应相频响应
  • 来波方向应该是一个三维的,有水平角(elevation angle)和俯仰角(azimuth angle)。为了简化问题,先只考虑二维的场景。
  • 麦克风的指向性就可以用 H ( ω , θ ) H(\omega, \theta) H(ω,θ) 表示,其中 ω \omega ω表示频率, θ \theta θ表示角度。如下图所示,为某一特定频率 ω 0 \omega_0 ω0的麦克风指向性 H ( ω 0 , θ ) H(\omega_0, \theta) H(ω0,θ)
    波束形成算法学习笔记之二(固定波束形成)_第1张图片

信号模型和定义

假设信号都来自远场

  • 麦克风接收到的信号响应,由两部分响应组成。一部分是麦克风的指向性,一部分是由麦克风位置决定的相位
    Y m ( ω , θ ) = H m ( ω , θ ) ∗ e x p ( − j ω τ m ( θ ) ) ∗ S ( ω ) Y_m(\omega, \theta) = H_m(\omega, \theta) * exp(-j \omega\tau_m(\theta)) * S(\omega) Ym(ω,θ)=Hm(ω,θ)exp(jωτm(θ))S(ω)
    其中 H m H_m Hm是麦克风的指向性, τ m \tau_m τm是与麦克风位置相关的延迟, S ( ω ) S(\omega) S(ω)是原信号。
  • 麦克风阵列接收到的信号,需要将上述信号( m = 1 , 2... M m=1,2...M m=1,2...M)用向量形式来表达。
    Y ( ω , θ ) = d ( ω , θ ) ∗ S ( ω ) Y(\omega,\theta) = d(\omega,\theta)*S(\omega) Y(ω,θ)=d(ω,θ)S(ω)
    d ( ω , θ ) = [ H 1 ( ω , θ ) e x p ( − j ω τ 1 ( θ ) ) . . . H M ( ω , θ ) e x p ( − j ω τ M ( θ ) ) ] d(\omega,\theta) = [H_1(\omega,\theta)exp(-j\omega\tau_1(\theta))...H_M(\omega,\theta)exp(-j\omega\tau_M(\theta))] d(ω,θ)=[H1(ω,θ)exp(jωτ1(θ))...HM(ω,θ)exp(jωτM(θ))]
    其中 d d d是导向矢量(steering vector),是由麦克风指向性和麦克风位置决定的。
  • 如果所有的麦克风拥有同样的指向性, H 0 ( ω , θ ) H_0(\omega, \theta) H0(ω,θ),则导向矢量可以提取公因式。如果使用的是全指向性麦克风,则有 H 0 ( ω , θ ) = 1 H_0(\omega, \theta)=1 H0(ω,θ)=1,导向矢量只由麦克风的位置决定。
    d ( ω , θ ) = H 0 ( ω , θ ) [ 1 , e x p ( − j ω τ 2 ( θ ) ) , . . . , e x p ( − j ω τ M ( θ ) ) ] d(\omega,\theta) = H_0(\omega, \theta)[1, exp(-j\omega\tau_2(\theta)),...,exp(-j\omega\tau_M(\theta))] d(ω,θ)=H0(ω,θ)[1,exp(jωτ2(θ)),...,exp(jωτM(θ))]
  • 麦克风阵列的输出信号,经过滤波相加(filter-and-sum)之后,得到输出。
    Z ( ω , θ ) = F H ( ω ) Y ( ω , θ ) = F H ( ω ) d ( ω , θ ) S ( ω ) Z(\omega, \theta) = F^H(\omega) Y(\omega,\theta) = {F^H(\omega)d(\omega,\theta)}S(\omega) Z(ω,θ)=FH(ω)Y(ω,θ)=FH(ω)d(ω,θ)S(ω)
    其中 F ( ω ) F(\omega) F(ω)是滤波器系数。
  • 阵列传递函数,英文可以是directivity pattern,也可以是transfer function,是等价的。
    H ( ω , θ ) = Z ( ω , θ ) / S ( ω ) = F H ( ω ) d ( ω , θ ) H(\omega, \theta) = Z(\omega, \theta)/S(\omega) = F^H(\omega)d(\omega,\theta) H(ω,θ)=Z(ω,θ)/S(ω)=FH(ω)d(ω,θ) (这里的共轭还没能理解是怎么推导的)

评价指标

麦克风阵列的性能主要用白噪声增益指向性来评价。前者用来评价阵列在白噪声场景下的抑制能力,后者用来评价阵列在扩散场噪声下的阵列增益。其本质都是阵列增益,可以理解为输出信噪比除以输入信噪比,也可以表示为信号的传递函数 ∣ ∣ 2 ||^2 2除以噪声的传递函数 ∣ ∣ 2 ||^2 2。在表示噪声的输出函数之前,先引入噪声的相关矩阵和相干矩阵的概念,即noise correlation matrix 和 noise coherence matrix。

  • 噪声相关矩阵 noise correlation matrix

  • 噪声相干矩阵 noise coherence matrix
    白噪声的相干矩阵为单位阵,即 Γ n o i s e w h i t e ( ω ) = I ( ω ) \Gamma^{white}_{noise}(\omega) = I(\omega) Γnoisewhite(ω)=I(ω)
    扩散噪声的相干矩阵可以用以下公式来表示 Γ n o i s e d i f f u s e ( ω ) = s i n c ( ω f s d / c ) \Gamma^{diffuse}_{noise}(\omega) = sinc(\omega f_s d/c) Γnoisediffuse(ω)=sinc(ωfsd/c)

  • 阵列增益函数 array gain
    G ( ω , θ ) = S N R o u t S N R i n = ∣ F H ( ω ) d ( ω , θ ) ∣ 2 F H ( ω ) Γ n o i s e ( ω ) F ( ω ) G(\omega,\theta)=\frac{SNR_{out}}{SNR_{in}}=\frac{|F^H(\omega)d(\omega,\theta)|^2}{F^H(\omega)\Gamma_{noise}(\omega) F(\omega)} G(ω,θ)=SNRinSNRout=FH(ω)Γnoise(ω)F(ω)FH(ω)d(ω,θ)2

  • 白噪声增益 white noise gain
    因为白噪声的自相关矩阵是一个单位阵,即 Γ n o i s e w h i t e ( ω ) = I ( ω ) \Gamma^{white}_{noise}(\omega) = I(\omega) Γnoisewhite(ω)=I(ω)
    W N G ( ω , θ ) = ∣ F H ( ω ) d ( ω , θ ) ∣ 2 F H ( ω ) F ( ω ) WNG(\omega,\theta)=\frac{|F^H(\omega)d(\omega,\theta)|^2}{F^H(\omega) F(\omega)} WNG(ω,θ)=FH(ω)F(ω)FH(ω)d(ω,θ)2

  • 指向性 array directivity index
    D I ( ω , θ ) = ∣ F H ( ω ) d ( ω , θ ) ∣ 2 F H ( ω ) Γ n o i s e d i f f u s e ( ω ) F ( ω ) DI(\omega,\theta)=\frac{|F^H(\omega)d(\omega,\theta)|^2}{F^H(\omega)\Gamma^{diffuse}_{noise}(\omega) F(\omega)} DI(ω,θ)=FH(ω)Γnoisediffuse(ω)F(ω)FH(ω)d(ω,θ)2

最大化白噪声增益

最大化白噪声增益,即求出一组 F ( ω ) F(\omega) F(ω)参数,使得白噪声增益最大。
F ( ω ) = a r g { m a x W N G ( ω , θ ) } = a r g { m a x ∣ F H ( ω ) d ( ω , θ ) ∣ 2 F H ( ω ) F ( ω ) } F(\omega) = arg\{maxWNG(\omega, \theta)\} = arg\{max\frac{|F^H(\omega)d(\omega,\theta)|^2}{F^H(\omega) F(\omega)}\} F(ω)=arg{maxWNG(ω,θ)}=arg{maxFH(ω)F(ω)FH(ω)d(ω,θ)2}
对于上式,有一个限制条件,分子是1。即对期望方向的信号增益是0dB。这样最大化问题就转变为最小化噪声输出功率的问题。
F ( ω ) = a r g { m i n F H ( ω ) F ( ω ) } , s . t . ∣ F H ( ω ) d ( ω , ϕ ) ∣ = 1 F(\omega) = arg\{min{F^H(\omega) F(\omega)}\}, s.t. |F^H(\omega)d(\omega,\phi)|=1 F(ω)=arg{minFH(ω)F(ω)},s.t.FH(ω)d(ω,ϕ)=1
得到最优解为
F ( ω ) = d ( ω , ϕ ) ∣ d ( ω , ϕ ) ∣ 2 F(\omega) = \frac{d(\omega,\phi) }{|d(\omega,\phi)|^2} F(ω)=d(ω,ϕ)2d(ω,ϕ)

你可能感兴趣的:(数字信号处理,语音信号处理)