波束形成算法综述

1,124 阅读13分钟

波束形成算法综述

波束形成(Beamforming)是一种利用传感器阵列(如麦克风阵列)来控制信号接收或发射方向的技术。在语音信号处理领域,波束形成常用于增强目标方向上的语音信号,同时抑制来自其他方向的噪声。波束形成算法可以分为波束形成器和自适应波束形成器两大类。

理论基础

image.png

阵列信号处理是一门利用多个传感器(如天线或麦克风)收集信号,然后通过协同处理这些信号以实现特定功能(如方向估计、波束形成和干扰抑制)的技术。以下是阵列信号处理的一些基础知识。

  • 阵列结构

阵列结构是指天线或传感器在空间上的排列方式。不同的阵列结构具有不同的性能和应用场景。

线性阵列是指天线元件沿一条直线排列,常用于简单的DOA估计和波束形成。

平面阵列是指天线元件排列在一个平面上,通常采用矩形或圆形排列。

环形阵列是指天线元件排列在一个圆周上。适用于360度的DOA估计。
  • 阵列几何

阵列几何是指天线元件在空间中的相对位置,它对阵列的性能有着重要影响。

阵元间距是指相邻天线元件之间的距离。常用的阵元间距选择是半波长:d =  λ / 2 其中 λ 是工作波长。选择半波长间距有助于避免空间模糊(aliasing),但过大的间距会导致阵列方向图的旁瓣增加。

阵列长度是指阵列中最外部两个天线元件之间的距离。阵列长度越长,阵列的空间分辨率越高,但实现成本和复杂度也越高。

DOA是指信号从目标到达天线阵列的方向。在二维空间中,DOA可以用俯仰角(elevation angle)和方位角(azimuth angle)来表示。

PART1:麦克风阵列-线性麦克风阵列

线性麦克风阵列是最常见的一种阵列形式,它由一系列等间距排列的麦克风组成,排列成一条直线。

假设阵列由MM个麦克风组成,麦克风之间的间距为 dd ,阵列长度为 (M1)d(M−1)d

信号模型

假设有一个来自方向 θ\theta 的平面波入射到阵列上,入射信号为 s(t)s(t)。波在第 mm个麦克风的时间延迟为: τm=mdsin(θ)c\tau_m = \frac{md\sin(\theta)}{c},其中,cc是声速。

mm个麦克风接收到的信号为: xm(t)=s(tτm)x_m(t) = s(t - \tau_m)

在频域上,第mm个麦克风的接收信号为: Xm(f)=S(f)ej2πfτmX_m(f) = S(f) e^{-j2\pi f \tau_m}

其阵列导向矢量表示为: d(θ)=[1,ej2πfτ1,,ej2πfτM1]T\mathbf{d}(\theta) = \left[ 1, e^{-j2\pi f \tau_1}, \ldots, e^{-j2\pi f \tau_{M-1}} \right]^T

其中τm=mdsin(θ)c\tau_m = \frac{md\sin(\theta)}{c}

PART2:麦克风阵列-圆形麦克风阵列

圆形麦克风阵列是将麦克风均匀分布在一个圆周上,常用于全向信号接收。假设阵列由 MM 个麦克风组成,麦克风均匀分布在半径为 RR 的圆周上。第 mm 个麦克风的位置为: (Rcosϕm,Rsinϕm)\left( R\cos\phi_m, R\sin\phi_m \right)

其中ϕm=2πmM\phi_m=\frac{2\pi m}{M}, m=0,1,...,M1m=0,1,...,M-1

信号模型

假设有一个来自方向 (θ,ϕ)(\theta, \phi)的平面波入射到阵列上,入射信号为 s(t)s(t)。第MM 个麦克风的时间延迟为:

τm=Rcos(ϕϕm)c\tau_m = \frac{R\cos(\phi - \phi_m)}{c}

mm 个麦克风接收到的信号为: xm(t)=s(tτm)x_m(t) = s(t - \tau_m)

在频域上,第mm个麦克风的接收信号为: Xm(f)=S(f)ej2πfτmX_m(f) = S(f) e^{-j2\pi f \tau_m}

