MUSIC,全称 Multiple Signal Classification,的核心思想是:

利用阵列接收信号协方差矩阵的特征分解,将观测空间分解为信号子空间噪声子空间。真实声源方向的导向向量位于信号子空间内,因此与噪声子空间正交。通过搜索使导向向量与噪声子空间最正交的方向,即可得到声源方向估计。


1. 阵列信号处理的基本问题

假设有一个由 MMM 个传感器组成的阵列,例如 MMM 个麦克风。空间中有 KKK 个远场窄带信号源,它们从不同方向到达阵列。

目标是估计这 KKK 个信号源的到达方向:

Θ={θ1,θ2,…,θK} \Theta = \{\theta_1, \theta_2, \dots, \theta_K\} Θ={θ1,θ2,,θK}

对于二维平面阵列或三维空间阵列,方向通常写为方位角和俯仰角:

Θ={(θ1,ϕ1),(θ2,ϕ2),…,(θK,ϕK)} \Theta = \{(\theta_1, \phi_1), (\theta_2, \phi_2), \dots, (\theta_K, \phi_K)\} Θ={(θ1,ϕ1),(θ2,ϕ2),,(θK,ϕK)}

其中:

  • θ\thetaθ:俯仰角或极角;
  • ϕ\phiϕ:方位角;
  • KKK:声源数量;
  • MMM:阵列传感器数量。

MUSIC 算法通常要求:

K<M K < M K<M

因为至少需要保留一个维度作为噪声子空间。


2. 远场窄带阵列信号模型

2.1 单个声源的阵列响应

假设一个窄带平面波从方向 θ\thetaθ 到达阵列。对于第 mmm 个传感器,接收到的信号可以看作参考信号的延迟版本:

xm(t)=s(t−τm) x_m(t) = s(t - \tau_m) xm(t)=s(tτm)

其中:

  • xm(t)x_m(t)xm(t):第 mmm 个传感器接收到的信号;
  • s(t)s(t)s(t):源信号;
  • τm\tau_mτm:声波到达第 mmm 个传感器相对于参考点的时间延迟。

如果信号是窄带信号,可以写成复指数形式:

s(t)=α(t)ej2πf0t s(t) = \alpha(t)e^{j2\pi f_0 t} s(t)=α(t)ej2πf0t

其中 α(t)\alpha(t)α(t) 是缓慢变化的复包络,f0f_0f0 是中心频率。

延迟后的信号为:

s(t−τm)=α(t−τm)ej2πf0(t−τm) s(t - \tau_m) = \alpha(t - \tau_m)e^{j2\pi f_0(t - \tau_m)} s(tτm)=α(tτm)ej2πf0(tτm)

窄带假设认为包络变化较慢,因此:

α(t−τm)≈α(t) \alpha(t - \tau_m) \approx \alpha(t) α(tτm)α(t)

于是:

s(t−τm)≈α(t)ej2πf0te−j2πf0τm s(t - \tau_m) \approx \alpha(t)e^{j2\pi f_0 t}e^{-j2\pi f_0 \tau_m} s(tτm)α(t)ej2πf0tej2πf0τm

也就是:

xm(t)≈s(t)e−j2πf0τm x_m(t) \approx s(t)e^{-j2\pi f_0 \tau_m} xm(t)s(t)ej2πf0τm

因此,延迟在窄带模型中等价为一个相位差。


2.2 导向向量

把所有 MMM 个传感器的相位响应写成向量,得到方向 θ\thetaθ 对应的导向向量

a(θ)=[e−j2πf0τ1(θ)e−j2πf0τ2(θ)⋮e−j2πf0τM(θ)]∈CM×1 \mathbf{a}(\theta)= \begin{bmatrix} e^{-j2\pi f_0 \tau_1(\theta)} \\ e^{-j2\pi f_0 \tau_2(\theta)} \\ \vdots \\ e^{-j2\pi f_0 \tau_M(\theta)} \end{bmatrix} \in \mathbb{C}^{M \times 1} a(θ)= ej2πf0τ1(θ)ej2πf0τ2(θ)ej2πf0τM(θ) CM×1

导向向量描述的是:

如果信号来自方向 θ\thetaθ,那么它在阵列各个传感器上应该呈现怎样的相位关系。

对于二维或三维 DOA,导向向量可写成:

