阵列信号MUSIC算法数学模型与推导总结
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πf0te−j2π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)e−j2π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(θ)= e−j2πf0τ1(θ)e−j2πf0τ2(θ)⋮e−j2π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(θ,ϕ)= e−j2πf0τ1(θ,ϕ)e−j2πf0τ2(θ,ϕ)⋮e−j2π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= p1Tp2T⋮pMT ∈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(pm−p1)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ℓ=1∑Lx(ℓ)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=UΛUH
其中:
U=[u1u2⋯uM] \mathbf{U}= \begin{bmatrix} \mathbf{u}_1 & \mathbf{u}_2 & \cdots & \mathbf{u}_M \end{bmatrix} U=[u1u2⋯uM]
是特征向量矩阵,
Λ=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-KM−K 个较小的特征值对应噪声子空间。
因此可以写成:
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=[u1u2⋯uK]∈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+2⋯uM]∈CM×(M−K)
称为噪声子空间。
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-KM−K 维空间不包含信号成分。这 M−KM-KM−K 维空间就是信号子空间的正交补,也就是噪声子空间。
因此,对于噪声子空间中的任意向量 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(θ) 22≈0
如果 θ\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 估计为:
θ^=argmaxθPMUSIC(θ) \boxed{ \hat{\theta}= \arg\max_{\theta}P_{\text{MUSIC}}(\theta) } θ^=argθmaxPMUSIC(θ)
二维方向估计为:
(θ^,ϕ^)=argmaxθ,ϕ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,因为必须知道前多少个特征向量属于信号子空间,后多少个属于噪声子空间。
常见方法包括:
- 固定指定 KKK;
- 特征值间隙法;
- AIC 准则;
- 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=10log10λ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^=argmaxigi \boxed{ \hat{K}=\arg\max_i g_i } K^=argimaxgi
直观理解是:
信号特征值较大,噪声特征值较小。信号子空间与噪声子空间之间通常会出现明显的特征值断崖。
11.2 MDL 准则
MDL,全称 Minimum Description Length,最小描述长度准则。
假设有 MMM 个传感器、LLL 个快拍。对于候选声源数 kkk,考虑后 M−kM-kM−k 个特征值:
λ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+1∏Mλi)M−k1
定义算术平均:
Ak=1M−k∑i=k+1Mλi A_k= \frac{1}{M-k} \sum_{i=k+1}^{M}\lambda_i Ak=M−k1i=k+1∑Mλi
则 MDL 准则为:
MDL(k)=−L(M−k)logGkAk+12k(2M−k)logL \operatorname{MDL}(k)= -L(M-k)\log\frac{G_k}{A_k} + \frac{1}{2}k(2M-k)\log L MDL(k)=−L(M−k)logAkGk+21k(2M−k)logL
最终选择:
K^=argminkMDL(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)logGkAk+2k(2M−k) \operatorname{AIC}(k)= -2L(M-k)\log\frac{G_k}{A_k} +2k(2M-k) AIC(k)=−2L(M−k)logAkGk+2k(2M−k)
最终选择:
K^=argminkAIC(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,θ)= e−j2πfqτ1(θ)e−j2πfqτ2(θ)⋮e−j2π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=1∑Q∥UnH(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=1∑Q∥UnH(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ℓ=1∑Lx(ℓ)xH(ℓ)
步骤 3:特征值分解
R^xx=UΛUH \hat{\mathbf{R}}_{xx}= \mathbf{U}\mathbf{\Lambda}\mathbf{U}^H R^xx=UΛ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=[u1⋯uK]
Un=[uK+1⋯uM] \mathbf{U}_n= \begin{bmatrix} \mathbf{u}_{K+1} & \cdots & \mathbf{u}_M \end{bmatrix} Un=[uK+1⋯uM]
步骤 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:寻找谱峰
单声源:
θ^=argmaxθ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 算法通常依赖以下条件:
-
声源数量满足:
K<M K < M K<M
-
阵列流形矩阵 A\mathbf{A}A 满列秩:
rank(A)=K \operatorname{rank}(\mathbf{A}) = K rank(A)=K
-
声源之间不能完全相干,否则 Rss\mathbf{R}_{ss}Rss 可能秩亏。
-
噪声通常假设为空间白噪声:
Rnn=σ2I \mathbf{R}_{nn}=\sigma^2\mathbf{I} Rnn=σ2I
-
协方差矩阵估计需要足够多的快拍。
-
导向向量模型必须与真实传播模型匹配。
对于声学定位而言,如果实际是近场场景,却使用远场导向向量,则可能导致定位误差。
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=UΛ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:
θ^=argmaxθPMUSIC(θ) \boxed{ \hat{\theta}= \arg\max_{\theta}P_{\text{MUSIC}}(\theta) } θ^=argθmaxPMUSIC(θ)
其本质是:
真实方向的导向向量属于信号子空间,因此与噪声子空间正交。MUSIC 通过寻找这种正交关系最强的方向,实现高分辨率声源定位。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)