Far Field Notes (1), Beampattern


這是 far field 筆記系列第一篇, 主要為自己學習用, 如有錯誤還請指正. 主要參考 Optimum Array Processing Ch2 以及 Microphone Array Signal Processing Ch3.

Beampattern 就是希望能得到如下圖 [ref Fig3.3] 的表示, 說明經過一個麥克風陣列的處理後, 每個角度所得到的增益情形. 因此可以看出主要保留哪些方向的訊號, 以及抑制哪些方向的訊號.


Geometry Settings

遠場一般假設 plan wave, 和 narrow band. 實際處理語音等 broadband 時我們會採取 fft 分頻. 我們定義如下的 geometry, 其中重要的兩個角度為 $\theta$ 和 $\phi$ (如圖紅圈). $\mathbf{a}$ 表示聲源的入射單位向量. 以下符號如果是粗體表示為向量或矩陣, 否則就是 scalar.


Signal Model

我們定義 $f(t)$ 為聲源訊號, $v_n(t)$ 為 nth mic 的噪聲源

Anechoic Model

我們以下的介紹都是基於 Anechoic Model, 並且先做如下的簡化

Reverberant Model

相當於將 attenuation factor $\alpha$ 改成 impulse response, 所以相乘改成 convolution.


Time Delay

為了方便推導麥克風之間的 time delay, 我們先將 Anechoic Model 做如下簡化

因此對於 plan wave 假設和聲源的入射單位向量 $a$ 來說, 我們很容易就得到 time delay 如下

Uniform Lineary Array (ULA)

Circular Array

以一個 6 mic 的 circular array 來說, 有如下的 time delay


Array Manifold Vector

由於 time delay $\tau$ 在 freqeuncy $\omega$ 只是乘上 $e^{-j\omega\tau}$, 因此我們可以得到一個 compact 的表示

重複一遍這裡得到的重要式子

$$\begin{align} \color{red}{ \mathbf{F}(\omega,\mathbf{p})=F(\omega)\mathbf{\upsilon}_k(\mathbf{k}) } \end{align}$$

我們稱 $\mathbf{\upsilon}_k(\mathbf{k})$ 為 Array Manifold Vector.

要注意的是, 其實也可以用 time delay $\tau$ 來表示, 這時我們這麼寫 (如上圖灰色的部分)
$$\mathbf{\upsilon}_\tau (\mathbf{\tau})= \left[ \begin{array}{clr} e^{-j\omega\tau_0} \\ e^{-j\omega\tau_1} \\ \vdots \\ e^{-j\omega\tau_{N-1}} \end{array} \right]$$
或甚至入射角度 $\theta$ 如果可以完全表達 $\tau$ 的話, 我們也能這麼寫 $\mathbf{\upsilon}_\theta(\mathbf{\theta})$.


Array Signal Processing

早期的 array processing (narrow band) 是對每個麥克風有各自的 weights, 然後再總合起來, 這種作法叫做 weight-and-sum. 而對於 broadband 訊號來說, 相當於拆頻乘很多 narrow band, 因此在每個頻帶上, 都有 N 個麥克風的 weights. 這在時域上等價於每個麥克風都有各自的 filters, 稱 filter-and-sum. 以下介紹 filter-and-sum 和頻域的架構.

Filter-and-Sum

在實作上通常採用 FIR filter, 因此架構如下:
符號有點不同, 這是因為圖是採用另一本書 Microphone Array Signal Processing

Frequency Domain

針對 filter-and-sum 做 frequency transform 得到如下:

實際架構圖如下:
一樣符號有點不同, 這是因為圖是採用另一本書 Microphone Array Signal Processing


Frequency-wavenumber Response Function

針對 frequency domain 的 array processing, 我們可以帶入先前推得的 (1) 得到如下:

所以 $\Upsilon(\omega,\mathbf{k})$ 物理意義就是針對 frequency $\omega$ 和 wavenumber $\mathbf{k}$ (控制了聲源入射角度 $\theta$ 等等的物理量) 的 response.


Beampattern

wavenumber $\mathbf{k}$ 比較抽象, 如果我們換成角度 $\theta$, $\phi$ 就會直觀很多, 而 beampattern 只是針對 $\Upsilon(\omega,\mathbf{k})$ 換成用角度而已.

所以 $B(\omega:\theta,\phi)$ 物理意義就是針對 frequency $\omega$ 和入射角度 $\theta$, $\phi$ 的 response.


Delay-and-sum Beampattern

Delay-and-sum 想法很簡單, 就是補償每個 mic 的 time delay 而已. 因此所需要的 filter $H(\omega)$ 就是 array manifold vector 的 conjugate 即可. 如下圖:

但這麼做有個缺點, 就是高頻時雖然針對聲源方向的 mainlobe 變窄了, 但同時 sidelobe 卻變多了. 也就是在高頻時, 某些方向的聲源消不掉. 如下圖:


Fixed Beampattern

為了修正上述 DS beamformer 的問題, 我們希望得到 response-invariant broadband beamformer. 希望能有下圖的結果:

中心思想很簡單, 針對某個頻率 $\omega$ 來求出相對應的 $H$ 使得 beampattern 會與我們 desired beampattern 有 least-sqaure 差異. 以下 $H(\omega)$ 會省略 $\omega$ 不寫



結論

到這裡我們討論了遠場的 signal model, 針對 anechoic model 我們最終導出了 beampattern. 做為例子我們使用簡單的 delay-and-sum (DS) beamformer 來看它的 beampattern 長什麼樣. 可以看到在高頻時很多方向還是無法壓抑, 因此使用 least-square 方法找出每個頻率需要的 spatial filter 來逼近我們需要的 beampattern.


Reference

  1. Optimum Array Processing: Part IV of Detection, Estimation, and Modulation Theory by Harry L. Van Trees
  2. Microphone Array Signal Processing by Jocab Benesty
  3. Direction of Arrival Estimation Using the Parameterized Spatial Correlation Matrix