存在站址误差的DOA定位CRLB

站址误差下的DOA观测模型

在实际过程中,观测站可能处于运动状态,从而获得的观测站位置是带有误差的,将带有误差的观测站位置建模为: s i = s i o + n s i = [ s i , x o , s i , y o , s i , z o ] T + [ δ s i , x , δ s i , y , δ s i , z ] T \boldsymbol{s_i}=\boldsymbol{s_i^o}+\boldsymbol{n_{\boldsymbol{s}_i}}=[s_{i,x}^o,s_{i,y}^o,s_{i,z}^o]^T+[\delta s_{i,x},\delta s_{i,y},\delta s_{i,z}]^T si=sio+nsi=[si,xo,si,yo,si,zo]T+[δsi,x,δsi,y,δsi,z]T。其中 s i o \boldsymbol{s_i^o} sio表示观测站真实位置向量, n s i \boldsymbol{n_{\boldsymbol{s}_i}} nsi表示随机误差。则将所有观测站向量组合得到:
s = s o + n s = [ ( s 1 o ) T , ( s 2 o ) T , . . . , ( s M o ) T ] T + [ n s 1 T , n s 2 T , . . . , n s M T ] T \boldsymbol{s} =\boldsymbol{s}^o+\boldsymbol{n}_{\boldsymbol{s}} =[(\boldsymbol{s_1^o})^T,(\boldsymbol{s_2^o})^T,...,(\boldsymbol{s_M^o})^T]^T +[\boldsymbol{n^T_{\boldsymbol{s}_1}},\boldsymbol{n^T_{\boldsymbol{s}_2}},...,\boldsymbol{n^T_{\boldsymbol{s}_M}}]^T s=so+ns=[(s1o)T,(s2o)T,...,(sMo)T]T+[ns1T,ns2T,...,nsMT]T
n s \boldsymbol{n}_{\boldsymbol{s}} ns的协方差矩阵表示为 Q s \boldsymbol{Q}_{\boldsymbol{s}} Qs

站址误差下的DOA定位的CRLB