a(θ,ϕ)=[e−j2πf0τ1(θ,ϕ)e−j2πf0τ2(θ,ϕ)⋮e−j2πf0τM(θ,ϕ)] \mathbf{a}(\theta, \phi)= \begin{bmatrix} e^{-j2\pi f_0 \tau_1(\theta,\phi)} \\ e^{-j2\pi f_0 \tau_2(\theta,\phi)} \\ \vdots \\ e^{-j2\pi f_0 \tau_M(\theta,\phi)} \end{bmatrix} a(θ,ϕ)= ej2πf0τ1(θ,ϕ)ej2πf0τ2(θ,ϕ)ej2πf0τM(θ,ϕ)


3. 阵列几何与时延模型

3.1 传感器位置

设第 mmm 个传感器的位置为:

pm=[xmymzm] \mathbf{p}_m = \begin{bmatrix} x_m \\ y_m \\ z_m \end{bmatrix} pm= xmymzm

所有传感器位置构成矩阵:

P=[p1Tp2T⋮pMT]∈RM×3 \mathbf{P}= \begin{bmatrix} \mathbf{p}_1^T \\ \mathbf{p}_2^T \\ \vdots \\ \mathbf{p}_M^T \end{bmatrix} \in \mathbb{R}^{M \times 3} P= p1Tp2TpMT RM×3


3.2 远场平面波方向向量

对于三维空间中的远场平面波,方向可以用单位向量表示:

u(θ,ϕ)=[sin⁡θcos⁡ϕsin⁡θsin⁡ϕcos⁡θ] \mathbf{u}(\theta,\phi)= \begin{bmatrix} \sin\theta\cos\phi \\ \sin\theta\sin\phi \\ \cos\theta \end{bmatrix} u(θ,ϕ)= sinθcosϕsinθsinϕcosθ

其中:

∥u(θ,ϕ)∥2=1 \|\mathbf{u}(\theta,\phi)\|_2 = 1 u(θ,ϕ)2=1


3.3 远场时延

若声速为 ccc,则第 mmm 个传感器相对于阵列参考点的时延可以写成:

τm(θ,ϕ)=−pmTu(θ,ϕ)c \tau_m(\theta,\phi)= -\frac{\mathbf{p}_m^T\mathbf{u}(\theta,\phi)}{c} τm(θ,ϕ)=cpmTu(θ,ϕ)

展开为:

τm(θ,ϕ)=−xmsin⁡θcos⁡ϕ+ymsin⁡θsin⁡ϕ+zmcos⁡θc \tau_m(\theta,\phi)= -\frac{x_m\sin\theta\cos\phi +y_m\sin\theta\sin\phi +z_m\cos\theta}{c} τm(θ,ϕ)=cxmsinθcosϕ+ymsinθsinϕ+zmcosθ

如果选择第一个传感器作为参考点,则相对时延为:

τm(θ,ϕ)=−(pm−p1)Tu(θ,ϕ)c \tau_m(\theta,\phi)= -\frac{(\mathbf{p}_m - \mathbf{p}_1)^T\mathbf{u}(\theta,\phi)}{c} τm(θ,ϕ)=c(pmp1)Tu(θ,ϕ)


4. 多声源阵列信号模型

假设有 KKK 个远场窄带信号源,它们的方向分别为:

θ1,θ2,…,θK \theta_1, \theta_2, \dots, \theta_K θ1,θ2,,θK

对于第 kkk 个声源,其导向向量为:

a(θk) \mathbf{a}(\theta_k) a(θk)

把所有导向向量拼成阵列流形矩阵:

A=[a(θ1)a(θ2)⋯a(θK)]∈CM×K \mathbf{A}= \begin{bmatrix} \mathbf{a}(\theta_1) & \mathbf{a}(\theta_2) & \cdots & \mathbf{a}(\theta_K) \end{bmatrix} \in \mathbb{C}^{M \times K} A=[a(θ1)a(θ2)a(θK)]CM×K

声源信号向量为:

s(t)=[s1(t)s2(t)⋮sK(t)]∈CK×1 \mathbf{s}(t)= \begin{bmatrix} s_1(t) \\ s_2(t) \\ \vdots \\ s_K(t) \end{bmatrix} \in \mathbb{C}^{K \times 1} s(t)= s1(t)s2(t)sK(t) CK×1

噪声向量为:

n(t)=[n1(t)n2(t)⋮nM(t)]∈CM×1 \mathbf{n}(t)= \begin{bmatrix} n_1(t) \\ n_2(t) \\ \vdots \\ n_M(t) \end{bmatrix} \in \mathbb{C}^{M \times 1} n(t)= n1(t)n2(t)nM(t) CM×1

阵列接收信号向量为:

x(t)=[x1(t)x2(t)⋮xM(t)]∈CM×1 \mathbf{x}(t)= \begin{bmatrix} x_1(t) \\ x_2(t) \\ \vdots \\ x_M(t) \end{bmatrix} \in \mathbb{C}^{M \times 1} x(t)= x1(t)x2(t)xM(t) CM×1

于是多声源阵列信号模型为:

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

这就是 MUSIC 算法的基本数据模型。


5. 协方差矩阵推导

MUSIC 不直接对单个时刻的 x(t)\mathbf{x}(t)x(t) 做处理,而是利用其二阶统计量,即协方差矩阵:

Rxx=E[x(t)xH(t)] \mathbf{R}_{xx}= \mathbb{E}\left[\mathbf{x}(t)\mathbf{x}^H(t)\right] Rxx=E[x(t)xH(t)]

其中 HHH 表示共轭转置。

代入阵列模型:

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

得到:

Rxx=E[(As(t)+n(t))(As(t)+n(t))H] \mathbf{R}_{xx}= \mathbb{E}\left[ (\mathbf{A}\mathbf{s}(t)+\mathbf{n}(t)) (\mathbf{A}\mathbf{s}(t)+\mathbf{n}(t))^H \right] Rxx=E[(As(t)+n(t))(As(t)+n(t))H]

展开:

Rxx=E[As(t)sH(t)AH]+E[As(t)nH(t)]+E[n(t)sH(t)AH]+E[n(t)nH(t)] \mathbf{R}_{xx}= \mathbb{E}\left[ \mathbf{A}\mathbf{s}(t)\mathbf{s}^H(t)\mathbf{A}^H \right] + \mathbb{E}\left[ \mathbf{A}\mathbf{s}(t)\mathbf{n}^H(t) \right] + \mathbb{E}\left[ \mathbf{n}(t)\mathbf{s}^H(t)\mathbf{A}^H \right] + \mathbb{E}\left[ \mathbf{n}(t)\mathbf{n}^H(t) \right] Rxx=E[As(t)sH(t)AH]+E[As(t)nH(t)]+E[n(t)sH(t)AH]+E[n(t)nH(t)]

假设信号与噪声互不相关:

E[s(t)nH(t)]=0 \mathbb{E}[\mathbf{s}(t)\mathbf{n}^H(t)] = \mathbf{0} E[s(t)nH(t)]=0

E[n(t)sH(t)]=0 \mathbb{E}[\mathbf{n}(t)\mathbf{s}^H(t)] = \mathbf{0} E[n(t)sH(t)]=0

于是交叉项消失:

Rxx=AE[s(t)sH(t)]AH+E[n(t)nH(t)] \mathbf{R}_{xx}= \mathbf{A}\mathbb{E}[\mathbf{s}(t)\mathbf{s}^H(t)]\mathbf{A}^H + \mathbb{E}[\mathbf{n}(t)\mathbf{n}^H(t)] Rxx=AE[s(t)sH(t)]AH+E[n(t)nH(t)]

定义声源协方差矩阵:

Rss=E[s(t)sH(t)] \mathbf{R}_{ss}= \mathbb{E}[\mathbf{s}(t)\mathbf{s}^H(t)] Rss=E[s(t)sH(t)]

定义噪声协方差矩阵:

Rnn=E[n(t)nH(t)] \mathbf{R}_{nn}= \mathbb{E}[\mathbf{n}(t)\mathbf{n}^H(t)] Rnn=E[n(t)nH(t)]

因此:

Rxx=ARssAH+Rnn \boxed{ \mathbf{R}_{xx}= \mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H + \mathbf{R}_{nn} } Rxx=ARssAH+Rnn

若噪声为空间白噪声,则:

Rnn=σ2I \mathbf{R}_{nn}=\sigma^2\mathbf{I} Rnn=σ2I

所以:

Rxx=ARssAH+σ2I \boxed{ \mathbf{R}_{xx}= \mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H + \sigma^2\mathbf{I} } Rxx=ARssAH+σ2I

这是 MUSIC 算法最核心的协方差矩阵模型。


6. 有限快拍下的协方差估计

实际应用中,无法直接计算数学期望 E[⋅]\mathbb{E}[\cdot]E[],只能用有限个观测样本估计。

假设有 LLL 个快拍:

x(1),x(2),…,x(L) \mathbf{x}(1), \mathbf{x}(2), \dots, \mathbf{x}(L) x(1),x(2),,x(L)

则样本协方差矩阵为:

R^xx=1L∑ℓ=1Lx(ℓ)xH(ℓ) \boxed{ \hat{\mathbf{R}}_{xx}= \frac{1}{L} \sum_{\ell=1}^{L} \mathbf{x}(\ell)\mathbf{x}^H(\ell) } R^xx=L1=1Lx()xH()