阵列导向向量表示为: d(θ,ϕ)=[1,ej2πfτ1,,ej2πfτM1]T\mathbf{d}(\theta, \phi) = \left[ 1, e^{-j2\pi f \tau_1}, \ldots, e^{-j2\pi f \tau_{M-1}} \right]^T

其中τm=Rcos(ϕϕm)c\tau_m = \frac{R\cos(\phi - \phi_m)}{c}

PART3:麦克风阵列-方形麦克风阵列

方形麦克风阵列是将麦克风排列成一个正方形,常用于二维平面上的信号接收。假设阵列由 M×MM \times M 个麦克风组成,麦克风之间的间距为 dd,阵列边长为 (M1)d(M-1)d

信号模型

假设有一个来自方向 (θ,ϕ)(\theta, \phi) 的平面波入射到阵列上,入射信号为 s(t)s(t)。第 (i,j)(i, j) 个麦克风的位置为:(id,jd)\left( i \cdot d, j \cdot d \right),其中i,j=0,1,...,M1i,j=0,1,...,M-1

(i,j)(i, j) 个麦克风的时间延迟为: τij=(idsin(θ)cos(ϕ)+jdsin(θ)sin(ϕ))c\tau_{ij} = \frac{ \left( i \cdot d \sin(\theta) \cos(\phi) + j \cdot d \sin(\theta) \sin(\phi) \right)}{c}

(i,j)(i, j) 个麦克风接收到的信号为: xij(t)=s(tτij)x_{ij}(t) = s(t - \tau_{ij})

在频域上,第(i,j)(i, j) 个麦克风的接收信号为: Xij(f)=S(f)ej2πfτijX_{ij}(f) = S(f) e^{-j2\pi f \tau_{ij}}

阵列导向向量表示为: d(θ,ϕ)=[1,ej2πfτ00,,ej2πfτ(M1)(M1)]T\mathbf{d}(\theta, \phi) = \left[ 1, e^{-j2\pi f \tau_{00}}, \ldots, e^{-j2\pi f \tau_{(M-1)(M-1)}} \right]^T

其中 τij=(idsin(θ)cos(ϕ)+jdsin(θ)sin(ϕ))c\tau_{ij} = \frac{ \left( i \cdot d \sin(\theta) \cos(\phi) + j \cdot d \sin(\theta) \sin(\phi) \right)}{c}

算法理论

波束成型(Beamforming)又叫波束赋形空域滤波

作用:对多路麦克风信号进行合并处理,抑制非目标方向 的干扰信号,增强目标方向的声音信号。

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

image.png

问题:

  1. 通常的阵列处理多为窄带(300~3400Hz),没有经过调制过程,且高低频相差比较大,不同麦克风的相位延时与声源的频率关系密切,使得现有的传统窄带波束形成方法不再适用
  2. 低信噪比和混响影响的环境下难以准确估计波达方向
  3. 传统的后置滤波只考虑散射噪声或只从波束形成后的单通道输出中估计噪声不足

传统的波束形成技术主要分为固定波束形成和自适应波束形成技术。

  1. 固定波束形成:固定权重和相位设置的天线阵列技术。将主要接收波束指向特定方向,以增强来自该方向的语音信号,并尽量减小其他方向的干扰信号。这种固定的波束指向可能是根据预先定义的声源位置或期望的信号方向来确定的。固定波束形成适用于固定的语音源或需要特定传输方向的应用场景。
  2. 自适应波束形成:根据实时接收到的语音信号和噪声环境来调整天线阵列的权重和相位设置,以提供更好的语音质量和麦克风阵列性能。它的目标是最大程度地抑制干扰噪声并增强所需的语音信号。

根据获取加权矢量时采用的方法不同,可将波束形成方法分为三类:

  1. 和参考信号数据无关的波束形成方法,如常规波束形成方法,这种波束形成方法通过加权取平均得到固定的阵列输出响应,阵列输出不受信号数据变化的影响;
  2. 使用最佳权矢量的波束形成方法,这类方法依赖于对阵列接收数据统计特性的估计,如最大信噪比准则;
  3. 可根据接收数据变化自适应地改变权矢量的波束形成方法,如最小方差无畸变响应(MVDR)波束形成、LMS算法、递推最小二乘(RLS)算法、采样矩阵求逆(SMI)算法等。 自适应波束形成的目标是通过调整天线阵列的加权系数,使得从特定方向来的信号得以增强,同时抑制来自其他方向的干扰信号。

