TDOA定位的CRLB
TDOA观测模型
在三维直角坐标系中,考虑利用M个观测站对一个目标进行定位。
第i个观测站位置向量记为
s
i
o
=
[
s
x
,
i
o
,
s
y
,
i
o
,
s
z
,
i
o
]
T
,
1
≤
i
≤
M
\boldsymbol{s}_i^o=[s_{x,i}^o,s_{y,i}^o,s_{z,i}^o]^T,1\leq i \leq M
sio=[sx,io,sy,io,sz,io]T,1≤i≤M
目标位置向量记为
u
o
=
[
u
x
o
,
u
y
o
,
u
z
o
]
T
\boldsymbol{u}^o=[u_{x}^o,u_{y}^o,u_{z}^o]^T
uo=[uxo,uyo,uzo]T
将第一个观测站作为TDOA测量的参考观测站,则目标到达其余观测站和参考观测站之间的TDOA可以表示为:
τ
j
1
o
=
∣
∣
u
o
−
s
j
o
∣
∣
2
c
−
∣
∣
u
o
−
s
1
o
∣
∣
2
c
,
2
≤
j
≤
M
\tau_{j1}^o= \frac{||\boldsymbol{u}^o-\boldsymbol{s}_j^o||_2}{c}- \frac{||\boldsymbol{u}^o-\boldsymbol{s}_1^o||_2}{c} , 2\leq j \leq M
τj1o=c∣∣uo−sjo∣∣2−c∣∣uo−s1o∣∣2,2≤j≤M
其中c表示信号传播速度,通常是已知的,因此TDOA可以转换为到达距离差(Range Difference Of Arrival,RDOA):
r
j
1
o
=
∣
∣
u
o
−
s
j
o
∣
∣
2
−
∣
∣
u
o
−
s
1
o
∣
∣
2
,
2
≤
j
≤
M
r_{j1}^o= ||\boldsymbol{u}^o-\boldsymbol{s}_j^o||_2 -||\boldsymbol{u}^o-\boldsymbol{s}_1^o||_2 , 2\leq j \leq M
rj1o=∣∣uo−sjo∣∣2−∣∣uo−s1o∣∣2,2≤j≤M
因此建立RDOA观测模型为:
r
=
r
o
+
n
r
=
[
r
21
o
,
r
31
o
,
.
.
.
,
r
M
1
o
]
T
+
[
δ
r
21
,
δ
r
31
,
.
.
.
,
δ
r
M
1
]
T
\boldsymbol{r}= \boldsymbol{r^o}+\boldsymbol{n}_{\boldsymbol{r}} =[r_{21}^o,r_{31}^o,...,r_{M1}^o]^T +[\delta{r_{21}},\delta{r_{31}},...,\delta{r_{M1}}]^T
r=ro+nr=[r21o,r31o,...,rM1o]T+[δr21,δr31,...,δrM1]T
n
r
\boldsymbol{n}_{\boldsymbol{r}}
nr表示测量噪声向量,协方差矩阵表示为
Q
r
\boldsymbol{Q}_{\boldsymbol{r}}
Qr。
TDOA定位CRLB
未知参数向量为
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,测量向量为
r
\boldsymbol{r}
r。因此
r
\boldsymbol{r}
r关于
u
o
\boldsymbol{u^o}
uo的对数似然函数为:
l
n
(
p
(
r
∣
u
o
)
)
=
κ
−
(
1
/
2
)
(
r
−
r
o
)
T
Q
r
−
1
(
r
−
r
o
)
ln(p(\boldsymbol{r}|\boldsymbol{u^o})) =\kappa -(1/2)(\boldsymbol{r}-\boldsymbol{r}^o)^T \boldsymbol{Q}_{\boldsymbol{r}}^{-1} (\boldsymbol{r}-\boldsymbol{r}^o)
ln(p(r∣uo))=κ−(1/2)(r−ro)TQr−1(r−ro)
其中
κ
\kappa
κ表示常数项
则CRLB表示为:
C
R
L
B
=
(
(
∂
r
o
∂
(
u
o
)
T
)
Q
r
−
1
(
∂
r
o
∂
(
u
o
)
T
)
T
)
−
1
CRLB=\left( \left( \frac {\partial \boldsymbol{r}^o}{\partial (\boldsymbol{u^o})^T} \right) \boldsymbol{Q}_{\boldsymbol{r}}^{-1} \left( \frac {\partial \boldsymbol{r}^o}{\partial (\boldsymbol{u^o})^T} \right)^T \right)^{-1}
CRLB=((∂(uo)T∂ro)Qr−1(∂(uo)T∂ro)T)−1
matlab仿真
clc;
close all;
clear all;
%%
% 测向站数量
M=6;
% 目标数量
N=1;
% 6个测向站的位置坐标,单位米
% s1=[300 -100 150];
% s2=[-400 150 200];
% s3=[300 500 -300];
% s4=[350 200 100];
% s5=[-100 -100 -100];
% s6=[200 -300 -200];
s1=[1200 1800 200];
s2=[-1500 -800 150];
s3=[1400 -600 -200];
s4=[-800 1200 120];
s5=[1300 -800 -250];
s6=[-1000 1600 -150];
% 目标位置,单位米
s_all=[s1;s2;s3;s4;s5;s6];
u=[2200 1800 2000].';
u=[8000 6800 3000].';
%%
ri0=zeros(M,1);
for i=1:1:M
ri0(i,1)=osjl(u,s_all(i,:).');
end
rij0=ri0-ri0(1);
%%
Gt0=zeros(M-1,4);
ht0=zeros(M-1,1);
for i=2:1:M
Gt0(i-1,:)=-1*[(s_all(i,:)-s_all(1,:)),rij0(i,1)];
ht0(i-1,1)=0.5*((rij0(i,1))^2-s_all(i,:)*s_all(i,:).'+s_all(1,:)*s_all(1,:).');
end
result11=ht0-Gt0*[u;ri0(1)];
%%
% 距离差对目标位置的导数
r_diff_u=zeros(M-1,3);
for i=2:1:M
% 距离差对目标位置的导数
ui_s1=u.'-s_all(1,:);
ui_si=u.'-s_all(i,:);
r_diff_u(i-1,:)=ui_si/osjl(u.',s_all(i,:))-ui_s1/osjl(u.',s_all(1,:));
end
%%
r_noise_power=0.2:0.2:2;
big_loop_number=length(r_noise_power);
iter_number=zeros(big_loop_number,small_loop_number);
%%
start_time=clock;
for big_loop=1:1:big_loop_number
cov_r=r_noise_power(big_loop)^2*(eye(M-1)+ones(M-1,M-1))/2;
%%
F=r_diff_u.'*inv(cov_r)*r_diff_u;
CRLB_u(big_loop)=sqrt(trace(inv(F)));
end
figure(1)
plot(r_noise_power,CRLB_u,'r.-')
xlabel('TDOA噪声(m)')
ylabel('RMSE(m)')
%%
function [distance]=osjl(object,source)
% 输入均为列向量
distance=sqrt(sum((object-source).^2));
end