0%

自适应波束形成

自适应波束形成

波束形成的原理是调整相位阵列的基本单元参数,使得某些角度的信号获得相长干涉,而另一些角度的信号获得相消干涉。对各个麦克风信号加权求和、滤波,最终得到期望方向的语音信号,相当于形成一个“波束”。

传统波束形成是使用固定的权值来形成某个方向的波束,而自适应波束形成则是根据环境的变化,动态调整阵列麦克风的权重和相位,从而最大限度地抑制干扰噪声并增强目标信号。

基本数学模型

假设一个由 M 个阵元组成的任意构型的接收阵列,空间中存在一个来自方向 θ_0的期望信号,以及来自其他方向的干扰和环境噪声。则各麦克风接收到的信号(Mx1维)可表示为:

其中A为导向矢量,0为目标方向,其他为干扰声源,N为环境噪声。

所有波束形成器的输出都可表示为:

其中权重W则根据各波束形成算法而不同

MVDR最小方差无失真响应

Minimum Variance Distortionless Response,最小方差-无失真响应MVDR的核心思想就是:在确保当前目标方向的信号增益为1(无失真)的约束条件(可以直接理解为使用导向矢量进行约束)下,最小化阵列输出的总功率(即最小化方差),可以表示为:

拉格朗日乘子法求解最优问题

现在我们是要寻找功率函数在无失真约束下的最小值,则可以使用拉格朗日乘子法。

拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下极值的方法。

对于求f(x)在g(x)约束下的极值,可以得到如下结论,在最优点x0处,f(x)和g(x)的梯度向量的方向必相同或相反,即存在一个拉格朗日乘子,使得

将该等式与约束条件联立即可求得乘子λ,将λ再带回上式即可获得x_0

在MVDR中,我们的拉格朗日目标函数可表示为:

根据上述结论,对W^H求偏导,有:

将该结果带入约束条件,最终可获得λ的表达:

带入W表达式,最终可获得MVDR最佳权重向量

这里就可以看出,W与协方差矩阵直接相关(分子是向量决定方向,分母是标量决定尺度,不能约)。最终功率谱则可表示为:

py代码

1
2
3
4
5
6
7
8
9
10
for f_idx, freq in enumerate(tqdm(freqs, desc="MVDRing")):
X_f = data_valid[:,:, f_idx] #提取当前频率分量
R = (X_f.T @ X_f.conj()) #协方差矩阵
eps = 1e-3 * np.trace(R) #视情况选择大小,越大mvdr性能越强,鲁棒性越差
R = R + eps * np.eye(self.Nchan) #对角加载
R_inv = np.linalg.pinv(R) #求逆
a = np.exp(-1j * 2 * np.pi * freq * tdoa) #根据toda构建导向矢量
Ra = R_inv @ a
denominator = -np.sum(a.conj() * Ra, axis=0) # a^H R^-1 a
power_at_freq = 1.0 / np.real(denominator/ X_f.shape[0] + 1e-12) #功率谱

对同一段信号在相同频段进行mvdr和das功率扫描,可以看出MVDR在低频段上表现明显优于DAS,这是由于MVDR对干扰源的抑制能力极强,在低频段主瓣都很大的情况下也能区分声源位置

关于对角加载

MVDR中比较关键的一步就是需要求协方差矩阵R的逆,而从代码中我们可以看到,在求逆之前,我们进行了对角加载,那么对角加载有什么用呢?

核心痛点

在理想状态下,MVDR 依赖真实的协方差矩阵(数学期望)。但在实际工程中,我们只能通过有限个采样快照来估计。这就会导致一个问题:当快拍数较少(甚至小于阵元数),协方差矩阵会发生秩亏缺或条件数极高。此时对 求逆会带来巨大的数值计算误差,导致波束形成器的权重剧烈抖动,旁瓣自适应抬高。

数学原理

因此,在估计的协方差矩阵的对角线上,我们加入了一个底噪声功率:(I为单位矩阵)