假设我们有一个包含 NN 个阵元的天线阵列,其输出信号可以表示为:

y(t)=wHx(t)y(t) = \mathbf{w}^H \mathbf{x}(t)

波束形成的目标是优化权重向量 w\mathbf{w},使得输出信号 y(t)y(t) 满足特定的性能准则。

  • 延迟求和算法(Delay-and-Sum Beamforming)

延迟求和算法是最简单的波束形成算法,它通过对各个阵元信号进行适当的延迟并求和来实现波束形成。假设信号到达方向为 θ\theta,各个阵元的延迟可以表示为 τn\tau_n,则延迟求和波束形成器的输出为:

y(t)=n=1Nxn(tτn)y(t) = \sum_{n=1}^{N} x_n(t - \tau_n)

在频域中,可以表示为:

y(f)=n=1NXn(f)ej2πfτny(f) = \sum_{n=1}^{N} X_n(f) e^{-j 2 \pi f \tau_n}

  • MVDR算法(Minimum Variance Distortionless Response)

MVDR 波束形成算法的目标是在保证主波束方向信号无失真通过的前提下,最小化输出功率。其优化问题可以表示为: minwwHRwsubject towHa(θ)=1\min_{\mathbf{w}} \mathbf{w}^H \mathbf{R} \mathbf{w} \quad \text{subject to} \quad \mathbf{w}^H \mathbf{a}(\theta) = 1

其中,RR是阵列接收信号的协方差矩阵。a(θ)a(\theta)是阵列方向向量。

利用拉格朗日乘子法可以求得权重向量:

wMVDR=R1a(θ)a(θ)HR1a(θ)\mathbf{w}_{\text{MVDR}} = \frac{\mathbf{R}^{-1} \mathbf{a}(\theta)}{\mathbf{a}(\theta)^H \mathbf{R}^{-1} \mathbf{a}(\theta)}

  • LCMV 准则(Linearly Constrained Minimum Variance)

LCMV 波束形成算法是 MVDR 的推广,它通过线性约束来控制波束形成器的响应。其优化问题可以表示为: minwwHRwsubject toCHw=f\min_{\mathbf{w}} \mathbf{w}^H \mathbf{R} \mathbf{w} \quad \text{subject to} \quad \mathbf{C}^H \mathbf{w} = \mathbf{f}

其中,CC是约束矩阵。ff是约束矢量。

解得权重向量为:

wLCMV=R1C(CHR1C)1f\mathbf{w}_{\text{LCMV}} = \mathbf{R}^{-1} \mathbf{C} (\mathbf{C}^H \mathbf{R}^{-1} \mathbf{C})^{-1} \mathbf{f}

  • GSC 算法(Generalized Sidelobe Canceller)

GSC 算法将波束形成问题分解为对准和干扰对消两个子问题。

其结构包括一个主波束形成器:对准波束方向的权重向量 wq\mathbf{w}_q

一个干扰对消器:用于消除旁瓣方向干扰的权重向量 g\mathbf{g} 和阻塞矩阵 B\mathbf{B}

在GSC中,权重向量 w\mathbf{w} 被分解为对准权重 wq\mathbf{w}_q 和干扰对消权重wb\mathbf{w}_b 的组合,GSC 的优化问题可以表示为:

w=wqBg\mathbf{w} = \mathbf{w}_q - \mathbf{B} \mathbf{g}

其中,wq\mathbf{w}_q是对准权重,通常选择为波束指向目标方向的常规波束形成器权重。

BB 是阻塞矩阵,用于阻塞目标方向信号,使其不会影响干扰对消过程。

g\mathbf{g} 是干扰对消权重,用于消除旁瓣方向的干扰信号。

阻塞矩阵的构建

阻塞矩阵 B\mathbf{B} 的构建需要满足以下条件:

  1. B\mathbf{B} 阻塞目标方向信号,即 BHa(θ0)=0\mathbf{B}^H \mathbf{a}(\theta_0) = \mathbf{0},其中 a(θ0)\mathbf{a}(\theta_0) 是目标方向的导向矢量。
  2. B\mathbf{B} 的列向量应正交于 a(θ0)\mathbf{a}(\theta_0)

