Administrator
发布于 2026-09-09 / 0 阅读
0
0

卫星导航 TP:GPS 伪距定位(题目、数据说明与问题)

时间:4小时

日期:2023年11月

该研究报告的目标是根据卫星/接收器之间的伪距离测量来计算GPS系统用户的轨迹。问题的难点在于这些测量值与待估参数之间的非线性关系,并且还受到附加测量噪声的干扰。为了克服这些困难,采用了线性化的最小二乘算法版本。在研究算法在不利导航条件下的鲁棒性后,将通过计算几何精度因子 (Dilution of Precision, DOP) 来评估卫星星座的几何结构对GPS性能的影响。

1. 研究报告背景

在本研究中,我们关注一辆配备了GPS的汽车,该车在塔朗斯市(Talence)沿图1所示的路线行驶。在导航中,必须明确指出车辆运动所处的参考系。特别地,两个参考系在本研究中是有用的:

参考系1

此参考系是GPS导航的地球中心地固(ECEF)参考系,卫星的坐标通常在该参考系中表示。其原点是地球中心O,x轴位于黄道平面(赤道)和格林尼治子午线的交点,z轴与地球极轴重合并指向北极,y轴则定义为与x轴和z轴形成右手坐标系。

参考系2

此参考系是本地的北东地( NED)坐标系,用于可视化车辆的运动。该坐标系以地面上的某个点P0为中心,其轴分别指向局部垂直方向、北方和东方。

这两个参考系之间的关系在图2中给出。连接两个参考系中向量坐标的公式为:

X^1 = MX^2 + X^1_0\\ 其中X^1_0 = (x_0, y_0, z_0)^T表示点P_0在参考系1中的坐标,变换矩阵M为:\\ M = \begin{pmatrix} - \sin \lambda \cos \phi & - \sin \phi & - \cos \lambda \cos \phi \\ - \sin \lambda \sin \phi & \cos \phi & - \cos \lambda \sin \phi \\ \cos \lambda & 0 & - \sin \lambda \end{pmatrix}\\ 其中 λ 和 φ 分别是参考点P_0的经度和纬度。

![image-20240911175756475](/Users/zehua/Library/Application Support/typora-user-images/image-20240911175756475.png)

![image-20240911175809079](/Users/zehua/Library/Application Support/typora-user-images/image-20240911175809079.png)

2. 回顾:利用最小二乘法计算位置

2.1 最小二乘法算法

最小二乘法算法用于从带噪声的观测值中估计一组未知参数,这些观测值与待估参数线性相关。该问题可通过以下数学方式表述:

Z = H X + w

其中:

  • X 是包含未知参数的状态向量,
  • Z 是观测值向量,
  • w 是观测噪声向量。
最小二乘法的技术是计算X的估计值,记作 \hat{X},它使得二次误差 J(ξ) = ‖Z − H ξ‖^2 最小。
其估计值满足: \hat{X} = (H^T H)^{-1} H^T Z, 其中 (H^T H)^{-1} H^T 称为伪逆矩阵。

2.2 GPS中的应用

在GPS导航问题中,每时每刻待估参数包括车辆在三维空间中的位置 (x, y, z) 以及接收器的时钟偏移b。它们组成了状态向量 X = (x, y, z, b)^T,并通过伪距离测量与GPS信号的关系表示为:

Y(t) = h_t(x, y, z, b) + w(t)
其中向量\ Y(t) = (Y_1, Y_2, ..., Y_n)^T 是在时刻t可用的n个GPS测量值的集合\\向量 w(t) 是零均值、方差为σ2的高斯白噪声,表示GPS测量噪声
函数 h_t(x, y, z, b) 的形式为:\\ h_t(x, y, z, b) = \begin{pmatrix} \sqrt{(x - x^1(t))^2 + (y - y^1(t))^2 + (z - z^1(t))^2} + b \\ ... \\ \sqrt{(x - x^n(t))^2 + (y - y^n(t))^2 + (z - z^n(t))^2} + b \end{pmatrix} \\ \ \ \ \ \ \ \ \ \ 其中 (x^i(t), y^i(t), z^i(t)) 是第i个卫星在时刻t的坐标

最小二乘法算法是为线性系统开发的,因此需要对公式 (4) 进行线性化以便应用。通过在参考点 Xr 处进行泰勒展开,我们得到:

