赞
踩
DOA即direction of arrival,包括目标到达观测站的方位角和仰角
下图所示为在三维空间直角坐标系下,DOA定位示意图
利用M个观测站进行定位
假设第i个观测站的坐标向量为:
s
i
o
=
[
s
i
x
o
,
s
i
y
o
,
s
i
z
o
]
T
\ \boldsymbol s^o _i =[s^o_{ix},s^o_{iy},s^o_{iz}]^T
sio=[sixo,siyo,sizo]T ,目标的位置向量为:
u
o
=
[
u
x
o
,
u
y
o
,
u
z
o
]
T
\ \boldsymbol u^o =[u^o_{x},u^o_{y},u^o_{z}]^T
uo=[uxo,uyo,uzo]T 。因此,方位角和仰角可以由
θ
i
o
=
a
r
c
t
a
n
(
u
y
o
−
s
i
y
o
u
x
o
−
s
i
x
o
)
\theta^o_i =arctan \left( \frac{u^o_{y}-s^o_{iy}} {{u^o_{x}-s^o_{ix}}} \right)
θio=arctan(uxo−sixouyo−siyo)
ϕ
i
o
=
a
r
c
t
a
n
(
u
z
o
−
s
i
z
o
(
u
x
o
−
s
i
x
o
)
2
+
(
u
y
o
−
s
i
y
o
)
2
)
)
\phi ^o_i =arctan \left( \frac{u^o_{z}-s^o_{iz}} {\sqrt{(u^o_{x}-s^o_{ix})^2+(u^o_{y}-s^o_{iy})^2}} ) \right)
ϕio=arctan
(uxo−sixo)2+(uyo−siyo)2
uzo−sizo)
其中
θ
i
o
\theta^o_i
θio ,
ϕ
i
o
\phi ^o_i
ϕio分别表示目标到达第i个观测站的方位角和仰角的真实值。由于在实际中我们仅能够获得带有测量噪声的测量值,因此建立如下观测模型:
θ
=
[
θ
1
o
,
θ
2
o
,
.
.
.
,
θ
M
o
]
T
+
[
δ
θ
1
,
δ
θ
2
,
.
.
.
,
δ
θ
M
]
T
=
θ
o
+
n
1
\boldsymbol \theta =[\theta^o_1,\theta^o_2,...,\theta^o_M]^T+[\delta \theta_1,\delta \theta_2,...,\delta \theta_M]^T=\boldsymbol \theta^o+n_1
θ=[θ1o,θ2o,...,θMo]T+[δθ1,δθ2,...,δθM]T=θo+n1
ϕ
=
[
ϕ
1
o
,
ϕ
2
o
,
.
.
.
,
ϕ
M
o
]
T
+
[
δ
ϕ
1
,
δ
ϕ
2
,
.
.
.
,
δ
ϕ
M
]
T
=
ϕ
o
+
n
2
\boldsymbol \phi =[\phi ^o_1,\phi ^o_2,...,\phi ^o_M]^T+[\delta \phi _1,\delta \phi _2,...,\delta \phi _M]^T=\boldsymbol \phi^o+n_2
ϕ=[ϕ1o,ϕ2o,...,ϕMo]T+[δϕ1,δϕ2,...,δϕM]T=ϕo+n2
θ
o
\theta^o
θo和
ϕ
o
\phi^o
ϕo分别表示分别表示方位角和仰角的真实值向量。
n
1
\boldsymbol n_1
n1,
n
2
\boldsymbol n_2
n2为对应的噪声向量,其均服从零均值高斯分布,协方差矩阵分别为
Q
1
\boldsymbol Q_1
Q1,
Q
2
\boldsymbol Q_2
Q2。
因此可以得到DOA观测向量为:
z
=
z
o
+
n
=
[
(
θ
o
)
T
,
(
ϕ
o
)
T
]
T
+
[
n
1
T
,
n
2
T
]
T
\boldsymbol z =\boldsymbol z^o+\boldsymbol n=[(\boldsymbol \theta^o)^T,(\boldsymbol \phi^o)^T]^T+[\boldsymbol n^T_1,\boldsymbol n^T_2]^T
z=zo+n=[(θo)T,(ϕo)T]T+[n1T,n2T]T
其中
n
n
n的协方差矩阵为
Q
=
b
l
k
d
i
a
g
(
Q
1
,
Q
2
)
\boldsymbol Q=blkdiag(\boldsymbol Q_1,\boldsymbol Q_2)
Q=blkdiag(Q1,Q2)。
位置参数向量为
u
o
=
[
u
x
o
,
u
y
o
,
u
z
o
]
T
\ \boldsymbol u^o =[u^o_{x},u^o_{y},u^o_{z}]^T
uo=[uxo,uyo,uzo]T,测量向量为
z
\boldsymbol z
z。因此
z
\boldsymbol z
z关于
u
o
\ \boldsymbol u^o
uo的对数似然函数为:
l
n
(
p
(
z
∣
u
o
)
)
=
κ
−
(
1
/
2
)
(
z
−
z
o
)
T
Q
−
1
(
z
−
z
o
)
ln(p(\boldsymbol z|\boldsymbol u^o))=\kappa-(1/2)(\boldsymbol z-\boldsymbol z^o)^T\boldsymbol Q^{-1}(\boldsymbol z-\boldsymbol z^o)
ln(p(z∣uo))=κ−(1/2)(z−zo)TQ−1(z−zo)
其中
κ
\kappa
κ表示常数项
因此,Fisher信息矩阵可以表示为:
F
=
E
(
(
∂
l
n
(
p
(
z
∣
u
o
)
)
∂
(
u
o
)
T
)
(
∂
l
n
(
p
(
z
∣
u
o
)
)
∂
(
u
o
)
T
)
T
)
=
(
∂
z
o
∂
(
u
o
)
T
)
Q
−
1
(
∂
z
o
∂
(
u
o
)
T
)
T
F=E \left( \left( \frac {\partial ln(p(\boldsymbol z|\boldsymbol u^o))}{\partial (\boldsymbol u^o)^T} \right) \left( \frac {\partial ln(p(\boldsymbol z|\boldsymbol u^o))}{\partial (\boldsymbol u^o)^T} \right)^T \right)= \left( \frac {\partial \boldsymbol z^o}{\partial (\boldsymbol u^o)^T} \right) \boldsymbol Q^{-1} \left( \frac {\partial \boldsymbol z^o}{\partial (\boldsymbol u^o)^T} \right)^T
F=E((∂(uo)T∂ln(p(z∣uo)))(∂(uo)T∂ln(p(z∣uo)))T)=(∂(uo)T∂zo)Q−1(∂(uo)T∂zo)T
CRLB为Fisher矩阵的逆,因此CRLB表示为:
C
R
L
B
=
(
(
∂
z
o
∂
(
u
o
)
T
)
Q
−
1
(
∂
z
o
∂
(
u
o
)
T
)
T
)
−
1
CRLB=\left( \left( \frac {\partial \boldsymbol z^o}{\partial (\boldsymbol u^o)^T} \right) \boldsymbol Q^{-1} \left( \frac {\partial \boldsymbol z^o}{\partial (\boldsymbol u^o)^T} \right)^T \right)^{-1}
CRLB=((∂(uo)T∂zo)Q−1(∂(uo)T∂zo)T)−1
clc; close all; clear all; %% % 测向站数量 M=6; % 目标数量 N=1; % 6个测向站的位置坐标,单位米 s1=[1200 1800 200]; s2=[-1500 -800 150]; s3=[1400 -600 -200]; s4=[-800 1200 120]; s5=[1300 -800 -250]; s6=[-1000 1600 -150]; % 目标位置,单位米 u1=[8000 6800 3000]; %% for i=1:M % 组合字符串,得到接收站的变量名,以便循环 str_si=['s',mat2str(i)]; % 返回变量名对应的值 si_value=eval(str_si); % 测向站到目标的距离 distance(i)=sqrt(sum((u1-si_value).^2)); % 测向站到目标的平均距离 distance_average=sum(distance)/M; % 方位角真实值 theta0(i)=atan((u1(1)-si_value(1))/(u1(2)-si_value(2))); % 仰角真实值 beta0(i)=atan((u1(3)-si_value(3))/(sqrt((u1(1)-si_value(1))^2+(u1(2)-si_value(2))^2))); end %% G0=zeros(2*M,3); h0=zeros(2*M,1); for i=1:1:M G0(2*(i-1)+1,:)=[cos(theta0(i)),-sin(theta0(i)),0]; G0(2*(i-1)+2,:)=[sin(theta0(i))*sin(beta0(i)),cos(theta0(i))*sin(beta0(i)),-cos(beta0(i))]; % 组合字符串,得到接收站的变量名,以便循环 str_si=['s',mat2str(i)]; % 返回变量名对应的值 si_value=eval(str_si); h0(2*(i-1)+1,:)=si_value(1)*cos(theta0(i))-si_value(2)*sin(theta0(i)); h0(2*(i-1)+2,:)=si_value(1)*sin(theta0(i))*sin(beta0(i))+si_value(2)*cos(theta0(i))*sin(beta0(i))-si_value(3)*cos(beta0(i)); end result=G0*u1.'-h0; %% % 误差的标准差,弧度 deta_theta_more=(0.1:0.1:1).*pi/180; big_loop_numer=length(deta_theta_more); % 每一个测向标准差下的CRLB CRLB=zeros(length(deta_theta_more)); %% F_s_t0=zeros(2*M,3); for i=1:M % 组合字符串,得到接收站的变量名,以便循环 str_si=['s',mat2str(i)]; % 返回变量名对应的值 si_value=eval(str_si); F_s_t0(2*i-1,1)=cos(theta0(i))/sqrt(sum((u1-si_value).^2)); F_s_t0(2*i-1,2)=-sin(theta0(i))/sqrt(sum((u1-si_value).^2)); F_s_t0(2*i,1)=-(sin(theta0(i))*sin(beta0(i)))/sqrt(sum((u1-si_value).^2)); F_s_t0(2*i,2)=-(cos(theta0(i))*sin(beta0(i)))/sqrt(sum((u1-si_value).^2)); F_s_t0(2*i,3)=cos(beta0(i))/sqrt(sum((u1-si_value).^2)); end %% for big_loop=1:length(deta_theta_more) deta_theta=deta_theta_more(big_loop); cov_z=deta_theta^2*eye(2*M); % CRB界 CRLB_sum(big_loop)=sqrt(trace((F_s_t0'*inv((cov_z))*F_s_t0)^-1)); end figure plot(deta_theta_more./(pi/180),CRLB_sum,'b.-'); xlabel('角度误差(°)') ylabel('RMSE\m') function [distance]=osjl(object,source) % 输入均为列向量 distance=sqrt(sum((object-source).^2)); end
仿真结果如下所示:
欢迎私信交流无源定位、阵列信号处理
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。