也可以把所有快拍组成矩阵:

X=[x(1)x(2)⋯x(L)]∈CM×L \mathbf{X}= \begin{bmatrix} \mathbf{x}(1) & \mathbf{x}(2) & \cdots & \mathbf{x}(L) \end{bmatrix} \in \mathbb{C}^{M \times L} X=[x(1)x(2)x(L)]CM×L

则:

R^xx=1LXXH \boxed{ \hat{\mathbf{R}}_{xx}= \frac{1}{L}\mathbf{X}\mathbf{X}^H } R^xx=L1XXH


7. 特征值分解与子空间划分

由于 Rxx\mathbf{R}_{xx}Rxx 是 Hermitian 矩阵,因此可以进行特征值分解:

Rxx=UΛUH \mathbf{R}_{xx}= \mathbf{U}\mathbf{\Lambda}\mathbf{U}^H Rxx=UH

其中:

U=[u1u2⋯uM] \mathbf{U}= \begin{bmatrix} \mathbf{u}_1 & \mathbf{u}_2 & \cdots & \mathbf{u}_M \end{bmatrix} U=[u1u2uM]

是特征向量矩阵,

Λ=diag⁡(λ1,λ2,…,λM) \mathbf{\Lambda}= \operatorname{diag}(\lambda_1,\lambda_2,\dots,\lambda_M) Λ=diag(λ1,λ2,,λM)

是特征值矩阵。

假设特征值按从大到小排序:

λ1≥λ2≥⋯≥λM \lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_M λ1λ2λM

在理想情况下,若存在 KKK 个信号源,则:

  • KKK 个较大的特征值对应信号子空间;
  • M−KM-KMK 个较小的特征值对应噪声子空间。

因此可以写成:

U=[UsUn] \mathbf{U}= \begin{bmatrix} \mathbf{U}_s & \mathbf{U}_n \end{bmatrix} U=[UsUn]

其中:

Us=[u1u2⋯uK]∈CM×K \mathbf{U}_s= \begin{bmatrix} \mathbf{u}_1 & \mathbf{u}_2 & \cdots & \mathbf{u}_K \end{bmatrix} \in \mathbb{C}^{M \times K} Us=[u1u2uK]CM×K

称为信号子空间

Un=[uK+1uK+2⋯uM]∈CM×(M−K) \mathbf{U}_n= \begin{bmatrix} \mathbf{u}_{K+1} & \mathbf{u}_{K+2} & \cdots & \mathbf{u}_M \end{bmatrix} \in \mathbb{C}^{M \times (M-K)} Un=[uK+1uK+2uM]CM×(MK)

称为噪声子空间


8. 为什么导向向量与噪声子空间正交?

这是 MUSIC 算法的核心。

由协方差模型:

Rxx=ARssAH+σ2I \mathbf{R}_{xx}= \mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H + \sigma^2\mathbf{I} Rxx=ARssAH+σ2I

其中:

  • ARssAH\mathbf{A}\mathbf{R}_{ss}\mathbf{A}^HARssAH 是信号协方差项;
  • σ2I\sigma^2\mathbf{I}σ2I 是空间白噪声协方差项。

令:

S=ARssAH \mathbf{S}= \mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H S=ARssAH

如果 A\mathbf{A}A 满列秩(不同方向来的声源,在阵列上产生的空间相位模式不能互相“伪装”),且 Rss\mathbf{R}_{ss}Rss 非奇异,则:

rank⁡(S)=K \operatorname{rank}(\mathbf{S})=K rank(S)=K

因为 S\mathbf{S}S 是一个 M×MM\times MM×M 矩阵,而 K<MK<MK<M,所以它只占据 KKK 维信号子空间,还剩下 M−KM-KMK 维空间不包含信号成分。这 M−KM-KMK 维空间就是信号子空间的正交补,也就是噪声子空间。

因此,对于噪声子空间中的任意向量 un\mathbf{u}_nun,有:

AHun=0 \mathbf{A}^H\mathbf{u}_n=\mathbf{0} AHun=0

于是:

ARssAHun=ARss(AHun)=ARss0=0 \mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H\mathbf{u}_n= \mathbf{A}\mathbf{R}_{ss}(\mathbf{A}^H\mathbf{u}_n)= \mathbf{A}\mathbf{R}_{ss}\mathbf{0}= \mathbf{0} ARssAHun=ARss(AHun)=ARss0=0

这说明:在 un\mathbf{u}_nun 这个方向上,信号协方差项不起作用,只剩下白噪声项。