加入这个底噪后,原本快拍数不足导致的最小特征值接近于0的问题(会使求逆输出极大值)会因为引入对角加载而被强行拉高特征值,令矩阵的条件数(最大特征值/最小特征值)大幅降低。矩阵求逆运算变得极度稳定,抑制了权重的随机剧烈抖动。

加载量的选择

对于添加的底噪值,其越小则代表自适应能力越强(太强的自适应会导致鲁棒性变差,对导向矢量准确性要求极高),当其接近于无限大时,此时MVDR则退化为DAS,因此需要选择一个合适的值

基于噪声基底

直接将加载量设定为系统背景噪声功率的 10到 100 倍

基于矩阵迹(trace)

根据对角线元素总和,即阵列所有阵元接收到的总功率,也就是将加载量也设置为一个根据采集信号动态调整的值

在我实际使用中,对角加载对mvdr结果影响很大,因此不能随便选

MVDR的优缺点

优点

  1. 高分辨率: 空间分辨能力显著优于传统的延迟求和波束形成。
  2. 强干扰抑制(抑制其他声源对目标声源干扰): 能够自动在强干扰源方向形成零陷,大幅提升强干扰环境下的输出信噪比。
  3. 无需先验干扰信息: 只需要知道目标方向,不需要知道干扰的数量和方向。

缺点与工程挑战

  1. 对模型误差极其敏感(鲁棒性差,对导向矢量要求高): 如果目标方向存在偏差(Pointing Error)或者阵元位置存在校准误差,MVDR会误将目标信号视为“干扰”并进行自适应压制,导致严重的自消散(Signal Canceling)现象。
  2. 相干源失效(快衰落): 当目标信号与干扰信号高度相关或相干(如同频多径反射)时,协方差矩阵 $R_{xx}$ 会趋于退化,导致算法失效。通常需要结合空间平滑(Spatial Smoothing)技术来解相干。
  3. **计算量大:** 每次计算都需要对 $M \times M$ 的矩阵进行求逆操作,在阵元数 $M$ 较大或需要实时更新时,计算复杂度较高($O(M^3)$)。
  4. **样本快照数限制:** 在实际应用中,$R_{xx}$ 是通过有限的样本快照估计得到的(即 $\hat{R}_{xx} = \frac{1}{N}\sum X X^H$)。如果快照数 $N$ 小于阵元数 $M$,$\hat{R}_{xx}$ 将不可逆。

LCMV线性约束最小方差

线性约束最小方差(Linearly Constrained Minimum Variance, LCMV)波束形成器,是MVDR的扩展形式,其可表示为:

其实就是把原来的单个约束替换为了一组线性约束,C为MxL维的约束矩阵,每一列代表一个约束条件;F为Lx1维的增益控制向量,代表对应约束想达到的复增益

同样使用拉格朗日乘子法可以得到LCMV的最佳权重表达:

当约束条件为单个导向矢量时,退化为MVDR,上式也完全等价于MVDR形式

常见约束矩阵设计

  • 多方向无失真约束,即对两个方向同时进行无失真约束:

  • 强迫干扰零陷约束,即对已知干扰源直接约束其增益为0:

  • 导数约束,约束导向矢量对角度的一阶导数(甚至二阶导数)为 0,来使主瓣平坦化。

    此时主瓣会增大,具备更强稳定性

GSC广义旁瓣相消器

GSC可以看作是LCMV的一种无约束等效实现,其示意图如下:

其可分为两部分,即上方的主路和下方的辅路,其中主路就是标准DAS波束形成,不再细说。

对于辅路,其任务是尽可能的还原信号中的噪声和干扰,并从DAS权重中减去,因此GSC的最终权重可表示为:

与MVDR不同,其自适应权重用于计算干扰和噪声,而不是直接用于增强方向信号

阻塞矩阵B

