波束形成算法學習筆記


麥克風陣列算法有兩大類,一類是波束形成算法,另一類是盲源分離算法,兩者互有優劣,先記錄波束形成算法的筆記。本篇博客先說波束形成的優缺點,波束形成的基礎知識,然後分別介紹固定波束形成(fixed beamforming, data-independent) 和自適應波束形成(adaptive beamforming, data-dependent)。

波束形成的優缺點(Pros & Cons)

優點

  • 波束形成的優點是可以利用空間信息做空間濾波(Spatial filtering)。
    以單麥克風降噪爲例。單麥克風接收到的信號,無法分辨來波方向。對於噪聲的抑制主要抑制平穩噪聲。因爲語音信號是非平穩的,如何準確區分非平穩的噪聲和語音比較困難。麥克風陣列至少有兩顆麥克風,能夠一定程度的區分來波方向。對於非期望方向的干擾語音或者其他非平穩噪聲可以線性地衰減。

缺點

  • 波束形成算法的性能依賴目標信號的VAD信息。
    以GSC結構爲例,MC的自適應噪聲消除,其濾波係數更新依賴於這個VAD信息。只有當目標信號(有效語音)不存在時,才需要更新濾波器係數。否則會將有效語音消除掉。
  • 波束形成算法的性能依賴目標信號的DOA信息。
    惡劣的聲場環境,強噪聲和長混響都會影響DOA算法的準確性。準確的DOA算法運算量很大。
  • 如果目標信號和干擾信號在同一個波束內,是無法消除的。
    目標信號和干擾信號在同一個波束內,波束形成是無法分辨出它們的,空間濾波無法進行,自然無法消除。
  • 長混響條件下,波束形成性能會下降。
    長混響,比如T60=300msT_{60}=300ms,目標信號和干擾信號會相互泄露到對方的波束,空間濾波性能下降。原因同上。

麥克風的指向性(Directivity pattern of a microphone)

這裏說的是麥克風的指向性,後面將要說的麥克風陣列的指向性,需要區分開。

  • 麥克風的指向性是由麥克風的物理特性決定的,它描述了麥克風對特定來波方向信號增益相位移動。類似於時不變系統對信號的幅頻響應相頻響應
  • 來波方向應該是一個三維的,有水平角(elevation angle)和俯仰角(azimuth angle)。爲了簡化問題,先只考慮二維的場景。
  • 麥克風的指向性就可以用H(ω,θ)H(\omega, \theta) 表示,其中ω\omega表示頻率,θ\theta表示角度。如下圖所示,爲某一特定頻率ω0\omega_0的麥克風指向性H(ω0,θ)H(\omega_0, \theta)
    在這裏插入圖片描述

信號模型和定義

假設信號都來自遠場

  • 麥克風接收到的信號響應,由兩部分響應組成。一部分是麥克風的指向性,一部分是由麥克風位置決定的相位
    Ym(ω,θ)=Hm(ω,θ)exp(jωτm(θ))S(ω)Y_m(\omega, \theta) = H_m(\omega, \theta) * exp(-j \omega\tau_m(\theta)) * S(\omega)
    其中HmH_m是麥克風的指向性,τm\tau_m是與麥克風位置相關的延遲,S(ω)S(\omega)是原信號。
  • 麥克風陣列接收到的信號,需要將上述信號(m=1,2...Mm=1,2...M)用向量形式來表達。
    Y(ω,θ)=d(ω,θ)S(ω)Y(\omega,\theta) = d(\omega,\theta)*S(\omega)
    d(ω,θ)=[H1(ω,θ)exp(jωτ1(θ))...HM(ω,θ)exp(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))]
    其中dd是導向矢量(steering vector),是由麥克風指向性和麥克風位置決定的。
  • 如果所有的麥克風擁有同樣的指向性,H0(ω,θ)H_0(\omega, \theta),則導向矢量可以提取公因式。如果使用的是全指向性麥克風,則有H0(ω,θ)=1H_0(\omega, \theta)=1,導向矢量只由麥克風的位置決定。
    d(ω,θ)=H0(ω,θ)[1,exp(jωτ2(θ)),...,exp(jωτM(θ))]d(\omega,\theta) = H_0(\omega, \theta)[1, exp(-j\omega\tau_2(\theta)),...,exp(-j\omega\tau_M(\theta))]
  • 麥克風陣列的輸出信號,經過濾波相加(filter-and-sum)之後,得到輸出。
    Z(ω,θ)=FH(ω)Y(ω,θ)=FH(ω)d(ω,θ)S(ω)Z(\omega, \theta) = F^H(\omega) Y(\omega,\theta) = {F^H(\omega)d(\omega,\theta)}S(\omega)
    其中F(ω)F(\omega)是濾波器係數。
  • 陣列傳遞函數,英文可以是directivity pattern,也可以是transfer function,是等價的。
    H(ω,θ)=Z(ω,θ)/S(ω)=FH(ω)d(ω,θ)H(\omega, \theta) = Z(\omega, \theta)/S(\omega) = F^H(\omega)d(\omega,\theta) (這裏的共軛還沒能理解是怎麼推導的)