因此:

Rxxun=(ARssAH+σ2I)un \mathbf{R}_{xx}\mathbf{u}_n= (\mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H + \sigma^2\mathbf{I})\mathbf{u}_n Rxxun=(ARssAH+σ2I)un

代入 ARssAHun=0\mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H\mathbf{u}_n=\mathbf{0}ARssAHun=0

Rxxun=0+σ2un=σ2un \mathbf{R}_{xx}\mathbf{u}_n= \mathbf{0}+\sigma^2\mathbf{u}_n= \sigma^2\mathbf{u}_n Rxxun=0+σ2un=σ2un

这正好满足特征值定义:

Rxxun=λnun \mathbf{R}_{xx}\mathbf{u}_n= \lambda_n\mathbf{u}_n Rxxun=λnun

因此,噪声子空间中的特征向量对应的特征值为:

λn=σ2 \boxed{ \lambda_n=\sigma^2 } λn=σ2

注意,这里的结论依赖于空间白噪声假设:

Rnn=σ2I \mathbf{R}_{nn}=\sigma^2\mathbf{I} Rnn=σ2I

如果噪声不是空间白噪声,而是有色噪声,那么噪声子空间中的特征值不一定全部等于 σ2\sigma^2σ2,MUSIC 的标准正交性推导也需要相应修正,例如先进行噪声白化处理。

由于噪声子空间中的任意向量 un\mathbf{u}_nun 都满足:

AHun=0 \mathbf{A}^H\mathbf{u}_n = \mathbf{0} AHun=0

A\mathbf{A}A 的列正是各真实声源方向的导向向量:

A=[a(θ1)a(θ2)⋯a(θK)] \mathbf{A}= \begin{bmatrix} \mathbf{a}(\theta_1) & \mathbf{a}(\theta_2) & \cdots & \mathbf{a}(\theta_K) \end{bmatrix} A=[a(θ1)a(θ2)a(θK)]

因此,对于任意真实声源方向 θk\theta_kθk,有:

aH(θk)un=0 \boxed{ \mathbf{a}^H(\theta_k)\mathbf{u}_n = 0 } aH(θk)un=0

把所有噪声特征向量合起来:

UnHa(θk)=0 \boxed{ \mathbf{U}_n^H\mathbf{a}(\theta_k)=\mathbf{0} } UnHa(θk)=0

这就是 MUSIC 的正交性条件。


9. MUSIC 空间谱推导

既然真实方向的导向向量与噪声子空间正交,那么可以通过检测以下量的大小来判断候选方向是否为真实方向:

∥UnHa(θ)∥22 \left\|\mathbf{U}_n^H\mathbf{a}(\theta)\right\|_2^2 UnHa(θ) 22

如果 θ\thetaθ 是真实方向,则:

∥UnHa(θ)∥22≈0 \left\|\mathbf{U}_n^H\mathbf{a}(\theta)\right\|_2^2 \approx 0 UnHa(θ) 220

如果 θ\thetaθ 不是真实方向,则:

∥UnHa(θ)∥22>0 \left\|\mathbf{U}_n^H\mathbf{a}(\theta)\right\|_2^2 > 0 UnHa(θ) 22>0

为了把真实方向变成谱峰,MUSIC 定义伪谱:

PMUSIC(θ)=1∥UnHa(θ)∥22 \boxed{ P_{\text{MUSIC}}(\theta)= \frac{1} {\left\|\mathbf{U}_n^H\mathbf{a}(\theta)\right\|_2^2} } PMUSIC(θ)=UnHa(θ)221

因为:

  • 分母越小,谱值越大;
  • 真实方向处,分母接近 000
  • 因此真实方向处会出现尖锐峰值。

等价地:

∥UnHa(θ)∥22=aH(θ)UnUnHa(θ) \left\|\mathbf{U}_n^H\mathbf{a}(\theta)\right\|_2^2= \mathbf{a}^H(\theta)\mathbf{U}_n\mathbf{U}_n^H\mathbf{a}(\theta) UnHa(θ) 22=aH(θ)UnUnHa(θ)

因此 MUSIC 谱也常写为:

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

对于二维角度搜索:

PMUSIC(θ,ϕ)=1∥UnHa(θ,ϕ)∥22 \boxed{ P_{\text{MUSIC}}(\theta,\phi)= \frac{1} {\left\|\mathbf{U}_n^H\mathbf{a}(\theta,\phi)\right\|_2^2} } PMUSIC(θ,ϕ)=UnHa(θ,ϕ)221

实际实现中通常加入极小正数 ϵ\epsilonϵ 防止除零:

PMUSIC(θ,ϕ)=1∥UnHa(θ,ϕ)∥22+ϵ P_{\text{MUSIC}}(\theta,\phi)= \frac{1} {\left\|\mathbf{U}_n^H\mathbf{a}(\theta,\phi)\right\|_2^2 + \epsilon} PMUSIC(θ,ϕ)=UnHa(θ,ϕ)22+ϵ1


10. DOA 估计

单声源情况下,DOA 估计为:

θ^=arg⁡max⁡θPMUSIC(θ) \boxed{ \hat{\theta}= \arg\max_{\theta}P_{\text{MUSIC}}(\theta) } θ^=argθmaxPMUSIC(θ)

二维方向估计为:

(θ^,ϕ^)=arg⁡max⁡θ,ϕPMUSIC(θ,ϕ) \boxed{ (\hat{\theta},\hat{\phi})= \arg\max_{\theta,\phi}P_{\text{MUSIC}}(\theta,\phi) } (θ^,ϕ^)=argθ,ϕmaxPMUSIC(θ,ϕ)

多声源情况下,需要寻找 MUSIC 谱中的前 KKK 个峰值:

{θ^1,θ^2,…,θ^K}=TopKPeaks⁡(PMUSIC(θ)) \boxed{ \{\hat{\theta}_1,\hat{\theta}_2,\dots,\hat{\theta}_K\}= \operatorname{TopKPeaks}\left(P_{\text{MUSIC}}(\theta)\right) } {θ^1,θ^2,,θ^K}=TopKPeaks(PMUSIC(θ))

对于二维空间:

{(θ^k,ϕ^k)}k=1K=TopKPeaks⁡(PMUSIC(θ,ϕ)) \boxed{ \{(\hat{\theta}_k,\hat{\phi}_k)\}_{k=1}^{K}= \operatorname{TopKPeaks}\left(P_{\text{MUSIC}}(\theta,\phi)\right) } {(θ^k,ϕ^k)}k=1K=TopKPeaks(PMUSIC(θ,ϕ))


11. 声源数量估计

MUSIC 算法需要知道声源数量 KKK,因为必须知道前多少个特征向量属于信号子空间,后多少个属于噪声子空间。

常见方法包括:

  1. 固定指定 KKK
  2. 特征值间隙法;
  3. AIC 准则;
  4. MDL 准则。

11.1 特征值间隙法

设协方差矩阵特征值为:

λ1≥λ2≥⋯≥λM \lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_M λ1λ2λM

计算相邻特征值比值:

gi=λiλi+1 g_i = \frac{\lambda_i}{\lambda_{i+1}} gi=λi+1λi

或者用 dB 形式:

gidB=10log⁡10λiλi+1 g_i^{\text{dB}} =10\log_{10}\frac{\lambda_i}{\lambda_{i+1}} gidB=10log10λi+1λi

如果在 i=Ki=Ki=K 处出现最大间隙,则估计:

K^=arg⁡max⁡igi \boxed{ \hat{K}=\arg\max_i g_i } K^=argimaxgi

直观理解是:

信号特征值较大,噪声特征值较小。信号子空间与噪声子空间之间通常会出现明显的特征值断崖。


11.2 MDL 准则

MDL,全称 Minimum Description Length,最小描述长度准则。

假设有 MMM 个传感器、LLL 个快拍。对于候选声源数 kkk,考虑后 M−kM-kMk 个特征值:

λk+1,λk+2,…,λM \lambda_{k+1},\lambda_{k+2},\dots,\lambda_M λk+1,λk+2,,λM

定义几何平均:

Gk=(∏i=k+1Mλi)1M−k G_k= \left( \prod_{i=k+1}^{M}\lambda_i \right)^{\frac{1}{M-k}} Gk=(i=k+1Mλi)Mk1

定义算术平均:

Ak=1M−k∑i=k+1Mλi A_k= \frac{1}{M-k} \sum_{i=k+1}^{M}\lambda_i Ak=Mk1i=k+1Mλi

则 MDL 准则为:

MDL⁡(k)=−L(M−k)log⁡GkAk+12k(2M−k)log⁡L \operatorname{MDL}(k)= -L(M-k)\log\frac{G_k}{A_k} + \frac{1}{2}k(2M-k)\log L MDL(k)=L(Mk)logAkGk+21k(2Mk)logL

最终选择:

K^=arg⁡min⁡kMDL⁡(k) \boxed{ \hat{K}= \arg\min_k \operatorname{MDL}(k) } K^=argkminMDL(k)


11.3 AIC 准则

