概述
声源定位(SSL)里最基础、最常用的基线方法之一,就是 CBF(Conventional Beamforming),也叫 延时求和波束形成(Delay-and-Sum Beamforming)。它的核心思想很简单:假设一个方向是声源方向,把各通道按这个方向的理论时延对齐后相加;对齐得越好,叠加后的能量越大。扫描所有方向(或网格点)后,就能得到一张'空间能量图',峰值位置对应声源。
1. 为什么 CBF 有用:延时对齐 + 叠加增益
考虑一个由 M 个麦克风组成的阵列。一个声源发出的波到达不同麦克风会产生不同的传播时延。如果我们猜测声源来自某个方向 θ:
- 对于'猜对的方向',各麦克风的信号在该方向对应的时延补偿后会同相叠加,输出能量明显变大;
- 对于'猜错的方向',补偿不正确,叠加时相位/时序错乱,会相互抵消,输出能量较小。
于是我们可以构造一个方向函数 P(θ)(空间谱/波束图),取最大值方向作为定位结果。这就是 CBF 的核心逻辑:扫描 → 对齐 → 求和 → 算能量 → 找峰值。
2. 信号模型(时域)
最经典的时域模型可以表示为: $$x_m(t) = s\big(t - \tau_m(\theta)\big) + n_m(t)$$ 其中 $s$ 是声源信号,$n_m$ 是噪声。
3. 时延计算:阵列几何 + 声速
3.1 远场(平面波)
当声源离阵列足够远(相对阵列孔径而言),可近似为平面波。令第 m 个麦克风位置向量为 $\mathbf{r}_m$,声源方向单位向量为 $\mathbf{u}(\theta)$,声速为 $c$。则相对时延可写为: $$\tau_m(\theta) = \frac{\mathbf{r}_m \cdot \mathbf{u}(\theta)}{c}$$ 二维平面里常用参数化: $$\mathbf{u}(\theta) = \begin{bmatrix} \cos\theta \ \sin\theta \end{bmatrix}$$ 三维则用方位角/俯仰角构造 $\mathbf{u}$。
3.2 近场(球面波)
若声源距离与阵列孔径同量级,需要近场模型,用'距离差/声速'算时延,例如对空间点 $\mathbf{p}$: $$\tau_m(\mathbf{p}) = \frac{|\mathbf{p} - \mathbf{r}_m|}{c}$$ 这时扫描的是'空间点 $\mathbf{p}$'而不是方向 $\theta$。
4. CBF 核心公式(时域):Delay-and-Sum
对假设方向 θ,把各通道按 $\tau_m(\theta)$ 做延时补偿并相加: $$y(t,\theta) = \frac{1}{M} \sum_{m=1}^{M} x_m\big(t + \tau_m(\theta)\big)$$ 接着定义空间谱(能量): $$P(\theta) = \mathbb{E}\left{ |y(t,\theta)|^2 \right}$$ 离散实现常用平均能量: $$P(\theta) = \frac{1}{T} \sum_{t=1}^{T} |y(t,\theta)|^2$$ 最终定位就是找峰值: $$\hat{\theta} = \arg\max_{\theta} P(\theta)$$
5. 频域推导:导向向量 + 协方差矩阵
在工程实现里,CBF 很常在频域上做,因为延时在频域是相位项,能天然做窄带/多带融合,也更方便做稳健平均(协方差估计)。
5.1 导向向量(steering vector)
对频率 $f$ 和方向 $\theta$: $$\mathbf{a}(f,\theta) = \begin{bmatrix} e^{-j2\pi f \tau_1(\theta)} \ e^{-j2\pi f \tau_2(\theta)} \ \vdots \ e^{-j2\pi f \tau_M(\theta)} \end{bmatrix}$$ 把各通道频域观测写成向量: $$\mathbf{x}(f) = \begin{bmatrix} X_1(f) \ X_2(f) \ \vdots \ X_M(f) \end{bmatrix}$$
5.2 协方差矩阵
$$\mathbf{R}_{xx}(f) = \mathbb{E}\left{ \mathbf{x}(f)\mathbf{x}^H(f) \right}$$
5.3 CBF 空间谱(窄带)
$$P_{\mathrm{CBF}}(f,\theta) = \mathbf{a}^H(f,\theta), \mathbf{R}{xx}(f), \mathbf{a}(f,\theta)$$ 如果是宽带信号,可在多个频点上累加/平均: $$P{\mathrm{CBF}}(\theta) = \sum_{f \in \mathcal{F}} \mathbf{a}^H(f,\theta), \mathbf{R}_{xx}(f), \mathbf{a}(f,\theta)$$ $\mathcal{F}$ 可选在信噪比较好的频带范围内。

