本文的主要参考资料是张小飞老师的《阵列信号处理及MATLAB实现(第3版)》(电子工业出版社出版)。
背景
近场方向到达(Direction of Arrival, DOA)估计是阵列信号处理领域的一个重要研究课题。DOA估计可以分为远场DOA估计和近场DOA估计。在近场DOA估计中,由于信号源距离阵列较近,因此信号的波前会呈现出球面波特性,这与远场情况下的平面波假设不同。近场DOA估计在很多实际应用中都非常重要,例如,无线通信、雷达、声纳、地震学以及生物医学等领域。
前文中已经提过近场源估计的2D-MUSIC算法,其需要复杂度极高的二维联合搜索,接下来将提供另一种子空间方法,降维MUSIC,它将二维联合搜索转变为一维搜索,降低了一定的计算复杂度,在时效性上有更好的效果,并且降维MUSIC方法与2D-MUSIC方法的参数估计性能非常相近。
接下来介绍近场DOA估计中的降维MUSIC方法,其信号模型与前文提及的2D-MUSIC方法一样,采用均匀线阵ULA(Uniform Linear Array),所谓二维就是指2个待估计的参数,距离
r
r
r和到达角
θ
\theta
θ。信号模型图如下所示:
阵列天线由
M
=
2
N
+
1
M=2N+1
M=2N+1个传感器阵元组成,相邻阵元间的间距为
d
d
d,以中心标号为0的传感器阵元为中心阵元,左右两边各分布
N
N
N个单边阵元,左右两边阵元共享中心标号为0的传感器阵元。因此,阵元
m
∈
[
−
N
,
⋯
,
−
2
,
−
1
,
0
,
1
,
2
,
⋯
,
N
]
m\in[-N,\cdots,-2,-1,0,1,2,\cdots,N]
m∈[−N,⋯,−2,−1,0,1,2,⋯,N],并且假设有
K
K
K个窄带近场非相干信号入射,在上图信号模型中画出了第
k
(
1
,
2
,
.
.
.
,
K
)
k(1,2,...,K)
k(1,2,...,K)个近场信号入射,距离中心参考阵元距离
r
k
r_k
rk,到达角为
θ
k
\theta_k
θk。那么其接收信号矩阵
x
(
t
)
\boldsymbol{x}\left( t \right)
x(t)可以写成如下形式
x
(
t
)
=
[
x
−
N
(
t
)
,
⋯
,
x
−
1
(
t
)
,
x
0
(
t
)
,
x
1
(
t
)
,
⋯
,
x
N
(
t
)
]
T
=
[
a
(
θ
1
,
r
1
)
,
a
(
θ
2
,
r
2
)
,
⋯
,
a
(
θ
K
,
r
K
)
]
s
(
t
)
+
n
(
t
)
=
A
x
s
(
t
)
+
n
(
t
)
\boldsymbol{x}\left( t \right) =\left[ x_{-N}\left( t \right) ,\cdots ,x_{-1}\left( t \right) ,x_0\left( t \right) ,x_1\left( t \right) ,\cdots ,x_N\left( t \right) \right] ^T\\ =\left[ \boldsymbol{a}\left( \theta _1,r_1 \right) ,\boldsymbol{a}\left( \theta _2,r_2 \right) ,\cdots ,\boldsymbol{a}\left( \theta _K,r_K \right) \right] \boldsymbol{s}\left( t \right) +\boldsymbol{n}\left( t \right) \\ =\boldsymbol{A}_x\boldsymbol{s}\left( t \right) +\boldsymbol{n}\left( t \right)
x(t)=[x−N(t),⋯,x−1(t),x0(t),x1(t),⋯,xN(t)]T=[a(θ1,r1),a(θ2,r2),⋯,a(θK,rK)]s(t)+n(t)=Axs(t)+n(t)
其中,
A
x
\boldsymbol{A}_x
Ax是阵列流形,
s
(
t
)
\boldsymbol{s}\left( t \right)
s(t)是信号矩阵,
n
(
t
)
\boldsymbol{n}\left( t \right)
n(t)是加性高斯白噪声矩阵。
根据近场信号的菲涅尔近似,第
k
k
k个信号的导向矢量
a
(
θ
k
,
r
k
)
\boldsymbol{a}\left( \theta _k,r_k \right)
a(θk,rk)可以被写成
a
(
θ
k
,
r
k
)
=
[
e
j
(
γ
k
(
−
N
+
1
)
+
ϕ
k
(
−
N
+
1
)
2
)
,
.
.
.
,
e
j
(
γ
k
(
−
1
)
+
ϕ
k
(
−
1
)
2
)
,
1
,
e
j
(
γ
k
1
+
ϕ
k
1
2
)
,
.
.
.
,
e
j
(
γ
k
N
+
ϕ
k
N
2
)
]
T
a\left( \theta _k,r_k \right) =\left[ \text{e}^{\text{j}\left( \gamma _k\left( -N+1 \right) +\phi _k\left( -N+1 \right) ^2 \right)},...,\text{e}^{\text{j}\left( \gamma _k\left( -1 \right) +\phi _k\left( -1 \right) ^2 \right)},1,\text{e}^{\text{j}\left( \gamma _k1+\phi _k1^2 \right)},...,\text{e}^{\text{j}\left( \gamma _kN+\phi _kN^2 \right)} \right] ^{\text{T}}
a(θk,rk)=[ej(γk(−N+1)+ϕk(−N+1)2),...,ej(γk(−1)+ϕk(−1)2),1,ej(γk1+ϕk12),...,ej(γkN+ϕkN2)]T并且,
γ
k
=
−
2
π
d
λ
sin
θ
k
,
ϕ
k
=
π
d
2
λ
r
k
cos
2
θ
k
\gamma _k=-2\pi \frac{d}{\lambda}\sin \theta _k,\phi _k=\pi \frac{d^2}{\lambda r_k}\cos ^2\theta _k
γk=−2πλdsinθk,ϕk=πλrkd2cos2θk
降维MUSIC方法
假设采样时间大于相干时间,有限次采样得到的接收信号的协方差矩阵可表示为如下所示,并对该协方差矩阵进行特征分解:
R
^
x
=
x
(
t
)
x
H
(
t
)
/
K
=
U
S
Σ
S
U
S
H
+
U
N
Σ
N
U
N
H
\hat{R}_x=x(t)x^{\mathrm{H}}(t)/K=\boldsymbol{U}_{\text{S}}\boldsymbol{\Sigma }_{\text{S}}\boldsymbol{U}_{\text{S}}^{\text{H}}+\boldsymbol{U}_{\text{N}}\boldsymbol{\Sigma }_{\text{N}}\boldsymbol{U}_{\text{N}}^{\text{H}}
R^x=x(t)xH(t)/K=USΣSUSH+UNΣNUNH
其中,
x
(
t
)
\boldsymbol{x}\left( t \right)
x(t)是接收信号矩阵,
K
K
K是快拍数。
(
∙
)
H
(\bullet)^{\mathrm{H}}
(∙)H是共轭转置,
U
S
\boldsymbol{U}_S
US是由大特征值对应的特征向量组成的信号子空间,
U
N
\boldsymbol{U}_N
UN是由小特征值对应的特征向量组成的噪声子空间。
根据子空间理论,在近场时,噪声子空间和信号子空间的正交性仍然成立,因此,基于远场的MUSIC方法在近场时仍然适用。
在搜索区间
r
∈
[
0.62
(
D
3
/
λ
)
1
/
2
,
(
2
D
2
/
λ
)
]
,
θ
∈
[
−
π
/
2
,
π
/
2
]
r\in[0.62(D^3/\lambda)^{1/2},(2D^2/\lambda)],\theta\in[-\pi/2,\pi/2]
r∈[0.62(D3/λ)1/2,(2D2/λ)],θ∈[−π/2,π/2]内构造谱峰搜器,
D
=
M
d
D=Md
D=Md。
P
(
θ
,
r
)
=
1
a
H
(
θ
,
r
)
U
n
U
n
H
a
(
θ
,
r
)
P\left( \theta ,r \right) =\frac{1}{a^H\left( \theta ,r \right) U_nU_{n}^{H}a\left( \theta ,r \right)}
P(θ,r)=aH(θ,r)UnUnHa(θ,r)1
其中,
a
(
θ
,
r
)
=
[
e
j
(
γ
(
−
N
+
1
)
+
ϕ
(
−
N
+
1
)
2
)
,
.
.
.
,
e
j
(
γ
(
−
1
)
+
ϕ
(
−
1
)
2
)
,
1
,
e
j
(
γ
1
+
ϕ
1
2
)
,
.
.
.
,
e
j
(
γ
N
+
ϕ
N
2
)
]
T
a\left( \theta ,r \right) =\left[ \text{e}^{\text{j}\left( \gamma \left( -N+1 \right) +\phi \left( -N+1 \right) ^2 \right)},...,\text{e}^{\text{j}\left( \gamma \left( -1 \right) +\phi \left( -1 \right) ^2 \right)},1,\text{e}^{\text{j}\left( \gamma 1+\phi 1^2 \right)},...,\text{e}^{\text{j}\left( \gamma N+\phi N^2 \right)} \right] ^{\text{T}}
a(θ,r)=[ej(γ(−N+1)+ϕ(−N+1)2),...,ej(γ(−1)+ϕ(−1)2),1,ej(γ1+ϕ12),...,ej(γN+ϕN2)]T并且,
γ
=
−
2
π
d
λ
sin
θ
,
ϕ
=
π
d
2
λ
r
cos
2
θ
\gamma =-2\pi \frac{d}{\lambda}\sin \theta ,\phi=\pi \frac{d^2}{\lambda r}\cos ^2\theta
γ=−2πλdsinθ,ϕ=πλrd2cos2θ。
得到对应峰值的下标,即目标对应的距离与角度:
θ
^
=
[
θ
^
1
,
θ
^
2
,
⋯
,
θ
^
K
]
r
^
=
[
r
^
1
,
r
^
2
,
⋯
,
r
^
K
]
\begin{aligned}&\hat{\theta}=[\hat{\theta}_{1},\hat{\theta}_{2},\cdots,\hat{\theta}_{K}]\\&\hat{r}=[\hat{r}_{1},\hat{r}_{2},\cdots,\hat{r}_{K}]\end{aligned}
θ^=[θ^1,θ^2,⋯,θ^K]r^=[r^1,r^2,⋯,r^K]
其中
θ
^
\hat{\theta}
θ^,
r
^
\hat{r}
r^分别是对应信号相对于参考阵元的距离和到达角度。
上述是,2D-MUSIC的方法的流程,对于降维MUSIC来说,需要对其第
k
k
k个入射的近场信号的导向矢量
a
(
θ
k
,
r
k
)
a\left( \theta_k,r_k\right)
a(θk,rk)进行进一步处理。
根据阵列结构的对称性,导向矢量可以被分解为:
a
(
θ
k
,
r
k
)
=
[
e
j
(
−
N
)
γ
k
e
j
(
−
N
+
1
)
γ
k
⋱
1
e
−
j
(
−
N
+
1
)
γ
k
e
−
j
(
−
N
)
γ
k
]
⋅
[
e
j
(
−
N
)
2
ϕ
k
e
j
(
−
N
+
1
)
2
ϕ
k
⋮
e
j
(
−
1
)
2
ϕ
k
1
]
=
a
1
(
γ
k
)
a
2
(
ϕ
k
)
a\left( \theta _k,r_k \right) =\left[ \begin{matrix}{} \text{e}^{\text{j}\left( -N \right) \gamma _k}& & & \\ & \text{e}^{\text{j}\left( -N+1 \right) \gamma _k}& & \\ & & \ddots& \\ & & & 1\\ & & & \\ & \text{e}^{-\text{j}\left( -N+1 \right) \gamma _k}& & \\ \text{e}^{-\text{j}\left( -N \right) \gamma _k}& & & \\ \end{matrix} \right] \cdot \left[ \begin{array}{c} \text{e}^{\text{j}\left( -N \right) ^2\phi _k}\\ \text{e}^{\text{j}\left( -N+1 \right) ^2\phi _k}\\ \vdots\\ \text{e}^{\text{j}\left( -1 \right) ^2\phi _k}\\ 1\\ \end{array} \right] =a_1\left( \gamma _k \right) a_2\left( \phi _k \right)
a(θk,rk)=
ej(−N)γke−j(−N)γkej(−N+1)γke−j(−N+1)γk⋱1
⋅
ej(−N)2ϕkej(−N+1)2ϕk⋮ej(−1)2ϕk1
=a1(γk)a2(ϕk)
其中,
γ
k
=
−
2
π
d
λ
sin
θ
k
,
ϕ
k
=
π
d
2
λ
r
k
cos
2
θ
k
\gamma_k =-2\pi \frac{d}{\lambda}\sin \theta_k ,\phi_k=\pi \frac{d^2}{\lambda r_k}\cos ^2\theta_k
γk=−2πλdsinθk,ϕk=πλrkd2cos2θk,并且
a
1
(
γ
k
)
a_1\left( \gamma _k \right)
a1(γk)仅包含角度信息,
a
2
(
ϕ
k
)
a_2\left( \phi _k \right)
a2(ϕk)同时包含角度和距离信息。
将分解后的导向矢量带入原来的2D-MUSIC谱峰搜索器:
P
(
θ
,
r
)
=
1
a
2
H
(
ϕ
)
a
1
H
(
γ
)
U
n
U
n
H
a
1
(
γ
)
a
2
(
ϕ
)
=
1
a
2
H
(
ϕ
)
Q
(
γ
)
a
2
(
ϕ
)
\begin{aligned} P\left( \theta ,r \right) &=\frac{1}{a_{2}^{\text{H}}\left( \phi \right) a_{1}^{\text{H}}\left( \gamma \right) \boldsymbol{U}_n\boldsymbol{U}_{n}^{\text{H}}{a}_1\left( \gamma \right) {a}_2\left( \phi \right)}\\ &=\frac{1}{{a}_{2}^{\text{H}}\left( \phi \right) {Q}\left( \gamma \right) {a}_2\left( \phi \right)}\\ \end{aligned}
P(θ,r)=a2H(ϕ)a1H(γ)UnUnHa1(γ)a2(ϕ)1=a2H(ϕ)Q(γ)a2(ϕ)1
其中,
Q
(
γ
)
=
a
1
H
(
γ
)
U
n
U
n
H
a
1
(
γ
)
Q\left( \gamma \right) =a_{1}^{\text{H}}\left( \gamma \right) \boldsymbol{U}_n\boldsymbol{U}_{n}^{\text{H}}a_1\left( \gamma \right)
Q(γ)=a1H(γ)UnUnHa1(γ),考虑到一个恒等式
e
1
H
a
2
(
ϕ
)
=
1
e_{1}^{\text{H}}a_2\left( \phi \right) =1
e1Ha2(ϕ)=1,而
e
1
=
[
0
,
⋯
,
1
]
T
∈
R
M
×
1
e_1=\begin{bmatrix}0,\cdots,1\end{bmatrix}^\mathrm{T}\in\mathbb{R}^{M\times1}
e1=[0,⋯,1]T∈RM×1,可以将对
P
(
θ
,
r
)
P\left( \theta ,r \right)
P(θ,r)的角度距离二维搜索看成一个二次优化问题,该二次规划问题的约束条件是
e
1
H
a
2
(
ϕ
)
=
1
e_{1}^{\text{H}}a_2\left( \phi \right) =1
e1Ha2(ϕ)=1,目标则是最大化功率
P
(
θ
,
r
)
P\left( \theta ,r \right)
P(θ,r),即最小化
a
2
H
(
ϕ
)
a
1
H
(
γ
)
U
n
U
n
H
a
1
(
γ
)
a
2
(
ϕ
)
=
a
2
H
(
ϕ
)
Q
(
γ
)
a
2
(
ϕ
)
a_{2}^{\text{H}}\left( \phi \right) a_{1}^{\text{H}}\left( \gamma \right) \boldsymbol{U}_n\boldsymbol{U}_{n}^{\text{H}}{a}_1\left( \gamma \right) {a}_2\left( \phi \right)={a}_{2}^{\text{H}}\left( \phi \right) {Q}\left( \gamma \right) {a}_2\left( \phi \right)
a2H(ϕ)a1H(γ)UnUnHa1(γ)a2(ϕ)=a2H(ϕ)Q(γ)a2(ϕ)
最终,该二次优化问题可以写成如下标准形式
min
γ
,
ϕ
a
2
H
(
ϕ
)
Q
(
γ
)
a
2
(
ϕ
)
s
.
t
.
e
1
H
a
2
(
ϕ
)
=
1
\min_{\gamma,\phi}\boldsymbol{a}_2^\mathrm{H}(\phi)\boldsymbol{Q}(\gamma)\boldsymbol{a}_2(\phi)\quad \\ \mathrm{s.t.} \boldsymbol{e}_1^\mathrm{H}\boldsymbol{a}_2(\phi)=1
γ,ϕmina2H(ϕ)Q(γ)a2(ϕ)s.t.e1Ha2(ϕ)=1
根据拉格朗日乘数法,可以构造如下代价函数。
L
(
γ
,
ϕ
)
=
a
2
H
(
ϕ
)
Q
(
γ
)
a
2
(
ϕ
)
−
ω
[
e
1
H
a
2
(
ϕ
)
−
1
]
L(\gamma,\phi)=a_2^\mathrm{H}(\phi)Q(\gamma)a_2(\phi)-\omega[e_1^\mathrm{H}a_2(\phi)-1]
L(γ,ϕ)=a2H(ϕ)Q(γ)a2(ϕ)−ω[e1Ha2(ϕ)−1]
对
a
2
H
(
ϕ
)
a_2^\mathrm{H}(\phi)
a2H(ϕ)求偏导,可得:
∂
L
(
γ
,
ϕ
)
∂
a
2
(
ϕ
)
=
2
Q
(
γ
)
a
2
(
ϕ
)
+
ω
e
1
=
0
\frac{\partial L(\gamma,\phi)}{\partial\boldsymbol{a}_2(\phi)}=2\boldsymbol{Q}(\gamma)\boldsymbol{a}_2(\phi)+\omega\boldsymbol{e}_1=0
∂a2(ϕ)∂L(γ,ϕ)=2Q(γ)a2(ϕ)+ωe1=0,
对上式进行化简可得,
a
2
(
ϕ
)
=
−
ω
2
Q
−
1
(
γ
)
e
1
=
μ
Q
−
1
(
γ
)
e
1
a_2\left( \phi \right) =-\frac{\omega}{2}Q^{-1}\left( \gamma \right) e_1=\mu Q^{-1}\left( \gamma \right) \boldsymbol{e_1}
a2(ϕ)=−2ωQ−1(γ)e1=μQ−1(γ)e1其中,
μ
=
−
ω
2
\mu=-\frac{\omega}{2}
μ=−2ω。
而由于
e
1
H
a
2
(
ϕ
)
=
1
\boldsymbol{e}_1^\mathrm{H}\boldsymbol{a}_2(\phi)=1
e1Ha2(ϕ)=1,带入上式,可得
a
2
(
ϕ
)
=
Q
(
γ
)
−
1
e
1
e
1
H
Q
(
γ
)
−
1
e
1
a_2(\phi)=\frac{Q(\gamma)^{-1}e_1}{e_1^{\mathrm{H}}Q(\gamma)^{-1}e_1}
a2(ϕ)=e1HQ(γ)−1e1Q(γ)−1e1
因此可得到
γ
k
{\gamma}_{k}
γk的估计值为:
γ
^
k
=
arg
min
γ
1
e
1
H
Q
(
γ
k
)
−
1
e
1
=
arg
max
γ
e
1
H
Q
(
γ
k
)
−
1
e
1
\hat{\gamma}_{k}=\arg\min_{\gamma}\frac{1}{e_{1}^{\mathrm{H}}Q(\gamma_{k})^{-1}e_{1}}=\arg\max_{\gamma}e_{1}^{\mathrm{H}}Q(\gamma_{k})^{-1}e_{1}
γ^k=argγmine1HQ(γk)−1e11=argγmaxe1HQ(γk)−1e1
而在信号模型中,我们知道
γ
k
=
−
2
π
d
sin
θ
k
/
λ
k
,
k
=
1
,
2
,
.
.
.
,
K
\gamma_{k}=-2\pi d\sin\theta_{k}/\lambda_{k},k=1,2,...,K
γk=−2πdsinθk/λk,k=1,2,...,K,将信号波长归一化后可以知道,
−
π
/
2
⩽
γ
k
⩽
π
/
2
-\pi/2\leqslant\gamma_k\leqslant\pi/2
−π/2⩽γk⩽π/2,因此在上述区间内进行一维谱峰搜索即可知道对应的估计值
γ
^
k
\hat{\gamma}_{k}
γ^k
将
K
K
K个估计值
γ
^
k
\hat{\gamma}_{k}
γ^k带入
a
2
(
ϕ
)
a_2(\phi)
a2(ϕ)中,即可得到:
a
2
(
ϕ
k
)
=
[
e
j
(
−
N
)
2
ϕ
k
e
j
(
−
N
+
1
)
2
ϕ
k
⋮
e
j
(
−
1
)
2
ϕ
k
1
]
\boldsymbol{a}_2(\phi_k)=\begin{bmatrix}\mathrm{e}^{\mathrm{j}(-N)^2\phi_k}\\\\\mathrm{e}^{\mathrm{j}(-N+1)^2\phi_k}\\\vdots\\\\\mathrm{e}^{\mathrm{j}(-1)^2\phi_k}\\\\1\end{bmatrix}
a2(ϕk)=
ej(−N)2ϕkej(−N+1)2ϕk⋮ej(−1)2ϕk1
对上述矩阵顺时针旋转180度可以得到下式:
a
2
′
(
ϕ
k
)
=
[
e
j
(
−
N
)
2
ϕ
k
e
j
(
−
N
+
1
)
2
ϕ
k
⋮
e
j
(
−
1
)
2
ϕ
k
1
]
g
^
k
=
angle
[
a
2
′
(
ϕ
k
)
]
\boldsymbol{a}_2^{\prime}(\phi_k)=\begin{bmatrix}\mathrm{e}^{\mathrm{j}(-N)^2\phi_k}\\\\\mathrm{e}^{\mathrm{j}(-N+1)^2\phi_k}\\\vdots\\\\\mathrm{e}^{\mathrm{j}(-1)^2\phi_k}\\\\1\end{bmatrix}\\ \hat{g}_k=\operatorname{angle}[a_2^{\prime}(\phi_k)]
a2′(ϕk)=
ej(−N)2ϕkej(−N+1)2ϕk⋮ej(−1)2ϕk1
g^k=angle[a2′(ϕk)]
其中,angle表示取相角。
g
^
k
\hat{g}_k
g^k可以表示为:
g
^
k
=
[
0
ϕ
k
4
ϕ
k
⋮
(
N
−
1
)
2
ϕ
k
N
2
ϕ
k
]
=
[
0
1
4
⋮
(
N
−
1
)
2
N
2
]
ϕ
k
=
q
ϕ
k
\hat{g}_k=\begin{bmatrix}0\\\phi_k\\4\phi_k\\\vdots\\(N-1)^2\phi_k\\\\N^2\phi_k\end{bmatrix}=\begin{bmatrix}0\\1\\4\\\vdots\\(N-1)^2\\\\N^2\end{bmatrix}\phi_k=\boldsymbol{q}\phi_k
g^k=
0ϕk4ϕk⋮(N−1)2ϕkN2ϕk
=
014⋮(N−1)2N2
ϕk=qϕk
其中,
q
=
[
0
,
1
,
4
,
⋯
,
(
N
−
1
)
2
,
N
2
]
T
\boldsymbol{q}=\begin{bmatrix}0,&1,&4,\cdots,(N-1)^2,N^2\end{bmatrix}^\mathrm{T}
q=[0,1,4,⋯,(N−1)2,N2]T,可以由最小二乘法求出
ϕ
^
k
\hat{\phi}_k
ϕ^k:
min
c
k
∥
p
c
k
−
g
^
k
∥
F
2
\min_{c_k}\parallel pc_k-\hat{g}_k\parallel_\mathrm{F}^2
ckmin∥pck−g^k∥F2其中,
g
^
k
=
angle
[
a
2
′
(
ϕ
k
)
]
,
p
=
[
1
N
+
1
,
q
]
,
c
k
=
[
c
k
0
,
ϕ
^
k
]
T
∈
R
2
×
1
,
c
k
0
是最小二乘法的损失,
ϕ
^
k
为待估计的参数,
c
k
的解为:
\hat{g}_{k}=\text{angle}\bigg[ \boldsymbol{a}_{2}^{\prime} (\phi_{k}) \bigg],\quad\boldsymbol{p}=[1_{N+1},\boldsymbol{q}] ,\quad\boldsymbol{c}_{k}=[c_{k0},\hat{\phi}_{k} ]^{\mathrm{T}}\in\mathbb{R}^{2\times1},c_{k0}是最小二乘法的损失,\hat{\phi}_{k}为待估计的参数,\boldsymbol{c}_{k}的解为:
g^k=angle[a2′(ϕk)],p=[1N+1,q],ck=[ck0,ϕ^k]T∈R2×1,ck0是最小二乘法的损失,ϕ^k为待估计的参数,ck的解为:
c
k
=
(
p
T
p
)
−
1
p
T
g
^
k
\boldsymbol{c_k}=(p^\mathrm{T}p)^{-1}p^\mathrm{T}\hat{g}_k
ck=(pTp)−1pTg^k
上述过程中,角度和距离参数是自动配对的,最终可以得到角度的估计值
θ
^
k
\hat{\theta}_{k}
θ^k和距离的估计值
r
^
k
\hat{r}_{k}
r^k
θ
^
k
=
−
arcsin
(
γ
^
k
λ
k
2
π
d
)
r
^
k
=
π
d
2
λ
k
ϕ
^
k
cos
2
θ
^
k
\hat{\theta}_{k}=-\arcsin\left(\frac{\hat{\gamma}_k\lambda_k}{2\pi d}\right)\\\hat{r}_{k}=\frac{\pi d^2}{\lambda_k\hat{\phi}_k}\cos^2\hat{\theta}_k
θ^k=−arcsin(2πdγ^kλk)r^k=λkϕ^kπd2cos2θ^k
与上文2d-MUSIC算法相同,使用同样参数的信号,利用2个近场非相干信号源进行仿真,其距离参考阵元的距离
r
k
r_k
rk和到达角
θ
k
\theta_k
θk分别为
(
20
°
,
1.85
λ
)
\left( 20°,1.85\lambda \right)
(20°,1.85λ)、
(
40
°
,
4.8
λ
)
\left( 40°,4.8\lambda \right)
(40°,4.8λ),阵元间距
d
=
λ
/
4
d=\lambda/4
d=λ/4,信噪比
S
N
R
=
20
d
B
SNR=20dB
SNR=20dB,单边阵元数
N
=
4
N=4
N=4,快拍数
K
=
2000
K=2000
K=2000。
matlab代码如下:
clc
clear all
close all
%%%%%%%%%降维MUSIC算法%%%%%%%%%
derad = pi/180; %角度->弧度
M = 2; % 信源数目
lamta=1; %波长1m
Nx =4; % 单边阵元个数
Mx=2*Nx+1; %总阵元个数
d =lamta/4; % 阵元间距
D = (Mx-1)*d; %阵列孔径
distance_left = 0.62*sqrt((D.^3)/lamta);%距离搜索的下界
distance_right = 2*(D.^2)/lamta;%距离搜索的上界
xita_k = [20 40].*derad; % x轴待估计角度
snr =20; % 信噪比
K =2000; % 快拍数
r_k=[1.85*lamta,4.8*lamta]; %信号源距离
m=-Nx:1:Nx;%x轴入射点位
%%%%%%构建信号模型%%%%%
gama_k1=-2*pi*d.*sin(xita_k)./lamta;
gama_k1=gama_k1';
phi_k=pi*d*d.*cos(xita_k).*cos(xita_k)./(r_k.*lamta);
phi_k=phi_k';
A_x=exp(1i*(gama_k1.*m+phi_k.*m.*m));
S=randn(M,K);
X1=A_x'*S;
X1=awgn(X1,snr,'measured'); %将白色高斯噪声添加到信号中
%%%%%获取信号噪声子空间%%%%
Rxx= X1*X1'/K;%获取接收信号的协方差矩阵
% 特征值分解
[EV,D]=eig(Rxx); %特征值分解
EVA=diag(D)'; %将特征值矩阵对角线提取并转为一行
[EVA,I]=sort(EVA); %将特征值排序 从小到大
EV=fliplr(EV(:,I)); % 对应特征矢量排序
Un=EV(:,M+1:end);%获取x轴接收数据的噪声子空间
num_distance=0;
n=-Nx:1:0;
for iang=1:360
angleall(iang)=(iang-180)/2;
gama_k=-2*pi*d.*sind(angleall(iang))./lamta;
gama_k=gama_k';
A1_x=zeros(2*Nx+1,Nx+1);
for k=1:1:Nx+1
A1_x(k,k)=exp(1i*(k-Nx-1).*gama_k);
end
for k=1:1:Nx
A1_x(2*Nx+2-k,k)=exp(1i*(Nx+1-k).*gama_k);
end
A2_x=exp(1i*phi_k.*n.*n);
A2_x=A2_x';
Q=A1_x'*Un*Un'*A1_x;
V=A2_x'*Q*A2_x;
e1=zeros(length(n)-1,1);
e1=[e1;1];
gama_hateqe1=e1'*inv(Q)*e1;
gama_hateqe(iang)=gama_hateqe1;
gama_hateqe=abs(gama_hateqe);
%P_search(num_distance,iang)=1/abs(A_x'*Un*Un'*A_x);
end
[pks locs]=findpeaks(gama_hateqe);
[pks_max2 locs_max2i]=maxk(pks,2);
loc_max2=locs(locs_max2i);
gama_hat=-2*pi*d.*sind(angleall(loc_max2))./lamta;
A1_x_pie1=zeros(2*Nx+1,Nx+1);
for k=1:1:Nx+1
A1_x_pie1(k,k)=exp(1i*(k-Nx-1)*gama_hat(1));
end
for k=1:1:Nx
A1_x_pie1(2*Nx+2-k,k)=exp(1i*(Nx+1-k)*gama_hat(1));
end
Q_pie1=A1_x_pie1'*Un*Un'*A1_x_pie1;
A2_x_pie1=inv(Q_pie1)*e1/(e1'*inv(Q_pie1)*e1);
A2_x_pie1=A2_x_pie1(end:-1:1);%翻转矩阵180度
g_hat1=angle(A2_x_pie1);
g_hat1=fliplr(n)'.*fliplr(n)'*g_hat1(2);
A1_x_pie2=zeros(2*Nx+1,Nx+1);
for k=1:1:Nx+1
A1_x_pie2(k,k)=exp(1i*(k-Nx-1)*gama_hat(2));
end
for k=1:1:Nx
A1_x_pie2(2*Nx+2-k,k)=exp(1i*(Nx+1-k)*gama_hat(2));
end
Q_pie2=A1_x_pie2'*Un*Un'*A1_x_pie2;
A2_x_pie2=(inv(Q_pie2)*e1)/(e1'*inv(Q_pie2)*e1);
A2_x_pie2=A2_x_pie2(end:-1:1);
g_hat2=angle(A2_x_pie2);
g_hat2=fliplr(n)'.*fliplr(n)'*g_hat2(2);
p=ones(Nx+1,1);
q=[];
for i=1:1:Nx+1
q(i)=(i-1)^2;
end
q=q';
p=[p,q];
ck1=inv(p'*p)*p'*g_hat1;
ck2=inv(p'*p)*p'*g_hat2;
phi1=-ck1(2);
phi2=-ck2(2);
%a=gama_hat(1)*lamta/(2*pi*d);
%角度估计值
theta1=-(-asind(gama_hat(1)*lamta/(2*pi*d)))
theta2=-(-asind(gama_hat(2)*lamta/(2*pi*d)))
%距离估计值
r1=pi*d^2/(lamta*phi1)*(cosd(theta1)^2)
r2=pi*d^2/(lamta*phi2)*(cosd(theta2)^2)
运行结果中,角度估计值如下图所示:
距离估计值如下图所示:
距离估计值还是有一定的误差,该方法采用一维搜索的方式,精度不如二维搜索,但是大大提高了算法的实时性,损失了一定的估计精度。