AIC,全称 Akaike Information Criterion,赤池信息准则。

其形式为:

AIC⁡(k)=−2L(M−k)log⁡GkAk+2k(2M−k) \operatorname{AIC}(k)= -2L(M-k)\log\frac{G_k}{A_k} +2k(2M-k) AIC(k)=2L(Mk)logAkGk+2k(2Mk)

最终选择:

K^=arg⁡min⁡kAIC⁡(k) \boxed{ \hat{K}= \arg\min_k \operatorname{AIC}(k) } K^=argkminAIC(k)

一般来说:

  • AIC 更容易高估声源数量;
  • MDL 更保守,常用于实际阵列信号处理。

12. 宽带 MUSIC

前面的推导基于窄带信号模型。但声音信号通常是宽带信号,因此需要宽带 MUSIC。

设频率点为:

f1,f2,…,fQ f_1,f_2,\dots,f_Q f1,f2,,fQ

对于每个频率 fqf_qfq,都可以构造频率相关的导向向量:

a(fq,θ)=[e−j2πfqτ1(θ)e−j2πfqτ2(θ)⋮e−j2πfqτM(θ)] \mathbf{a}(f_q,\theta)= \begin{bmatrix} e^{-j2\pi f_q\tau_1(\theta)} \\ e^{-j2\pi f_q\tau_2(\theta)} \\ \vdots \\ e^{-j2\pi f_q\tau_M(\theta)} \end{bmatrix} a(fq,θ)= ej2πfqτ1(θ)ej2πfqτ2(θ)ej2πfqτM(θ)

每个频率都有对应的协方差矩阵:

Rxx(fq) \mathbf{R}_{xx}(f_q) Rxx(fq)

以及噪声子空间:

Un(fq) \mathbf{U}_n(f_q) Un(fq)

一种常见的非相干宽带 MUSIC 谱为:

PWB-MUSIC(θ)=∑q=1Q1∥UnH(fq)a(fq,θ)∥22+ϵ \boxed{ P_{\text{WB-MUSIC}}(\theta)= \sum_{q=1}^{Q} \frac{1} {\left\|\mathbf{U}_n^H(f_q)\mathbf{a}(f_q,\theta)\right\|_2^2 + \epsilon} } PWB-MUSIC(θ)=q=1QUnH(fq)a(fq,θ)22+ϵ1

对于二维方向:

PWB-MUSIC(θ,ϕ)=∑q=1Q1∥UnH(fq)a(fq,θ,ϕ)∥22+ϵ \boxed{ P_{\text{WB-MUSIC}}(\theta,\phi)= \sum_{q=1}^{Q} \frac{1} {\left\|\mathbf{U}_n^H(f_q)\mathbf{a}(f_q,\theta,\phi)\right\|_2^2 + \epsilon} } PWB-MUSIC(θ,ϕ)=q=1QUnH(fq)a(fq,θ,ϕ)22+ϵ1

这种方法的思想是:

每个频率点独立形成一个 MUSIC 空间谱,然后将多个频率的谱进行叠加,增强真实方向的峰值稳定性。


13. MUSIC 算法完整步骤总结

步骤 1:采集阵列信号

得到多通道信号:

x(t)=[x1(t)x2(t)⋮xM(t)] \mathbf{x}(t)= \begin{bmatrix} x_1(t) \\ x_2(t) \\ \vdots \\ x_M(t) \end{bmatrix} x(t)= x1(t)x2(t)xM(t)


步骤 2:估计协方差矩阵

R^xx=1L∑ℓ=1Lx(ℓ)xH(ℓ) \hat{\mathbf{R}}_{xx}= \frac{1}{L} \sum_{\ell=1}^{L} \mathbf{x}(\ell)\mathbf{x}^H(\ell) R^xx=L1=1Lx()xH()


步骤 3:特征值分解

R^xx=UΛUH \hat{\mathbf{R}}_{xx}= \mathbf{U}\mathbf{\Lambda}\mathbf{U}^H R^xx=UH


步骤 4:划分信号子空间和噪声子空间

U=[UsUn] \mathbf{U}= \begin{bmatrix} \mathbf{U}_s & \mathbf{U}_n \end{bmatrix} U=[UsUn]

其中:

Us=[u1⋯uK] \mathbf{U}_s= \begin{bmatrix} \mathbf{u}_1 & \cdots & \mathbf{u}_K \end{bmatrix} Us=[u1uK]

Un=[uK+1⋯uM] \mathbf{U}_n= \begin{bmatrix} \mathbf{u}_{K+1} & \cdots & \mathbf{u}_M \end{bmatrix} Un=[uK+1uM]