通常可以通过Gram-Schmidt正交化方法从阵列方向向量的正交补空间中构建阻塞矩阵 B\mathbf{B}

干扰对消权重的求解

为了最小化干扰信号的影响,我们需要最小化干扰对消权重 g\mathbf{g} 的输出功率。最小化目标可以表示为:

mingE{(wqBg)Hx(t)2}\min_{\mathbf{g}} \mathbb{E}\{ | (\mathbf{w}_q - \mathbf{B} \mathbf{g})^H \mathbf{x}(t) |^2 \}

将其展开并去掉与 g\mathbf{g} 无关的常数项,得到优化目标:

minggHBHRBg2{gHBHRwq}\min_{\mathbf{g}} \mathbf{g}^H \mathbf{B}^H \mathbf{R} \mathbf{B} \mathbf{g} - 2 \Re \{ \mathbf{g}^H \mathbf{B}^H \mathbf{R} \mathbf{w}_q \}

其中 R=E{x(t)xH(t)}\mathbf{R} = \mathbb{E}\{ \mathbf{x}(t) \mathbf{x}^H(t) \} 是阵列接收信号的协方差矩阵。

对上述优化目标关于g\mathbf{g}求导,并令其为零,可以得到干扰对消权重 g\mathbf{g}的闭式解:

g=(BHRB)1BHRwq\mathbf{g} = (\mathbf{B}^H \mathbf{R} \mathbf{B})^{-1} \mathbf{B}^H \mathbf{R} \mathbf{w}_q

通过求得的干扰对消权重 g\mathbf{g},我们可以构建最终的波束形成权重 w\mathbf{w}

w=wqBg\mathbf{w} = \mathbf{w}_q - \mathbf{B} \mathbf{g}

GSC算法通过对准和干扰对消的结合,有效地实现了自适应波束形成。通过构建阻塞矩阵和求解干扰对消权重,GSC能够在抑制干扰的同时保证目标方向信号的无失真传输。

  • 最小均方误差准则(MMSE)

最小均方误差(MMSE)波束形成算法是一种自适应波束形成算法,其目标是通过最小化输出信号与期望信号之间的均方误差来优化权重向量。

MMSE波束形成的目标是找到一个权重向量w\mathbf{w},使得输出信号 wHx(t)\mathbf{w}^H \mathbf{x}(t)与期望信号 d(t)d(t) 之间的均方误差最小。定义误差信号为:

e(t)=d(t)wHx(t)e(t) = d(t) - \mathbf{w}^H \mathbf{x}(t)

MMSE准则要求最小化误差信号的均方值,即:

J(w)=E{e(t)2}J(\mathbf{w}) = \mathbb{E}\{|e(t)|^2\}

将误差信号展开并代入,可以得到:

J(w)=E{d(t)wHx(t)2}J(\mathbf{w}) = \mathbb{E}\{|d(t) - \mathbf{w}^H \mathbf{x}(t)|^2\}

为了求解最小化问题,我们需要将目标函数展开:

J(w)=E{d(t)d(t)}wHE{x(t)d(t)}E{d(t)xH(t)}w+wHE{x(t)xH(t)}wJ(\mathbf{w}) = \mathbb{E}\{d(t)d^*(t)\} - \mathbf{w}^H \mathbb{E}\{\mathbf{x}(t)d^*(t)\} - \mathbb{E}\{d(t)\mathbf{x}^H(t)\} \mathbf{w} + \mathbf{w}^H \mathbb{E}\{\mathbf{x}(t)\mathbf{x}^H(t)\} \mathbf{w}

rd=E{d(t)d(t)}r_d = \mathbb{E}\{d(t)d^*(t)\} 为期望信号的自相关,p=E{x(t)d(t)}\mathbf{p} = \mathbb{E}\{\mathbf{x}(t)d^*(t)\} 为期望信号和接收信号的互相关向量,R=E{x(t)xH(t)}\mathbf{R} = \mathbb{E}\{\mathbf{x}(t)\mathbf{x}^H(t)\} 为接收信号的协方差矩阵,则目标函数可以简化为:

J(w)=rd2{wHp}+wHRwJ(\mathbf{w}) = r_d - 2 \Re\{\mathbf{w}^H \mathbf{p}\} + \mathbf{w}^H \mathbf{R} \mathbf{w}

为了找到使目标函数最小化的权重向量 EwMMSEE\mathbf{w}_{\text{MMSE}},我们对目标函数关于w\mathbf{w} 求导,并令其等于零:

J(w)w=2p+2Rw=0\frac{\partial J(\mathbf{w})}{\partial \mathbf{w}} = -2 \mathbf{p} + 2 \mathbf{R} \mathbf{w} = 0

解得最优权重向量为:

wMMSE=R1p\mathbf{w}_{\text{MMSE}} = \mathbf{R}^{-1} \mathbf{p}

  • 最小二乘(LS)准则

最小二乘(Least Squares, LS)波束形成算法是一种通过最小化实际接收信号与理想信号之间的平方误差来优化权重向量的方法。

LS波束形成的目标是找到一个权重向量 w\mathbf{w},使得阵列接收信号x(t)\mathbf{x}(t) 的加权和尽可能接近理想信号d(t)\mathbf{d}(t)。定义误差信号为: e(t)=d(t)wHx(t)e(t) = \mathbf{d}(t) - \mathbf{w}^H \mathbf{x}(t)

LS准则要求最小化所有时间样本上的误差信号平方和,即:

J(w)=t=1Te(t)2J(\mathbf{w}) = \sum_{t=1}^{T} |e(t)|^2

将误差信号展开并代入,可以得到:

J(w)=t=1Td(t)wHx(t)2J(\mathbf{w}) = \sum_{t=1}^{T} |\mathbf{d}(t) - \mathbf{w}^H \mathbf{x}(t)|^2

为了求解最小化问题,我们将目标函数展开:

J(w)=t=1T[d(t)dH(t)dH(t)wHx(t)wHx(t)d(t)+wHx(t)xH(t)w]J(\mathbf{w}) = \sum_{t=1}^{T} [\mathbf{d}(t)\mathbf{d}^H(t) - \mathbf{d}^H(t)\mathbf{w}^H \mathbf{x}(t) - \mathbf{w}^H \mathbf{x}(t) \mathbf{d}(t) + \mathbf{w}^H \mathbf{x}(t)\mathbf{x}^H(t) \mathbf{w}]

将求和运算符分开并简化,得到:

J(w)=dHd2{wHXHd}+wHXHXwJ(\mathbf{w}) = \mathbf{d}^H \mathbf{d} - 2 \Re\{\mathbf{w}^H \mathbf{X}^H \mathbf{d}\} + \mathbf{w}^H \mathbf{X}^H \mathbf{X} \mathbf{w}

其中:

  • d\mathbf{d} 是期望信号的向量。
  • X\mathbf{X} 是包含所有接收信号样本的矩阵。

为了找到使目标函数最小化的权重向量 wLS\mathbf{w}_{\text{LS}},我们对目标函数关于 w\mathbf{w} 求导,并令其为零:

J(w)w=2XHd+2XHXw=0\frac{\partial J(\mathbf{w})}{\partial \mathbf{w}} = -2 \mathbf{X}^H \mathbf{d} + 2 \mathbf{X}^H \mathbf{X} \mathbf{w} = 0

解得最优权重向量为:

wLS=(XHX)1XHd\mathbf{w}_{\text{LS}} = (\mathbf{X}^H \mathbf{X})^{-1} \mathbf{X}^H \mathbf{d}

其他

DOA估计

波达方向(Direction of Arrival, DOA)是指信号从目标到达天线阵列的方向。DOA估计在阵列信号处理中起着至关重要的作用,通常用于确定信号源的位置。DOA估计的方法包括经典的阵列信号处理方法和现代高分辨率算法,如MUSIC、ESPRIT等。

假设一个平面波从方向 θ\theta 入射到由 NN 个阵元组成的线性阵列上,各阵元接收到的信号为:

x(t)=As(t)+n(t)\mathbf{x}(t) = \mathbf{A} \mathbf{s}(t) + \mathbf{n}(t)