評價指標

麥克風陣列的性能主要用白噪聲增益指向性來評價。前者用來評價陣列在白噪聲場景下的抑制能力,後者用來評價陣列在擴散場噪聲下的陣列增益。其本質都是陣列增益,可以理解爲輸出信噪比除以輸入信噪比,也可以表示爲信號的傳遞函數2||^2除以噪聲的傳遞函數2||^2。在表示噪聲的輸出函數之前,先引入噪聲的相關矩陣和相干矩陣的概念,即noise correlation matrix 和 noise coherence matrix。

  • 噪聲相關矩陣 noise correlation matrix

  • 噪聲相干矩陣 noise coherence matrix
    白噪聲的相干矩陣爲單位陣,即Γnoisewhite(ω)=I(ω)\Gamma^{white}_{noise}(\omega) = I(\omega)
    擴散噪聲的相干矩陣可以用以下公式來表示Γnoisediffuse(ω)=sinc(ωfsd/c)\Gamma^{diffuse}_{noise}(\omega) = sinc(\omega f_s d/c)

  • 陣列增益函數 array gain
    G(ω,θ)=SNRoutSNRin=FH(ω)d(ω,θ)2FH(ω)Γnoise(ω)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)}

  • 白噪聲增益 white noise gain
    因爲白噪聲的自相關矩陣是一個單位陣,即Γnoisewhite(ω)=I(ω)\Gamma^{white}_{noise}(\omega) = I(\omega)
    WNG(ω,θ)=FH(ω)d(ω,θ)2FH(ω)F(ω)WNG(\omega,\theta)=\frac{|F^H(\omega)d(\omega,\theta)|^2}{F^H(\omega) F(\omega)}

  • 指向性 array directivity index
    DI(ω,θ)=FH(ω)d(ω,θ)2FH(ω)Γnoisediffuse(ω)F(ω)DI(\omega,\theta)=\frac{|F^H(\omega)d(\omega,\theta)|^2}{F^H(\omega)\Gamma^{diffuse}_{noise}(\omega) F(\omega)}

最大化白噪聲增益

最大化白噪聲增益,即求出一組F(ω)F(\omega)參數,使得白噪聲增益最大。
F(ω)=arg{maxWNG(ω,θ)}=arg{maxFH(ω)d(ω,θ)2FH(ω)F(ω)}F(\omega) = arg\{maxWNG(\omega, \theta)\} = arg\{max\frac{|F^H(\omega)d(\omega,\theta)|^2}{F^H(\omega) F(\omega)}\}
對於上式,有一個限制條件,分子是1。即對期望方向的信號增益是0dB。這樣最大化問題就轉變爲最小化噪聲輸出功率的問題。
F(ω)=arg{minFH(ω)F(ω)},s.t.FH(ω)d(ω,ϕ)=1F(\omega) = arg\{min{F^H(\omega) F(\omega)}\}, s.t. |F^H(\omega)d(\omega,\phi)|=1
得到最優解爲
F(ω)=d(ω,ϕ)d(ω,ϕ)2F(\omega) = \frac{d(\omega,\phi) }{|d(\omega,\phi)|^2}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章