步骤 5:构造候选方向的导向向量

对于每个候选方向 θ\thetaθ(θ,ϕ)(\theta,\phi)(θ,ϕ),计算:

a(θ) \mathbf{a}(\theta) a(θ)

或:

a(θ,ϕ) \mathbf{a}(\theta,\phi) a(θ,ϕ)


步骤 6:计算 MUSIC 空间谱

PMUSIC(θ)=1∥UnHa(θ)∥22+ϵ P_{\text{MUSIC}}(\theta)= \frac{1} {\left\|\mathbf{U}_n^H\mathbf{a}(\theta)\right\|_2^2 + \epsilon} PMUSIC(θ)=UnHa(θ)22+ϵ1

或:

PMUSIC(θ,ϕ)=1∥UnHa(θ,ϕ)∥22+ϵ P_{\text{MUSIC}}(\theta,\phi)= \frac{1} {\left\|\mathbf{U}_n^H\mathbf{a}(\theta,\phi)\right\|_2^2 + \epsilon} PMUSIC(θ,ϕ)=UnHa(θ,ϕ)22+ϵ1


步骤 7:寻找谱峰

单声源:

θ^=arg⁡max⁡θPMUSIC(θ) \hat{\theta}= \arg\max_{\theta}P_{\text{MUSIC}}(\theta) θ^=argθmaxPMUSIC(θ)

多声源:

{θ^k}k=1K=TopKPeaks⁡(PMUSIC(θ)) \{\hat{\theta}_k\}_{k=1}^{K}= \operatorname{TopKPeaks}\left(P_{\text{MUSIC}}(\theta)\right) {θ^k}k=1K=TopKPeaks(PMUSIC(θ))

二维方向:

{(θ^k,ϕ^k)}k=1K=TopKPeaks⁡(PMUSIC(θ,ϕ)) \{(\hat{\theta}_k,\hat{\phi}_k)\}_{k=1}^{K}= \operatorname{TopKPeaks}\left(P_{\text{MUSIC}}(\theta,\phi)\right) {(θ^k,ϕ^k)}k=1K=TopKPeaks(PMUSIC(θ,ϕ))


14. MUSIC 成立的主要条件

MUSIC 算法通常依赖以下条件:

  1. 声源数量满足:

    K<M K < M K<M

  2. 阵列流形矩阵 A\mathbf{A}A 满列秩:

    rank⁡(A)=K \operatorname{rank}(\mathbf{A}) = K rank(A)=K

  3. 声源之间不能完全相干,否则 Rss\mathbf{R}_{ss}Rss 可能秩亏。

  4. 噪声通常假设为空间白噪声:

    Rnn=σ2I \mathbf{R}_{nn}=\sigma^2\mathbf{I} Rnn=σ2I

  5. 协方差矩阵估计需要足够多的快拍。

  6. 导向向量模型必须与真实传播模型匹配。

对于声学定位而言,如果实际是近场场景,却使用远场导向向量,则可能导致定位误差。


15. 总结

MUSIC 算法可以总结为以下数学链条:

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

Rxx=ARssAH+σ2I \mathbf{R}_{xx} =\mathbf{A}\mathbf{R}_{ss}\mathbf{A}^H+\sigma^2\mathbf{I} Rxx=ARssAH+σ2I

Rxx=UΛUH \mathbf{R}_{xx} =\mathbf{U}\mathbf{\Lambda}\mathbf{U}^H Rxx=UH

U=[UsUn] \mathbf{U}= \begin{bmatrix} \mathbf{U}_s & \mathbf{U}_n \end{bmatrix} U=[UsUn]

真实声源方向满足:

UnHa(θk)=0 \mathbf{U}_n^H\mathbf{a}(\theta_k)=\mathbf{0} UnHa(θk)=0

因此构造:

PMUSIC(θ)=1∥UnHa(θ)∥22 \boxed{ P_{\text{MUSIC}}(\theta)= \frac{1} {\left\|\mathbf{U}_n^H\mathbf{a}(\theta)\right\|_2^2} } PMUSIC(θ)=UnHa(θ)221

最后通过搜索谱峰得到 DOA:

θ^=arg⁡max⁡θPMUSIC(θ) \boxed{ \hat{\theta}= \arg\max_{\theta}P_{\text{MUSIC}}(\theta) } θ^=argθmaxPMUSIC(θ)

其本质是:

真实方向的导向向量属于信号子空间,因此与噪声子空间正交。MUSIC 通过寻找这种正交关系最强的方向,实现高分辨率声源定位。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