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