存在站址误差时的未知向量为 κ o = [ ( u o ) T , ( s o ) T ] T \boldsymbol{\kappa}^o=[(\boldsymbol{u}^o)^T,(\boldsymbol{s}^o)^T]^T κo=[(uo)T,(so)T]T,测量向量为角度测量值,记为 z \boldsymbol{z} z。则此时对数似然函数表示为:
l n ( p ( z ∣ κ o ) ) = κ − ( 1 / 2 ) ( z − z o ) T Q − 1 ( z − z o ) − ( 1 / 2 ) ( s − s o ) T Q s − 1 ( s − s o ) ln(p(\boldsymbol{z}|\boldsymbol{\kappa}^o)) =\kappa-(1/2)(\boldsymbol{z}-\boldsymbol{z}^o)^TQ^{-1}(\boldsymbol{z}-\boldsymbol{z}^o) -(1/2)(\boldsymbol{s}-\boldsymbol{s}^o)^TQ_{\boldsymbol{s}}^{-1}(\boldsymbol{s}-\boldsymbol{s}^o) ln(p(zκo))=κ(1/2)(zzo)TQ1(zzo)(1/2)(sso)TQs1(sso)
Fisher信息矩阵表示为:
F = [ F 1 F 2 F 2 T F 3 ] \boldsymbol{F}= \begin{gathered} \begin{bmatrix} \boldsymbol{F}_1 & \boldsymbol{F}_2 \\ \boldsymbol{F}_2^T & \boldsymbol{F}_3 \end{bmatrix} \quad \end{gathered} F=[F1F2TF2F3]
其中:
{ F 1 = ( ( ∂ z o ∂ ( u o ) T ) Q − 1 ( ∂ z o ∂ ( u o ) T ) T ) F 2 = ( ( ∂ z o ∂ ( u o ) T ) Q − 1 ( ∂ z o ∂ ( s o ) T ) T ) F 3 = ( ( ∂ z o ∂ ( s o ) T ) Q − 1 ( ∂ z o ∂ ( s o ) T ) T ) + Q s − 1 \begin{cases} \boldsymbol{F}_1 =\left( \left(\frac {\partial \boldsymbol{z^o}}{\partial (\boldsymbol{u^o})^T}\right) Q^{-1} \left(\frac {\partial \boldsymbol{z^o}}{\partial (\boldsymbol{u^o})^T}\right)^T \right)\\ \boldsymbol{F}_2 =\left( \left(\frac {\partial \boldsymbol{z^o}}{\partial (\boldsymbol{u^o})^T}\right) Q^{-1} \left(\frac {\partial \boldsymbol{z^o}}{\partial (\boldsymbol{s^o})^T}\right)^T \right)\\ \boldsymbol{F}_3 =\left( \left(\frac {\partial \boldsymbol{z^o}}{\partial (\boldsymbol{s^o})^T}\right) Q^{-1} \left(\frac {\partial \boldsymbol{z^o}}{\partial (\boldsymbol{s^o})^T}\right)^T \right)+\boldsymbol{Q}^{-1}_{\boldsymbol{s}}\\ \end{cases} F1=(((uo)Tzo)Q1((uo)Tzo)T)F2=(((uo)Tzo)Q1((so)Tzo)T)F3=(((so)Tzo)Q1((so)Tzo)T)+Qs1

存在站址误差下的DOA定位CRLB表示为:
C R L B = [ X 1 X 2 X 2 T X 3 ] \boldsymbol{CRLB}= \begin{gathered} \begin{bmatrix} \boldsymbol{X}_1 & \boldsymbol{X}_2 \\ \boldsymbol{X}_2^T & \boldsymbol{X}_3 \end{bmatrix} \quad \end{gathered} CRLB=[X1X2TX2X3]
其中:
C R L B ( u o ) = X 1 = ( F 1 − F 2 F 3 − 1 F 2 T ) − 1 = F 1 − 1 + F 1 − 1 F 2 ( F 3 − F 2 T F 1 − 1 F 2 ) − 1 F 2 T F 1 − 1 \boldsymbol{CRLB}(\boldsymbol{u}^o)=\boldsymbol{X}_1 =\left(\boldsymbol{F}_1-\boldsymbol{F}_2\boldsymbol{F}_3^{-1}\boldsymbol{F}_2^T \right)^{-1} =\boldsymbol{F}_1^{-1}+\boldsymbol{F}_1^{-1}\boldsymbol{F}_2 \left(\boldsymbol{F}_3-\boldsymbol{F}_2^T\boldsymbol{F}_1^{-1}\boldsymbol{F}_2 \right)^{-1}\boldsymbol{F}_2^T\boldsymbol{F}_1^{-1} CRLB(uo)=X1=(F1F2F31F2T)1=F11+F11F2(F3F2TF11F2)1F2TF11

C R L B ( s o ) = X 3 = ( F 3 − F 2 F 1 − 1 F 2 T ) − 1 = F 3 − 1 + F 3 − 1 F 2 ( F 1 − F 2 T F 3 − 1 F 2 ) − 1 F 2 T F 3 − 1 \boldsymbol{CRLB}(\boldsymbol{s}^o)=\boldsymbol{X}_3 =\left(\boldsymbol{F}_3-\boldsymbol{F}_2\boldsymbol{F}_1^{-1}\boldsymbol{F}_2^T \right)^{-1} =\boldsymbol{F}_3^{-1}+\boldsymbol{F}_3^{-1}\boldsymbol{F}_2 \left(\boldsymbol{F}_1-\boldsymbol{F}_2^T\boldsymbol{F}_3^{-1}\boldsymbol{F}_2 \right)^{-1}\boldsymbol{F}_2^T\boldsymbol{F}_3^{-1} CRLB(so)=X3=(F3F2F11F2T)1=F31+F31F2(F1F2TF31F2)1F2TF31

matlab仿真

%CRLB随角度误差变化结果
clc;
close all;
clear all;
% 测向站数量
M=6;
% 目标数量
N=1;
%观测站位置
s1=[1500 -1900 1400].';
s2=[-1600 2000 1700].';
s3=[1800 -1500 -1600].';
s4=[-1200 1400 -2000].';
s5=[1700 1600 2000].';
s6=[-1800 -1400 -1800].';
for i=1:1:M
    str_si=['s',mat2str(i)];
    si_value=eval(str_si);
    s_true(3*(i-1)+1:3*(i-1)+3,1)=si_value;
end
% 目标位置
u1=[4000 4000 3000].';
for i=1:1:N
    str_ui=['u',mat2str(i)];
    ui_value=eval(str_ui);
    u_true(3*(i-1)+1:3*(i-1)+3,1)=ui_value;
end
z_error_more(1,:)=10.^[0:0.1:1.5];
z_error_more(2,:)=10.^[zeros(length(z_error_more),1)];
deta_more=[0.001,0.001,1,10];
% 站址误差功率不一样
power_s_error=[1 1 1 3 3 3 5 5 5 10 10 10 5 5 5 3 3 3].';
%% 存在站址误差
%% CRLB
for i=1:1:M
    eval(['s',mat2str(i),'(:,1)',' = ','s_true(3*(i-1)+1:3*(i-1)+3,1)',';']);
end
for i=1:1:N
    eval(['u',mat2str(i),'(:,1)',' = ','u_true(3*(i-1)+1:3*(i-1)+3,1)',';']);
end
%%     对目标位置的导数
% 方位角、仰角对目标位置的导数
diff_theta_ui=zeros(M,3,N);
diff_beta_ui=zeros(M,3,N);
%方位角、仰角对目标观测站的导数
diff_theta_si=zeros(M,3*M,N);
diff_beta_si=zeros(M,3*M,N);
%%
for j=1:1:N
    for i=1:1:M
        str_si=['s',mat2str(i)];
        si_value=eval(str_si);
        str_ui=['u',mat2str(j)];
        ui_value=eval(str_ui);
        
        ui_si=ui_value-si_value;
        ai2=sqrt(ui_si(1)^2+ui_si(2)^2);
        %     方位角对目标位置的导数
        diff_theta_ui_1=-ui_si(2)/ai2^2;
        diff_theta_ui_2=ui_si(1)/ai2^2;
        diff_theta_ui(i,:,j)=[diff_theta_ui_1,diff_theta_ui_2,0];
        %     仰角对目标位置的导数
        diff_beta_ui_1=-ui_si(1)*ui_si(3)/ai2/(osjl(ui_value,si_value))^2;
        diff_beta_ui_2=-ui_si(2)*ui_si(3)/ai2/(osjl(ui_value,si_value))^2;
        diff_beta_ui_3=ai2/(osjl(ui_value,si_value))^2;
        diff_beta_ui(i,:,j)=[diff_beta_ui_1,diff_beta_ui_2,diff_beta_ui_3];
        
        % 方位角、仰角对目标观测站位置的导数
        diff_theta_si(i,3*(i-1)+1:3*(i-1)+3,j)=-diff_theta_ui(i,:,j);
        diff_beta_si(i,3*(i-1)+1:3*(i-1)+3,j)=-diff_beta_ui(i,:,j);
    end
end

F_u1=[diff_theta_ui(:,:,1);diff_beta_ui(:,:,1)];
F_u=blkdiag(F_u1);

F_s1=[diff_theta_si(:,:,1);diff_beta_si(:,:,1)];
F_s=[F_s1.'].';

for big_big_loop=1:1:length(z_error_more)
    %方位角
    deta_theta=deta_more(1)*z_error_more(1,big_big_loop);
    R_theta=deta_theta^2*eye((M),(M));
    %仰角
    deta_beta=deta_more(2)*z_error_more(1,big_big_loop);
    R_beta=deta_beta^2*eye((M),(M));
    
    Rn_a1=blkdiag(R_theta,R_beta);
    Rn_a=blkdiag(Rn_a1);
    %站址误差
    deta_s=deta_more(4)*z_error_more(2,big_big_loop);
    power_s_error=[1 1 1 3 3 3 5 5 5 10 10 10 5 5 5 3 3 3].';
    Rs_a=deta_s^2*diag(power_s_error);
    %     观测站定位的先验均方根误差
    prior_cov_s(big_big_loop,1)=sqrt(trace(Rs_a));
    
    F1=F_u.'*inv(Rn_a)*F_u;
    F2=F_u.'*inv(Rn_a)*F_s;
    F3=F_s.'*inv(Rn_a)*F_s+inv(Rs_a);
    
    CRLB=inv([F1,F2;F2.',F3]);
    a=CRLB(1,1)+CRLB(2,2)+CRLB(3,3);
    
    crb_source1(big_big_loop,1)=sqrt(a);
    CRLB_sensor(big_big_loop,1)=sqrt(trace(CRLB)-(a));
end
CRLB_u_sensor_erros=[crb_source1];
%% 不存在站址误差
for big_big_loop=1:1:length(z_error_more)
    %方位角
    deta_theta=deta_more(1)*z_error_more(1,big_big_loop);
    R_theta=deta_theta^2*eye((M),(M));
    %仰角
    deta_beta=deta_more(2)*z_error_more(1,big_big_loop);
    R_beta=deta_beta^2*eye((M),(M));
    
    Rn_a1=blkdiag(R_theta,R_beta);
    Rn_a=blkdiag(Rn_a1);
    %站址误差
    deta_s=deta_more(4)*z_error_more(2,big_big_loop);
    power_s_error=[1 1 1 3 3 3 5 5 5 10 10 10 5 5 5 3 3 3].';
    Rs_a=deta_s^2*diag(power_s_error);
    %     观测站定位的先验均方根误差
    prior_cov_s(big_big_loop,1)=sqrt(trace(Rs_a));
    
    F1=F_u.'*inv(Rn_a)*F_u;
    
    CRLB=inv([F1]);
    a=CRLB(1,1)+CRLB(2,2)+CRLB(3,3);
    
    crb_source1(big_big_loop,1)=sqrt(a);
    CRLB_sensor(big_big_loop,1)=sqrt(trace(CRLB)-(a));
end
CRLB_u=[crb_source1];
%%
figure(1)
plot(20*log10(z_error_more(1,:)),CRLB_u_sensor_erros(:,1),'r.-')
hold on;
plot(20*log10(z_error_more(1,:)),CRLB_u(:,1),'b*-')
hold on;
legend('存在站址误差','不存在站址误差')
xlabel('角度误差')
ylabel('RMSE')

请添加图片描述

%%
%******CRLB随站址误差变化结果
%%
clc;
close all;
clear all;
% 测向站数量
M=6;
% 目标数量
N=1;
%观测站位置
s1=[1500 -1900 1400].';
s2=[-1600 2000 1700].';
s3=[1800 -1500 -1600].';
s4=[-1200 1400 -2000].';
s5=[1700 1600 2000].';
s6=[-1800 -1400 -1800].';
for i=1:1:M
    str_si=['s',mat2str(i)];
    si_value=eval(str_si);
    s_true(3*(i-1)+1:3*(i-1)+3,1)=si_value;
end
% 目标位置
u1=[4000 4000 3000].';
for i=1:1:N
    str_ui=['u',mat2str(i)];
    ui_value=eval(str_ui);
    u_true(3*(i-1)+1:3*(i-1)+3,1)=ui_value;
end
z_error_more(2,:)=10.^[0:0.1:1.5];
z_error_more(1,:)=10.^[zeros(length(z_error_more),1)];
deta_more=[0.001,0.001,1,10];
% 站址误差功率不一样
power_s_error=[1 1 1 3 3 3 5 5 5 10 10 10 5 5 5 3 3 3].';
%% 存在站址误差
%% CRLB
for i=1:1:M
    eval(['s',mat2str(i),'(:,1)',' = ','s_true(3*(i-1)+1:3*(i-1)+3,1)',';']);
end
for i=1:1:N
    eval(['u',mat2str(i),'(:,1)',' = ','u_true(3*(i-1)+1:3*(i-1)+3,1)',';']);
end
%%     对目标位置的导数
% 方位角、仰角对目标位置的导数
diff_theta_ui=zeros(M,3,N);
diff_beta_ui=zeros(M,3,N);
%方位角、仰角对目标观测站的导数
diff_theta_si=zeros(M,3*M,N);
diff_beta_si=zeros(M,3*M,N);
%%
for j=1:1:N
    for i=1:1:M
        str_si=['s',mat2str(i)];
        si_value=eval(str_si);
        str_ui=['u',mat2str(j)];
        ui_value=eval(str_ui);
        
        ui_si=ui_value-si_value;
        ai2=sqrt(ui_si(1)^2+ui_si(2)^2);
        %     方位角对目标位置的导数
        diff_theta_ui_1=-ui_si(2)/ai2^2;
        diff_theta_ui_2=ui_si(1)/ai2^2;
        diff_theta_ui(i,:,j)=[diff_theta_ui_1,diff_theta_ui_2,0];
        %     仰角对目标位置的导数
        diff_beta_ui_1=-ui_si(1)*ui_si(3)/ai2/(osjl(ui_value,si_value))^2;
        diff_beta_ui_2=-ui_si(2)*ui_si(3)/ai2/(osjl(ui_value,si_value))^2;
        diff_beta_ui_3=ai2/(osjl(ui_value,si_value))^2;
        diff_beta_ui(i,:,j)=[diff_beta_ui_1,diff_beta_ui_2,diff_beta_ui_3];
        
        % 方位角、仰角对目标观测站位置的导数
        diff_theta_si(i,3*(i-1)+1:3*(i-1)+3,j)=-diff_theta_ui(i,:,j);
        diff_beta_si(i,3*(i-1)+1:3*(i-1)+3,j)=-diff_beta_ui(i,:,j);
    end
end

F_u1=[diff_theta_ui(:,:,1);diff_beta_ui(:,:,1)];
F_u=blkdiag(F_u1);

F_s1=[diff_theta_si(:,:,1);diff_beta_si(:,:,1)];
F_s=[F_s1.'].';

for big_big_loop=1:1:length(z_error_more)
    %方位角
    deta_theta=deta_more(1)*z_error_more(1,big_big_loop);
    R_theta=deta_theta^2*eye((M),(M));
    %仰角
    deta_beta=deta_more(2)*z_error_more(1,big_big_loop);
    R_beta=deta_beta^2*eye((M),(M));
    
    Rn_a1=blkdiag(R_theta,R_beta);
    Rn_a=blkdiag(Rn_a1);
    %站址误差
    deta_s=deta_more(4)*z_error_more(2,big_big_loop);
    power_s_error=[1 1 1 3 3 3 5 5 5 10 10 10 5 5 5 3 3 3].';
    Rs_a=deta_s^2*diag(power_s_error);
    %     观测站定位的先验均方根误差
    prior_cov_s(big_big_loop,1)=sqrt(trace(Rs_a));
    
    F1=F_u.'*inv(Rn_a)*F_u;
    F2=F_u.'*inv(Rn_a)*F_s;
    F3=F_s.'*inv(Rn_a)*F_s+inv(Rs_a);
    
    CRLB=inv([F1,F2;F2.',F3]);
    a=CRLB(1,1)+CRLB(2,2)+CRLB(3,3);
    
    crb_source1(big_big_loop,1)=sqrt(a);
    CRLB_sensor(big_big_loop,1)=sqrt(trace(CRLB)-(a));
end
CRLB_u_sensor_erros=[crb_source1];
%% 不存在站址误差
for big_big_loop=1:1:length(z_error_more)
    %方位角
    deta_theta=deta_more(1)*z_error_more(1,big_big_loop);
    R_theta=deta_theta^2*eye((M),(M));
    %仰角
    deta_beta=deta_more(2)*z_error_more(1,big_big_loop);
    R_beta=deta_beta^2*eye((M),(M));
    
    Rn_a1=blkdiag(R_theta,R_beta);
    Rn_a=blkdiag(Rn_a1);
    %站址误差
    deta_s=deta_more(4)*z_error_more(2,big_big_loop);
    power_s_error=[1 1 1 3 3 3 5 5 5 10 10 10 5 5 5 3 3 3].';
    Rs_a=deta_s^2*diag(power_s_error);
    %     观测站定位的先验均方根误差
    prior_cov_s(big_big_loop,1)=sqrt(trace(Rs_a));
    
    F1=F_u.'*inv(Rn_a)*F_u;
    
    CRLB=inv([F1]);
    a=CRLB(1,1)+CRLB(2,2)+CRLB(3,3);
    
    crb_source1(big_big_loop,1)=sqrt(a);
    CRLB_sensor(big_big_loop,1)=sqrt(trace(CRLB)-(a));
end
CRLB_u=[crb_source1];
%%
figure(1)
plot(20*log10(z_error_more(2,:)),CRLB_u_sensor_erros(:,1),'r.-')
hold on;
plot(20*log10(z_error_more(2,:)),CRLB_u(:,1),'b*-')
hold on;
legend('存在站址误差','不存在站址误差')
xlabel('站址误差')
ylabel('RMSE')

请添加图片描述

参考:不存在站址误差的DOA定位CRLB
不存在站址误差的TDOA定位CRLB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我觉得我很优秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值