其中:

  • x(t)=[x1(t),x2(t),,xN(t)]T\mathbf{x}(t) = [x_1(t), x_2(t), \ldots, x_N(t)]^T 是接收信号向量。
  • A=[a(θ1),a(θ2),,a(θM)]\mathbf{A} = [\mathbf{a}(\theta_1), \mathbf{a}(\theta_2), \ldots, \mathbf{a}(\theta_M)]是导向矢量矩阵,a(θi)\mathbf{a}(\theta_i) 是方向 θi\theta_i 的导向矢量。
  • s(t)=[s1(t),s2(t),,sM(t)]T\mathbf{s}(t) = [s_1(t), s_2(t), \ldots, s_M(t)]^T 是源信号向量。
  • n(t)=[n1(t),n2(t),,nN(t)]T\mathbf{n}(t) = [n_1(t), n_2(t), \ldots, n_N(t)]^T 是噪声向量。

导向矢量 a(θ)\mathbf{a}(\theta) 定义为: a(θ)=[1ej2πdλsin(θ)ej(N1)2πdλsin(θ)]\mathbf{a}(\theta) = \begin{bmatrix} 1 \\ e^{-j \frac{2\pi d}{\lambda} \sin(\theta)} \\ \vdots \\ e^{-j (N-1) \frac{2\pi d}{\lambda} \sin(\theta)} \end{bmatrix}

常用的DOA估计方法包括:

  • 波束形成法(Beamforming Method)

波束形成法通过扫描所有可能的DOA方向,寻找使输出功率最大的方向。其数学表达式为:

P(θ)=wHRwP(\theta) = \mathbf{w}^H \mathbf{R} \mathbf{w}

其中 R\mathbf{R} 是接收信号的协方差矩阵,w\mathbf{w} 是导向矢量。

  • 子空间方法 MUSIC(Multiple Signal Classification)

MUSIC是一种高分辨率DOA估计算法,它基于信号子空间和噪声子空间的正交性。MUSIC谱函数为:

PMUSIC(θ)=1aH(θ)EnEnHa(θ)P_{\text{MUSIC}}(\theta) = \frac{1}{\mathbf{a}^H(\theta) \mathbf{E}_n \mathbf{E}_n^H \mathbf{a}(\theta)}

其中 En\mathbf{E}_n 是噪声子空间的特征向量矩阵。

  • ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)

ESPRIT是一种基于子空间旋转不变性的DOA估计算法。它利用阵列的结构特性,通过特征值分解来估计DOA。

波束相关概念

  • 波束(Beam)

波束形成(Beamforming)是通过调整阵列中各个天线元件的权重,使得从特定方向来的信号得到增强,而其他方向的信号得到抑制。

  • 波束宽度(Beamwidth)

波束宽度是指波束主瓣的角宽度,通常定义为从波束主瓣峰值下降3 dB处的角度差。波束宽度越小,波束形成器的方向性越好。

  • 旁瓣(Sidelobe)

旁瓣是指阵列方向图中主瓣之外的局部极大值。旁瓣越高,意味着干扰信号可能被误认为目标信号。因此,抑制旁瓣是波束形成的重要目标之一。

导向矢量与方向图

  • 导向矢量(Steering Vector)

导向矢量 a(θ)\mathbf{a}(\theta) 描述了从特定方向 θ\theta 到达阵列的信号相位关系。前面已经给出了导向矢量的公式。

  • 方向图(Array Pattern)

方向图描述了阵列对来自不同方向的信号的响应,可以表示为:

P(θ)=wHa(θ)P(\theta) = \mathbf{w}^H \mathbf{a}(\theta)

其中:

  • w\mathbf{w} 是阵列权重向量。

相干和非相干信号在波束形成中的影响

  • 相干信号(Coherent Signals)

相干信号是指信号之间具有固定的相位关系。相干信号在波束形成中会引起问题,因为传统的波束形成算法(如最小方差无畸变响应,MVDR)假设噪声和干扰是非相干的。当存在相干干扰时,这些算法可能无法有效抑制干扰。

  • 非相干信号(Incoherent Signals)

非相干信号是指信号之间没有固定的相位关系。在波束形成中,非相干信号之间的相互影响较小,因此传统波束形成算法能够有效地处理非相干信号。