2D-MUSIC与2D-ESPRIT算法:从一维到二维的DOA估计
引言
波达方向(Direction of Arrival, DOA)估计是阵列信号处理中的核心问题之一。MUSIC(Multiple Signal Classification)算法由Schmidt于1986年提出,ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法由Roy和Kailath提出,两者分别代表了子空间类DOA估计算法的两大流派。本文将系统推导这两种算法的二维扩展形式------2D-MUSIC和2D-ESPRIT。
一、信号模型
1.1 一维均匀线阵信号模型
设均匀线阵(ULA)包含 MMM 个阵元,阵元间距为 ddd。有 KKK 个窄带远场信号源入射,第 kkk 个信号的波达方向角为 θk\theta_kθk。则阵列接收信号可表示为:
x(t)=A(θ)s(t)+n(t) \mathbf{x}(t) = \mathbf{A}(\boldsymbol{\theta}) \mathbf{s}(t) + \mathbf{n}(t) x(t)=A(θ)s(t)+n(t)
其中,x(t)∈CM×1\mathbf{x}(t) \in \mathbb{C}^{M \times 1}x(t)∈CM×1 为接收数据向量,s(t)∈CK×1\mathbf{s}(t) \in \mathbb{C}^{K \times 1}s(t)∈CK×1 为信号向量,n(t)∈CM×1\mathbf{n}(t) \in \mathbb{C}^{M \times 1}n(t)∈CM×1 为加性高斯白噪声。导向矩阵 A(θ)=a(θ1),a(θ2),...,a(θK)∈CM×K\mathbf{A}(\boldsymbol{\theta}) = \\mathbf{a}(\\theta_1), \\mathbf{a}(\\theta_2), \\dots, \\mathbf{a}(\\theta_K) \in \mathbb{C}^{M \times K}A(θ)=a(θ1),a(θ2),...,a(θK)∈CM×K,导向矢量为:
a(θk)=1,e−j2πdλsinθk,e−j2πdλ2sinθk,...,e−j2πdλ(M−1)sinθkT \mathbf{a}(\theta_k) = 1, e\^{-j\\frac{2\\pi d}{\\lambda}\\sin\\theta_k}, e\^{-j\\frac{2\\pi d}{\\lambda}2\\sin\\theta_k}, \\dots, e\^{-j\\frac{2\\pi d}{\\lambda}(M-1)\\sin\\theta_k}^T a(θk)=1,e−jλ2πdsinθk,e−jλ2πd2sinθk,...,e−jλ2πd(M−1)sinθkT
1.2 二维均匀面阵信号模型
将一维线阵扩展为二维均匀面阵(URA),假设阵列位于 x-yx\text{-}yx-y 平面,在 xxx 方向和 yyy 方向分别有 MxM_xMx 和 MyM_yMy 个阵元,总阵元数 M=Mx×MyM = M_x \times M_yM=Mx×My。xxx 方向和 yyy 方向的阵元间距分别为 dxd_xdx 和 dyd_ydy。
设有 KKK 个窄带远场信号源,第 kkk 个信号的方位角为 ϕk\phi_kϕk(与 xxx 轴夹角),俯仰角为 θk\theta_kθk(与 zzz 轴夹角,或称为与阵列法线的夹角)。则二维导向矢量为两个一维导向矢量的Kronecker积:
a(θk,ϕk)=ay(θk,ϕk)⊗ax(θk,ϕk) \mathbf{a}(\theta_k, \phi_k) = \mathbf{a}_y(\theta_k, \phi_k) \otimes \mathbf{a}_x(\theta_k, \phi_k) a(θk,ϕk)=ay(θk,ϕk)⊗ax(θk,ϕk)
其中:
ax(θk,ϕk)=1,e−j2πdxλsinθkcosϕk,...,e−j2πdxλ(Mx−1)sinθkcosϕkT \mathbf{a}_x(\theta_k, \phi_k) = 1, e\^{-j\\frac{2\\pi d_x}{\\lambda}\\sin\\theta_k\\cos\\phi_k}, \\dots, e\^{-j\\frac{2\\pi d_x}{\\lambda}(M_x-1)\\sin\\theta_k\\cos\\phi_k}^T ax(θk,ϕk)=1,e−jλ2πdxsinθkcosϕk,...,e−jλ2πdx(Mx−1)sinθkcosϕkT
ay(θk,ϕk)=1,e−j2πdyλsinθksinϕk,...,e−j2πdyλ(My−1)sinθksinϕkT \mathbf{a}_y(\theta_k, \phi_k) = 1, e\^{-j\\frac{2\\pi d_y}{\\lambda}\\sin\\theta_k\\sin\\phi_k}, \\dots, e\^{-j\\frac{2\\pi d_y}{\\lambda}(M_y-1)\\sin\\theta_k\\sin\\phi_k}^T ay(θk,ϕk)=1,e−jλ2πdysinθksinϕk,...,e−jλ2πdy(My−1)sinθksinϕkT
定义空间频率:
uk=2πdxλsinθkcosϕk,vk=2πdyλsinθksinϕk u_k = \frac{2\pi d_x}{\lambda} \sin\theta_k \cos\phi_k, \quad v_k = \frac{2\pi d_y}{\lambda} \sin\theta_k \sin\phi_k uk=λ2πdxsinθkcosϕk,vk=λ2πdysinθksinϕk
则导向矢量可简洁表示为:
a(uk,vk)=ay(vk)⊗ax(uk) \mathbf{a}(u_k, v_k) = \mathbf{a}_y(v_k) \otimes \mathbf{a}_x(u_k) a(uk,vk)=ay(vk)⊗ax(uk)
其中:
ax(uk)=1,e−juk,e−j2uk,...,e−j(Mx−1)ukT \mathbf{a}_x(u_k) = 1, e\^{-ju_k}, e\^{-j2u_k}, \\dots, e\^{-j(M_x-1)u_k}^T ax(uk)=1,e−juk,e−j2uk,...,e−j(Mx−1)ukT
ay(vk)=1,e−jvk,e−j2vk,...,e−j(My−1)vkT \mathbf{a}_y(v_k) = 1, e\^{-jv_k}, e\^{-j2v_k}, \\dots, e\^{-j(M_y-1)v_k}^T ay(vk)=1,e−jvk,e−j2vk,...,e−j(My−1)vkT
二维阵列的接收数据模型为:
X(t)=AS(t)+N(t) \mathbf{X}(t) = \mathbf{A} \mathbf{S}(t) + \mathbf{N}(t) X(t)=AS(t)+N(t)
其中 A=a(u1,v1),a(u2,v2),...,a(uK,vK)∈CM×K\mathbf{A} = \\mathbf{a}(u_1, v_1), \\mathbf{a}(u_2, v_2), \\dots, \\mathbf{a}(u_K, v_K) \in \mathbb{C}^{M \times K}A=a(u1,v1),a(u2,v2),...,a(uK,vK)∈CM×K 为二维导向矩阵。
二、2D-MUSIC算法
2.1 MUSIC算法的核心思想
MUSIC算法的核心思想是利用信号子空间与噪声子空间的正交性。在理想无噪声情况下,接收数据的协方差矩阵为:
R=EX(t)XH(t)=ARsAH \mathbf{R} = E\\mathbf{X}(t)\\mathbf{X}\^H(t) = \mathbf{A} \mathbf{R}_s \mathbf{A}^H R=EX(t)XH(t)=ARsAH
其中 Rs=ES(t)SH(t)\mathbf{R}_s = E\\mathbf{S}(t)\\mathbf{S}\^H(t)Rs=ES(t)SH(t) 为信号协方差矩阵。当信号源互不相关时,rank(ARsAH)=K\text{rank}(\mathbf{A}\mathbf{R}_s\mathbf{A}^H) = Krank(ARsAH)=K。
对 R\mathbf{R}R 进行特征分解:
R=∑i=1MλieieiH=EsΛsEsH+EnΛnEnH \mathbf{R} = \sum_{i=1}^{M} \lambda_i \mathbf{e}_i \mathbf{e}_i^H = \mathbf{E}_s \boldsymbol{\Lambda}_s \mathbf{E}_s^H + \mathbf{E}_n \boldsymbol{\Lambda}_n \mathbf{E}_n^H R=i=1∑MλieieiH=EsΛsEsH+EnΛnEnH
其中 λ1≥λ2≥⋯≥λK>λK+1=⋯=λM=σ2\lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_K > \lambda_{K+1} = \dots = \lambda_M = \sigma^2λ1≥λ2≥⋯≥λK>λK+1=⋯=λM=σ2。Es=e1,e2,...,eK\mathbf{E}_s = \\mathbf{e}_1, \\mathbf{e}_2, \\dots, \\mathbf{e}_KEs=e1,e2,...,eK 为信号子空间,En=eK+1,...,eM\mathbf{E}_n = \\mathbf{e}_{K+1}, \\dots, \\mathbf{e}_MEn=eK+1,...,eM 为噪声子空间。
由于导向矢量张成的空间与信号子空间相同,而信号子空间与噪声子空间正交,因此有:
aH(θ,ϕ)En=0,(θ,ϕ)∈{(θk,ϕk)}k=1K \mathbf{a}^H(\theta, \phi) \mathbf{E}n = \mathbf{0}, \quad (\theta, \phi) \in \{(\theta_k, \phi_k)\}{k=1}^{K} aH(θ,ϕ)En=0,(θ,ϕ)∈{(θk,ϕk)}k=1K
2.2 二维MUSIC空间谱
2D-MUSIC算法通过在整个二维角度空间进行谱峰搜索来估计DOA。定义二维MUSIC空间谱函数:
P2D-MUSIC(θ,ϕ)=1aH(θ,ϕ)EnEnHa(θ,ϕ) P_{\text{2D-MUSIC}}(\theta, \phi) = \frac{1}{\mathbf{a}^H(\theta, \phi) \mathbf{E}_n \mathbf{E}_n^H \mathbf{a}(\theta, \phi)} P2D-MUSIC(θ,ϕ)=aH(θ,ϕ)EnEnHa(θ,ϕ)1
当 (θ,ϕ)(\theta, \phi)(θ,ϕ) 等于真实信号的角度时,分母趋近于零,P2D-MUSICP_{\text{2D-MUSIC}}P2D-MUSIC 出现峰值。因此,二维DOA估计为:
(θ^k,ϕ^k)=argmax(θ,ϕ)P2D-MUSIC(θ,ϕ),k=1,2,...,K (\hat{\theta}k, \hat{\phi}k) = \arg\max{(\theta, \phi)} P{\text{2D-MUSIC}}(\theta, \phi), \quad k = 1, 2, \dots, K (θ^k,ϕ^k)=arg(θ,ϕ)maxP2D-MUSIC(θ,ϕ),k=1,2,...,K
在实际计算中,为了避免数值问题,常使用其倒数形式进行谱峰搜索:
P2D-MUSIC(θ,ϕ)=1∑i=K+1M∣aH(θ,ϕ)ei∣2 P_{\text{2D-MUSIC}}(\theta, \phi) = \frac{1}{\sum_{i=K+1}^{M} |\mathbf{a}^H(\theta, \phi) \mathbf{e}_i|^2} P2D-MUSIC(θ,ϕ)=∑i=K+1M∣aH(θ,ϕ)ei∣21
2.3 算法步骤
步骤1 :收集 LLL 个快拍的接收数据 {X(t)}t=1L\{\mathbf{X}(t)\}_{t=1}^{L}{X(t)}t=1L,估计协方差矩阵:
R^=1L∑t=1LX(t)XH(t) \hat{\mathbf{R}} = \frac{1}{L} \sum_{t=1}^{L} \mathbf{X}(t) \mathbf{X}^H(t) R^=L1t=1∑LX(t)XH(t)
步骤2 :对 R^\hat{\mathbf{R}}R^ 进行特征分解,得到噪声子空间 E^n\hat{\mathbf{E}}_nE^n。
步骤3:在感兴趣的二维角度范围内进行网格搜索,计算每个角度对应的空间谱值。
步骤4 :找出空间谱的 KKK 个峰值位置,即为估计的二维DOA。
2.4 2D-MUSIC的局限性
二维MUSIC算法最显著的缺点是计算复杂度极高。设方位角搜索网格点数为 NϕN_\phiNϕ,俯仰角搜索网格点数为 NθN_\thetaNθ,则总搜索点数为 Nϕ×NθN_\phi \times N_\thetaNϕ×Nθ,每个点都需要计算 M×(M−K)M \times (M-K)M×(M−K) 次复数乘法运算。
三、2D-ESPRIT算法
3.1 ESPRIT算法的核心思想
与MUSIC不同,ESPRIT算法利用阵列结构的旋转不变性(或称平移不变性)来估计信号参数。ESPRIT不进行谱搜索,而是通过求解广义特征值问题直接得到闭式解,计算效率远高于MUSIC。
ESPRIT要求阵列由两个完全相同的子阵构成,且两个子阵之间具有固定的平移关系。对于均匀线阵,可以将前 M−1M-1M−1 个阵元作为子阵1,后 M−1M-1M−1 个阵元作为子阵2。
设两个子阵的接收数据分别为:
X1(t)=A1S(t)+N1(t),X2(t)=A2S(t)+N2(t) \mathbf{X}_1(t) = \mathbf{A}_1 \mathbf{S}(t) + \mathbf{N}_1(t), \quad \mathbf{X}_2(t) = \mathbf{A}_2 \mathbf{S}(t) + \mathbf{N}_2(t) X1(t)=A1S(t)+N1(t),X2(t)=A2S(t)+N2(t)
由于两个子阵结构完全相同且仅存在平移,导向矩阵满足旋转不变关系:
A2=A1Φ \mathbf{A}_2 = \mathbf{A}_1 \boldsymbol{\Phi} A2=A1Φ
其中 Φ=diag(ejϕ1,ejϕ2,...,ejϕK)\boldsymbol{\Phi} = \text{diag}(e^{j\phi_1}, e^{j\phi_2}, \dots, e^{j\phi_K})Φ=diag(ejϕ1,ejϕ2,...,ejϕK) 为旋转矩阵,ϕk=2πdλsinθk\phi_k = \frac{2\pi d}{\lambda}\sin\theta_kϕk=λ2πdsinθk。
3.2 二维ESPRIT的阵列结构
将ESPRIT扩展到二维,最常用的阵列结构是均匀面阵。在二维情况下,需要在 xxx 方向和 yyy 方向分别构造旋转不变关系。
对于 Mx×MyM_x \times M_yMx×My 的均匀面阵,可以构造四组子阵:
- 子阵1:所有阵元(参考子阵)
- 子阵2:在 xxx 方向平移 dxd_xdx 的子阵
- 子阵3:在 yyy 方向平移 dyd_ydy 的子阵
- 子阵4:在 xxx 和 yyy 方向同时平移的子阵
相应的导向矩阵满足:
Ax=AΦx,Ay=AΦy \mathbf{A}_x = \mathbf{A} \boldsymbol{\Phi}_x, \quad \mathbf{A}_y = \mathbf{A} \boldsymbol{\Phi}_y Ax=AΦx,Ay=AΦy
其中:
Φx=diag(eju1,eju2,...,ejuK) \boldsymbol{\Phi}_x = \text{diag}(e^{ju_1}, e^{ju_2}, \dots, e^{ju_K}) Φx=diag(eju1,eju2,...,ejuK)
Φy=diag(ejv1,ejv2,...,ejvK) \boldsymbol{\Phi}_y = \text{diag}(e^{jv_1}, e^{jv_2}, \dots, e^{jv_K}) Φy=diag(ejv1,ejv2,...,ejvK)
3.3 二维ESPRIT的数学推导
将两个子阵的接收数据合并:
Z(t)=X1(t)X2(t)=AAΦxS(t)+N(t)=AˉS(t)+N(t) \mathbf{Z}(t) = \begin{bmatrix} \mathbf{X}_1(t) \\ \mathbf{X}_2(t) \end{bmatrix} = \begin{bmatrix} \mathbf{A} \\ \mathbf{A} \boldsymbol{\Phi}_x \end{bmatrix} \mathbf{S}(t) + \mathbf{N}(t) = \bar{\mathbf{A}} \mathbf{S}(t) + \mathbf{N}(t) Z(t)=X1(t)X2(t)=AAΦxS(t)+N(t)=AˉS(t)+N(t)
其中 Aˉ=AT,(AΦx)TT\bar{\mathbf{A}} = \\mathbf{A}\^T, (\\mathbf{A}\\boldsymbol{\\Phi}_x)\^T^TAˉ=AT,(AΦx)TT。
计算协方差矩阵并对信号子空间进行估计:
Rzz=EZ(t)ZH(t),Rzz=EsΛsEsH+EnΛnEnH \mathbf{R}{zz} = E\\mathbf{Z}(t)\\mathbf{Z}\^H(t), \quad \mathbf{R}{zz} = \mathbf{E}_s \boldsymbol{\Lambda}_s \mathbf{E}_s^H + \mathbf{E}_n \boldsymbol{\Lambda}_n \mathbf{E}_n^H Rzz=EZ(t)ZH(t),Rzz=EsΛsEsH+EnΛnEnH
信号子空间 Es\mathbf{E}_sEs 与 Aˉ\bar{\mathbf{A}}Aˉ 张成相同的子空间,因此存在唯一的非奇异矩阵 T∈CK×K\mathbf{T} \in \mathbb{C}^{K \times K}T∈CK×K,使得:
Es=AˉT=AAΦxT \mathbf{E}_s = \bar{\mathbf{A}} \mathbf{T} = \begin{bmatrix} \mathbf{A} \\ \mathbf{A} \boldsymbol{\Phi}_x \end{bmatrix} \mathbf{T} Es=AˉT=AAΦxT
将 Es\mathbf{E}sEs 按行分块为 Es=Es1T,Es2TT\mathbf{E}s = \\mathbf{E}_{s1}\^T, \\mathbf{E}_{s2}\^T^TEs=Es1T,Es2TT,其中 Es1,Es2∈C(M/2)×K\mathbf{E}{s1}, \mathbf{E}{s2} \in \mathbb{C}^{(M/2) \times K}Es1,Es2∈C(M/2)×K,则:
Es1=AT,Es2=AΦxT \mathbf{E}{s1} = \mathbf{A} \mathbf{T}, \quad \mathbf{E}{s2} = \mathbf{A} \boldsymbol{\Phi}_x \mathbf{T} Es1=AT,Es2=AΦxT
因此:
Es2=Es1T−1ΦxT \mathbf{E}{s2} = \mathbf{E}{s1} \mathbf{T}^{-1} \boldsymbol{\Phi}_x \mathbf{T} Es2=Es1T−1ΦxT
定义矩阵 Ψx=T−1ΦxT\boldsymbol{\Psi}_x = \mathbf{T}^{-1} \boldsymbol{\Phi}_x \mathbf{T}Ψx=T−1ΦxT,则 Ψx\boldsymbol{\Psi}_xΨx 与 Φx\boldsymbol{\Phi}_xΦx 相似,具有相同的特征值。于是有:
Es2=Es1Ψx \mathbf{E}{s2} = \mathbf{E}{s1} \boldsymbol{\Psi}_x Es2=Es1Ψx
Ψx\boldsymbol{\Psi}_xΨx 的最小二乘解为:
Ψx=(Es1HEs1)−1Es1HEs2 \boldsymbol{\Psi}x = (\mathbf{E}{s1}^H \mathbf{E}{s1})^{-1} \mathbf{E}{s1}^H \mathbf{E}_{s2} Ψx=(Es1HEs1)−1Es1HEs2
或者使用总体最小二乘(TLS)方法以获得更好的数值稳定性。
同理,对于 yyy 方向:
Es3=Es1Ψy \mathbf{E}{s3} = \mathbf{E}{s1} \boldsymbol{\Psi}_y Es3=Es1Ψy
对 Ψx\boldsymbol{\Psi}_xΨx 和 Ψy\boldsymbol{\Psi}_yΨy 进行特征分解:
Ψx=T−1ΦxT,Ψy=T−1ΦyT \boldsymbol{\Psi}_x = \mathbf{T}^{-1} \boldsymbol{\Phi}_x \mathbf{T}, \quad \boldsymbol{\Psi}_y = \mathbf{T}^{-1} \boldsymbol{\Phi}_y \mathbf{T} Ψx=T−1ΦxT,Ψy=T−1ΦyT
由于 Ψx\boldsymbol{\Psi}_xΨx 和 Ψy\boldsymbol{\Psi}_yΨy 共享相同的特征向量矩阵 T\mathbf{T}T,它们的特征值自动配对。第 kkk 个信号对应的空间频率为:
uk=∠(λx,k),vk=∠(λy,k) u_k = \angle(\lambda_{x,k}), \quad v_k = \angle(\lambda_{y,k}) uk=∠(λx,k),vk=∠(λy,k)
其中 λx,k\lambda_{x,k}λx,k 和 λy,k\lambda_{y,k}λy,k 分别为 Ψx\boldsymbol{\Psi}_xΨx 和 Ψy\boldsymbol{\Psi}_yΨy 的第 kkk 个特征值。
最终,方位角和俯仰角由空间频率反推得到:
ϕ^k=arctan(vkuk⋅dxdy) \hat{\phi}_k = \arctan\left(\frac{v_k}{u_k} \cdot \frac{d_x}{d_y}\right) ϕ^k=arctan(ukvk⋅dydx)
θ^k=arcsin(λ2π(ukdx)2+(vkdy)2) \hat{\theta}_k = \arcsin\left(\frac{\lambda}{2\pi} \sqrt{\left(\frac{u_k}{d_x}\right)^2 + \left(\frac{v_k}{d_y}\right)^2}\right) θ^k=arcsin 2πλ(dxuk)2+(dyvk)2
3.4 算法步骤
步骤1:根据阵列结构构造四个子阵的接收数据。
步骤2 :估计扩展协方差矩阵 R^zz\hat{\mathbf{R}}_{zz}R^zz。
步骤3 :对 R^zz\hat{\mathbf{R}}_{zz}R^zz 进行特征分解,估计信号子空间 E^s\hat{\mathbf{E}}_sE^s。
步骤4 :将 E^s\hat{\mathbf{E}}_sE^s 分块,分别计算 Ψx\boldsymbol{\Psi}_xΨx 和 Ψy\boldsymbol{\Psi}_yΨy。
步骤5 :对 Ψx\boldsymbol{\Psi}_xΨx 和 Ψy\boldsymbol{\Psi}_yΨy 进行联合特征分解,得到自动配对的 uku_kuk 和 vkv_kvk。
步骤6 :由 uku_kuk 和 vkv_kvk 反推方位角和俯仰角。
四、算法对比
| 特性 | 2D-MUSIC | 2D-ESPRIT |
|---|---|---|
| 基本原理 | 信号子空间与噪声子空间正交 | 阵列旋转不变性 |
| 计算方式 | 二维谱峰搜索 | 闭式解(特征分解) |
| 计算复杂度 | 极高(O(NϕNθM2)O(N_\phi N_\theta M^2)O(NϕNθM2)) | 较低(O(M3)O(M^3)O(M3)) |
| 分辨率 | 较高(受搜索网格限制) | 中等 |
| 阵列要求 | 任意阵列结构 | 需平移不变结构 |
| 适用场景 | 高精度要求、计算资源充足 | 实时处理、计算资源受限 |
2D-MUSIC通过谱峰搜索可以获得更高的分辨率,但计算量巨大;2D-ESPRIT计算效率高且自动完成角度配对,但分辨率略低于MUSIC,且对阵列结构有特殊要求。
五、总结
本文从信号模型出发,系统推导了2D-MUSIC和2D-ESPRIT两种经典的二维DOA估计算法。2D-MUSIC基于子空间正交性原理,通过在二维角度空间进行谱峰搜索来估计信号源方向;2D-ESPRIT则利用阵列的旋转不变性,通过求解广义特征值问题直接获得闭式解。
在实际应用中,应根据具体需求选择合适的算法:当计算资源充足且对精度要求较高时,可选用2D-MUSIC;当需要实时处理或计算资源受限时,2D-ESPRIT是更优的选择。此外,还有许多改进算法(如求根MUSIC、酉ESPRIT等)在各自的基础上进一步提升了性能,值得深入研究。