其功能是各通道中的期望信号完全滤除(阻塞),仅允许噪声和干扰信号通过。因此,其与约束矩阵(导向矢量)是一定正交的,因此,当我们已经有比较准确的导向矢量a时,将各信号对齐后即可直接令B让相邻阵元相减来消除同相的目标信号

这样得到的干扰和噪声是基于两两相邻阵元信号的,也可以通过均值计算:

这样每个阵元减去的都是所有阵元和的均值,理论上会更稳定一点点

自适应噪声相消器

信号通过阻塞矩阵后,只剩下干扰和噪声。自适应滤波器(如 LMS、RLS 或直接求逆算法)通过调整权重 w_a,使自适应支路的输出尽可能逼近静态支路中的干扰和噪声成分

理论上在经过阻塞矩阵B后,信号中已不包含期望信号成分,因此自适应权重w_a的优化完全不会影响期望信号。基于这个前提,自适应部分的优化目标也就等同于使经过B后的信号输出总功率(方差)最小:

也就是最小化噪声和干扰,直接对目标函数求导找零点,即可得到无约束最优解:

优缺点

主要优点就是把约束优化转化为了无约束的滤波问题,降低了计算复杂度,并且其物理和数学结构清晰,完全解耦;

缺点就是需要精准的导向矢量,否正阻塞矩阵B会产生泄露,自适应滤波器会将泄露的期望信号视作干扰,导致最后期望信号也受到抑制

为了防止自适应计算过强,也可以使用对角加载限制过大变化

与MVDR的关系

MVDR 与 GSC 等价,本质上是因为 GSC只是MVDR约束优化问题的一种结构化实现方式

首先,对于GSC的权重表达,将其共轭转置后都右乘导向矢量后,即可得到MVDR的约束;如果将w表达式带入MVDR的目标函数(无约束格式),也可以直接得到GSC最终w_a的解

那GSC存在的意义是什么呢,大概是因为较早时期矩阵求逆运算量大,所以GSC实时性更好吧

GEV广义特征向量波束形成器

更多出现在语音增强中,GEV波束形成的核心思想是通过最大化输出信号的信噪比(SNR)信号对干扰加噪声比(SINR)来推导最优导向矢量或空间滤波器系数,相比与MVDR要保证目标方向的无失真,GEV更加激进,选择直接最大化信噪比

对于带噪的信号,GEV直接将其视为:

所有噪声和干扰均被视为了一整个函数,GEV的目的就是让s和n最终信噪比尽可能大

构造目标与噪声协方差矩阵

根据上面分析,GEV的核心之一就是如何判断信号中哪些是目标信号,哪些是噪声。为了量化信号与噪声的空间分布,引入两个关键的空间相关矩阵:

其中,M为筛选协方差矩阵的mask,其形状与每个通道的stft结果x(f,t)相同,用于决定当前时-频点加权为噪声还是语音。也就是说,mask的计算是这一步的核心。

在GEV中,mask是一个[0,1]的概率,目前最主流的方法是通过神经网络进行预测,因此,我们在训练中需要同时拥有:

  • 干净语音s
  • 噪声n
  • 混合信号x

而mask的训练目标则为s和n的一些算法结果,例如:

然后将预测的/hat{m}与mask进行loss计算

GEV优化目标

在获得了两个协方差矩阵后,GEV的优化目标如下:

该目标可以直接转化为广义特征值问题:

则权重w为最大特征值所对应的特征向量

后置滤波

GEV算出的特征向量具有任意的缩放因子(Scaling),这会导致输出信号产生频率失真(Speech Distortion)。为了解决这一盲源分离中的固有问题,通常引入 BAN (Blind Analytic Normalization)进行增益归一化:

优缺点

首先,我们可以很明显的看出,GEV在计算上完全不依赖导向矢量,也就是说其对阵列的几何结构没有要求,依靠数据驱动,而MVDR的质量几乎是由导向矢量决定,因此GEV理论上鲁棒性更高,由于其优化原理,信噪比也会更高

但是其也需要大量数据进行拟合,并且如果不使用BAN,会出现较大失真