Y(t) - h_t(x_r, y_r, z_r, b_r) = H_t (X - X_r) + w(t)\\ 其中 H_t = \nabla h_t 包含了ht对状态向量分量的偏导数
令 Z(t) = Y(t) - h_t(x_r, y_r, z_r, b_r) + H_t X_r,估计问题就可以表示为 (4) 形式

该方法的有效性取决于选择的线性化参考点,不应偏离真实状态向量 X 太远。在GPS导航中,通常选择前一个位置和时钟偏移的估计值作为线性化参考点。

Ht矩阵的系数取决于GPS卫星相对于接收器的位置。该矩阵反映了卫星几何结构对位置估计误差的影响。

3. 精度稀释因子 (DOP)

如前所述,定位误差既依赖于测量的不确定性,也依赖于卫星星座的几何结构。对于同样的测量误差向量,由于卫星相对于接收器的相对位置不同,位置估计误差可能大小不同。卫星星座的影响通过一个称为精度稀释因子 (DOP, Dilution of Precision) 的量化因子来衡量,它定义如下:

RMSE = DOP × σ

其中 σ 是测量噪声的标准差,RMSE 是位置估计的均方根误差:

\text{RMSE} = \sqrt{\mathbb{E} \left[ \|X - \hat{X}\|^2 \right]}

DOP 的表达式可以从最小二乘法的定位问题解中推导。我们回顾如下公式:

\hat{X} = (H_t^T H_t)^{-1} H_t^T Z

因此,位置估计误差满足:

\hat{X} - X = (H_t^T H_t)^{-1} H_t^T w(t)

其中 w(t) 是测量噪声。通过观察:

\mathbb{E} \left[ \|X - \hat{X}\|^2 \right] = \text{Trace}(\Sigma_{\Delta X \Delta X})\ \ \  \ \ \ \ \ \text{avec} \ \Sigma_{\Delta X \Delta X} = \mathbb{E} \left[ (X - \hat{X})(X - \hat{X})^T \right]

我们可以证明:

\text{DOP} = \sqrt{\text{Trace}\left( (H_t^T H_t)^{-1} \right)}

这个因子用于计算位置和时钟偏移估计误差的量级,因此可以衡量GPS解的可信度。如果只考虑位置误差(不考虑时钟偏移估计),则可以计算位置精度稀释因子 (PDOP, Position Dilution of Precision):

PDOP = \sqrt{\tilde{H}_t(1,1) + \tilde{H}_t(2,2) + \tilde{H}_t(3,3)} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \text{où} \ \tilde{H}_t = (H_t^T H_t)^{-1}

根据位置所在的参考系,还可以计算垂直精度稀释因子 (VDOP, Vertical DOP) 和水平精度稀释因子 (HDOP, Horizontal DOP)。

4. 提供的数据描述

为了解决定位问题,GPS数据保存在文件 "donnees GPS TP.mat" 中。这些数据包括:

  • 每个时刻车辆轨迹点的GPS伪距离。数据每秒记录一次,记录N秒。所考虑的接收器具有8个追踪通道,因此最多可以同时处理8个测量。
  • 卫星相对于接收器的坐标,以WGS84坐标系表示。

此外,为了评估导航算法的性能,车辆的真实轨迹以本地坐标系表示,并保存在文件 "trajectoire TP.mat" 中。

数据格式

数据类型 变量名 维度
GPS伪距离 PRN 8 × T
卫星坐标 XYZsat 8 × 3 × T
车辆轨迹 Xloc 3 × T

当GPS数据不可用时,PRN和XYZsat表格包含NaN值。最后,提供了程序 llh2xyz.m,该程序用于根据椭球坐标(以弧度表示的纬度和经度、高度)计算点的笛卡尔坐标。

5. 问题

  1. 参阅附录,通过将参考系1到参考系2的变换分解为两次旋转,推导矩阵M的表达式(2)。

    [!IMPORTANT]

    需要从参考系 1 (ECEF) 到参考系 2 (NED) 的变换分解为两次旋转

    因此矩阵 M 包含两个旋转:

    绕 z 轴的旋转,角度为经度 \lambda ,将参考系从 ECEF 转换到中间参考系:
    M_1 = \begin{pmatrix} \cos \lambda & -\sin \lambda & 0 \\ \sin \lambda & \cos \lambda & 0 \\ 0 & 0 & 1 \end{pmatrix}
    绕 y 轴的旋转,角度为纬度 \phi ,将中间参考系转换到 NED 参考系:
    M_2 = \begin{pmatrix} -\sin \phi & 0 & \cos \phi \\ 0 & 1 & 0 \\ -\cos \phi & 0 & -\sin \phi \end{pmatrix}

    通过将这两个矩阵相乘,可以得到从参考系 1 到参考系 2 的转换矩阵 M :

    M = M_2 M_1 = \begin{pmatrix} -\sin \lambda \cos \phi & -\sin \phi & -\cos \lambda \cos \phi \\ -\sin \lambda \sin \phi & \cos \phi & -\cos \lambda \sin \phi \\ \cos \lambda & 0 & -\sin \lambda \end{pmatrix}

    详细解释: 这里有问题,不一定是正确答案

    我们的目的是从地球坐标系 (ECEF) 转换到本地坐标系 (NED)

     •	ECEF 坐标系的原点是地心
    
     •  NED 坐标系的原点是地面上的某一点,坐标系的三个轴分别指向北(N)、东(E)和地面法线向下(D,Down)
    

    为了完成这个转换,必须进行两次旋转:一次绕 z 轴的旋转,另一次绕 y 轴的旋转

    第一步:

    绕 z 轴旋转,这个旋转用于将地球坐标系 (ECEF) 的 x 轴和 y 轴对准我们定义的地面本地坐标系 (NED) 的相应方向。具体来说,绕 z 轴的旋转使得 NED 坐标系中的北方向(N)与经线的方向对齐,而东方向(E)与纬线的方向对齐。这个旋转的角度是经度 λ

    image-20240914102538535

    为什么绕 z 轴旋转?
    
    	•	当我们选择一个地面上的参考点  P_0 ,我们希望它的局部坐标系能对应于地面的实际方向(北、东、下)。
    	•	绕 z 轴旋转可以调整 x 和 y 轴,使得它们与参考点的经线和纬线方向一致。
    
    

    第二步:

    绕 y 轴旋转,用于调整 z 轴的方向,使它与地面的垂直方向(即“下”方向)对齐。这个旋转的角度是纬度 φ ,它决定了 z 轴的倾斜程度。

  2. 使用程序 llh2xyz 计算参考点P0(参考系2的原点)在参考系1中的坐标。对于所研究的轨迹,参考点的高度为零,纬度为北纬44°48',经度为西经0°35'(注意:经度向东为正)。提示:1' = 1/60°。

    [!IMPORTANT]

    通过给定的纬度(44°48’ 北纬)、经度(0°35’ 西经)和零海拔高度,我们可以计算参考点 P_0 在 ECEF 参考系中的坐标,首先将纬度和经度转换为十进制度数:

    纬度: 44^\circ 48' \\ • 转换为十进制度数: 44 + \frac{48}{60} = 44.8^\circ \\ • 转换为弧度: \frac{44.8 \times \pi}{180} = 0.781907 \, \text{弧度}\\ 经度: 0^\circ 35' \\ • 转换为十进制度数: -(0 + \frac{35}{60}) = -0.5833^\circ (因为是西经)\\ • 转换为弧度: \frac{-0.5833 \times \pi}{180} = -0.010178 \, \text{弧度} \\
    现在我们有 \phi = 0.781907 \, \text{弧度} , \lambda = -0.010178 \, \text{弧度} ,和 h = 0 \, \text{米} 。
    function xyz = llh2xyz(llh)
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Ce programme transforme un triplet de coordonnées ellipsoidales
    % (latitude, longitude, altitude) en coordonnées cartésiennes dans le
    % repère WGS84.
    % Entrée :
    %  llh = (latit, longi, alti), triplet de coordonnées ellipsoidales
    % Sortie :
    % xyz : triplet de coordonnées cartésiennes
    %
    %将经纬度和海拔高度的椭球坐标转换为 ECEF(地心地固)坐标系中的笛卡尔坐标
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    phi = llh(1); % latitude
    lambda = llh(2);
    h = llh(3);
    
    a = 6378137.0000;
    b = 6356732.0000;
    e=sqrt(1-(b/a)^2);
    
    sinphi = sin(phi);
    cosphi = cos(phi);
    coslam = cos(lambda);
    sinlam = sin(lambda);
    tan2phi = (tan(phi))^2;
    tmp=1-e^2;
    tmpden = sqrt(1+tmp*tan2phi);
    
    x = (a*coslam)/tmpden+h*coslam*cosphi;
    y = (a*sinlam)/tmpden+h*sinlam*cosphi;
    
    tmp2 = sqrt(1-(e*sinphi)^2);
    z = (a*tmp*sinphi)/tmp2+h*sinphi;
    
    xyz(1) = x;
    xyz(2) = y;
    xyz(3) = z;
    
    输入:
    	•	llh(1) 为纬度  \phi  (以弧度表示)
    	•	llh(2) 为经度  \lambda  (以弧度表示)
    	•	llh(3) 为海拔高度  h  (以米为单位)
    椭球参数:
    	•	 a  是 WGS84 椭球的长半轴(赤道半径),等于 6378137.0000 米。
    	•	 b  是 WGS84 椭球的短半轴(极半径),等于 6356732.0000 米。
    	•	 e  是椭球的第一偏心率。
    输出:
    	•	xyz(1)、xyz(2) 和 xyz(3) 分别是转换后的 ECEF 坐标系中的 x、y、z 坐标。
    
    % 定义经纬度和高度
    latitude_deg = 44 + 48/60; % 纬度 44°48' 北
    longitude_deg = -(0 + 35/60); % 经度 0°35' 西 (转换为负值)
    altitude = 0; % 海拔高度,假设为 0 米
    
    % 将经纬度从度转换为弧度
    latitude_rad = deg2rad(latitude_deg); % 纬度转换为弧度
    longitude_rad = deg2rad(longitude_deg); % 经度转换为弧度
    
    % 创建包含纬度、经度和高度的向量
    llh = [latitude_rad, longitude_rad, altitude];
    
    % 调用 llh2xyz 函数计算 ECEF 坐标
    xyz = llh2xyz(llh);
    
    % 输出结果
    disp('ECEF 坐标:');
    disp(['X: ', num2str(xyz(1)), ' m']);
    disp(['Y: ', num2str(xyz(2)), ' m']);
    disp(['Z: ', num2str(xyz(3)), ' m']);
    
    得到结果ECEF 坐标:
    X: 4533051.7704 m
    Y: -46152.9905 m
    Z: 4471583.3721 m
    
  3. 通过应用最小二乘法算法,使用提供的GPS数据找出车辆在塔朗斯市的轨迹(在参考系1和参考系2中)

    [!IMPORTANT]

    回顾之前在此TP中应用最小二乘法的线性化步骤

    GPS 伪距方程为: Y(t) = h_t(x, y, z, b) + w(t)\\ 其中 h_t(x, y, z, b) 是一个依赖卫星位置的非线性函数, w(t) 是噪声。
    为了应用最小二乘法,我们对方程进行一阶泰勒展开线性化:\\ Y(t) - h_t(x_r, y_r, z_r, b_r) = H_t (X - X_r) + w(t)\\ H_t 是伪距函数 h_t 对状态向量分量 (x, y, z, b) 的偏导数。\\
    通过最小二乘法,状态向量 X 的估计值为: \hat{X} = (H_t^T H_t)^{-1} H_t^T Z

    此估计值就是我们得到的车辆的运动轨迹,用估计值去更新状态向量,再用新的状态向量来计算得到伪距误差,不断迭代,直至估计值收敛。即在每个时刻 t 进行迭代,不断更新估计位置,将每个时刻得到的位置依次排列,就可以得到车辆的完整轨迹。

    %% Question 3 
    load('donnees_GPS_TP.mat');  % 加载GPS卫星数据文件 "donnees_GPS_TP.mat"
    
    T = size(PRN, 2);  % 获取观测时间点的数量(PRN的列数);也就是我们对其进行了954次时间采样
    Xest = zeros(4, T);  % 初始化车辆位置的估计结果矩阵,大小为4行954列,每一行都有954个随时间变化得到的数据。用于储存
    Xloc_est = zeros(3, T);  % 初始化局部NED坐标系下的估计位置矩阵,大小为3行T列。也就是评估的车辆位置
    
    b = 0;  % 定义初始偏差b为0
    M = [-sla*clon, -slon, -cla*clon;  % 构建旋转矩阵M,用于从ECEF转换到局部NED坐标系
         -slon*sla, clon, -cla*slon; 
         cla, 0, -sla];
    
    for t = 1:T  % 遍历每个时间点
        ind = find(~isnan(PRN(:, t)));  % 找到在当前时间t可用的卫星索引,即非NaN值的行。可以是很多行
        Y = PRN(ind, t);  % 利用当前时间和当前可用的索引值获取对应时间t的卫星观测值
        nb_mes = length(ind);  % 获取该时刻可用的观测值数量。也就是当前时间非NaN值的行有几个。
    
        % Initialiser les vecteurs h et H
        h = zeros(nb_mes, 1);  % 初始化观测值的预测向量h。有几个可用值,就相当于有几个可用卫星。
        H = zeros(nb_mes, 4);  % 初始化测量矩阵H,用于后续线性化,有四列的原因是需要分别算x,y,z,b的梯度
    
        % Construction de z
        for i = 1:nb_mes  % 遍历所有可用的卫星测量
            % Calcul de la mesure prédite h(i)
            % 计算预测的观测值h(i),根据P0和卫星位置计算欧氏距离并加上偏差b
            h(i) = sqrt((xyz_P0(1, 1) - XYZsat(ind(i), 1, t))^2 + ...
                        (xyz_P0(1, 2) - XYZsat(ind(i), 2, t))^2 + ...
                        (xyz_P0(1, 3) - XYZsat(ind(i), 3, t))^2) + b;
    
            % Calcul du gradient de h par rapport à Xest
            % 计算预测值的梯度,更新测量矩阵H的前三列(位置部分) 这里比较复杂
            H(i, 1:3) = (xyz_P0(1:3) - XYZsat(ind(i), :, t)) / h(i); 
            H(i, 4) = 1;  % 更新测量矩阵H的最后一列(偏差部分)
        end
    
        DOP(t) = sqrt(trace(inv(H' * H)));  % 计算精度稀释因子DOP
    
        % Construction de z
        % 构造观测残差z,将观测值与预测值和初始估计值差计算出来
        z = Y - h + H * [xyz_P0'; 0];
    
        % Application de la méthode des moindres carrés
        % 使用最小二乘法估计位置和偏差,结果存储在Xest中
        Xest(:, t) = pinv(H) * z;
        
        % 将估计的ECEF坐标转换为局部NED坐标
        Xloc_est(:, t) = inv(M) * (Xest(1:3, t) - xyz_P0');
    end
    
    % 绘制3D估计轨迹
    figure, plot3(Xest(1, :), Xest(2, :), Xest(3, :));
    title('Graphique 3D de la trajectoire estimée du véhicule dans le repère 1 (ECEF)')
    
    % 绘制局部NED坐标系下的真实轨迹和估计轨迹
    figure
    plot(Xloc(1, :), Xloc(2, :), 'r'), hold on  % 绘制真实轨迹
    plot(Xloc_est(1, :), Xloc_est(2, :), 'b')  % 绘制估计轨迹
    title('Trajectoire réelle et de la trajectoire estimée du véhicule dans le repère 2 (local NED)')
    legend('Trajectoire réelle', 'Trajectoire estimée')  % 添加图例
    
    % 绘制DOP随时间的变化
    figure
    plot(DOP)
    title('Graphique de la Dilution of Precision (DOP) en fonction du temps')
    xlabel('Temps')
    ylabel('Dilution of Precision (DOP)')
    
  4. 修改提供的GPS数据以模拟干扰(增加测量噪声的方差)和多路径效应(在一个或多个GPS测量中引入偏差)。研究算法对这些扰动的鲁棒性,特别是可以研究均方误差随误差幅度的变化。

    [!IMPORTANT]

    均方误差:\ \ \ \text{MSE} = \frac{1}{N} \sum_{t=1}^N \|\hat{X}(t) - X(t)\|^2 \\ 其中 X(t) 为真实位置, \hat{X}(t) 为估计位置

    其他部分不会

  5. 从公式(7)和(8)推导公式(7)和(9)的关系。

    [!IMPORTANT]

    推导公式 (7):\\ 从最小二乘法的解开始:\\ \hat{X} = (H_t^T H_t)^{-1} H_t^T Z(t)\\ 将 Z(t) = H_t X + w(t) 代入,得到:\\ \hat{X} = (H_t^T H_t)^{-1} H_t^T (H_t X + w(t))\\ 简化后为:\\ \hat{X} = X + (H_t^T H_t)^{-1} H_t^T w(t)\\ 因此,估计值的误差为:\\ \hat{X} - X = (H_t^T H_t)^{-1} H_t^T w(t)
    推导公式 (9):\\均方根误差 \text{RMSE} 用来衡量估计值 \hat{X} 和真实值 X 之间的误差\\

    方法一。我个人认为不好,不恰当

    \text{RMSE} = \sqrt{\mathbb{E} \left[ \|X - \hat{X}\|^2 \right]}=\sqrt{\mathbb{E} \left[ \|(H_t^T H_t)^{-1} H_t^T w(t)\|^2 \right]}
    ||Av||^2 = v^T A^T Av
    \left\| (H_t^T H_t)^{-1} H_t^T w(t) \right\|^2 = w(t)^T H_t (H_t^T H_t)^{-1} (H_t^T H_t)^{-1} H_t^T w(t)\\ RMSE^2 = E \left[ w(t)^T H_t (H_t^T H_t)^{-1} (H_t^T H_t)^{-1} H_t^T w(t) \right]\\ 注意:\ \ \  (H_t^T H_t)^{-1} 是一个对称矩阵。对于对称矩阵 A ,我们有 A^T = A
    因为w(t) 是零均值、方差为σ2的高斯白噪声\\ RMSE^2 = \sigma^2 \text{Trace}\left( H_t (H_t^T H_t)^{-1} (H_t^T H_t)^{-1} H_t^T \right)=\sigma^2 Trace((H_t^{-T}H_t^{-1}))=\sigma^2 Trace((H_tH_t^{T})^{-1})=\sigma^2 Trace((H_t^{T}H_t)^{-1})
    因为:\ \ RMSE = DOP × σ\\ 所以:\ \ DOP = \sqrt{\text{Trace}((H_t^T H_t)^{-1})}

    方法二。

    误差向量的协方差矩阵 \Sigma_{\Delta X \Delta X} 可以用来表示估计误差的统计特性\\因此,均方根误差也可以通过协方差矩阵来表达:\\ \text{RMSE} = \sqrt{\text{Trace}(\Sigma_{\Delta X \Delta X})}\\ \text{Trace}(\Sigma_{\Delta X \Delta X}) 是协方差矩阵的迹,即矩阵对角线元素的和,它表示所有误差分量的方差之和。
    \mathbb{E} \left[ \|X - \hat{X}\|^2 \right] = \text{Trace}(\Sigma_{\Delta X \Delta X})\ \ \ \ \ \ \ \ \text{avec} \ \Sigma_{\Delta X \Delta X} = \mathbb{E} \left[ (X - \hat{X})(X - \hat{X})^T \right]
    \Sigma_{\Delta X \Delta X} = E\left[ \left( (H_t^T H_t)^{-1} H_t^T w(t) \right) \left( (H_t^T H_t)^{-1} H_t^T w(t) \right)^T \right]
    由于 w(t) 是零均值的高斯白噪声,且 E[w(t)w(t)^T] = \sigma^2 I ,我们可以得到:\\ \Sigma_{\Delta X \Delta X} = (H_t^T H_t)^{-1} H_t^T E[w(t)w(t)^T] H_t (H_t^T H_t)^{-1}=\sigma^2(H_t^T H_t)^{-1} H_t^T H_t (H_t^T H_t)^{-1}\\ \Sigma_{\Delta X \Delta X} = \sigma^2H_t^{-1}H_t^T= \sigma^2 (H_t^T H_t)^{-1}
    \text{RMSE} = \sqrt{\text{Trace}(\Sigma_{\Delta X \Delta X})}\\ and \ \ \ \ \ RMSE = DOP \times \sigma \\ donc\ \ \ DOP = \sqrt{\text{Trace}((H_t^T H_t)^{-1})}
  6. 计算车辆轨迹上的DOP因子,并验证其与位置估计结果的合理性。还可以计算PDOP、VDOP和HDOP。对于后两个术语的计算,需要在本地参考系中进行分析。

    [!IMPORTANT]

    	•	PDOP(位置精度衰减因子):仅考虑三维位置的影响。
    
    	•	HDOP(水平精度衰减因子):仅考虑水平方向位置的影响(即北方和东方的误差)。
    
      •	VDOP(垂直精度衰减因子):仅考虑垂直方向的影响。
    
    HDOP = \sqrt{\tilde{H_t}(1,1) + \tilde{H_t}(2,2)} \\ VDOP = \sqrt{\tilde{H_t}(3,3)}

附录

考虑从参考系R'(定义为轴 (x', y', z') )到参考系R( 定义为轴 (x, y, z) )的变换矩阵M,满足:

X = M X'

其中X'和X分别是点在参考系R'和R中的坐标向量。矩阵M的列是参考系R'中单位向量在参考系R中的坐标。因此,如果两个参考系之间的变换是绕z轴旋转θ角,如下图所示,则M满足:

M = \begin{pmatrix} \cos θ & -\sin θ & 0 \\ \sin θ & \cos θ & 0 \\ 0 & 0 & 1 \end{pmatrix}

类似的推理也适用于绕x轴或y轴的旋转。

![image-20240911181138219](/Users/zehua/Library/Application Support/typora-user-images/image-20240911181138219.png)


评论