115-RTKLIB及GAMP中PPP的隨機模型

在rtklib中,ppp的隨機模型設置如下:

static double varerr(int sat, int sys, double el, int freq, int type, const prcopt_t *opt)
{
    double fact=1.0,sinel=sin(el);
    /* type 0:phase, 1:code */
    if (type==1) fact*=opt->eratio[freq==0?0:1];
    fact*=sys==SYS_GLO?EFACT_GLO:(sys==SYS_SBS?EFACT_SBS:EFACT_GPS);
    
    if (sys==SYS_GPS||sys==SYS_QZS) {
        if (freq==2) fact*=EFACT_GPS_L5; /* GPS/QZS L5 error factor */
    }
    if (opt->ionoopt==IONOOPT_IFLC) fact*=3.0;
    return SQR(fact*opt->err[1])+SQR(fact*opt->err[2]/sinel);
}

輸入參數分別是:衛星編號(rtklib的編號)、所屬系統、衛星高度角、當前頻率、測量類型(載波or測距碼,分別爲0 or 1)、結構體。

結構體中eratio存儲測距碼相對於載波測量標準差的比例係數,通常爲100,數組前兩位分別爲L1及L2載波;

結構體中err第二位和第三位分別存儲載波測量的標準差以及與衛星高度角相關的載波測量標準差,通常皆爲0.003,實際應用中就是隨機模型中的a,b。

故 根據程序可以看出,隨機模型如下:

σ2=(facta)2+(factb/sinel)2 \sigma^2 = (fact * a)^2 + (fact*b/sinel)^2

a,b爲用戶設置的噪聲標準差,對於fact,以gps爲基準,當使用載波測量,其爲1.0,當使用測距碼測量,其爲1.0*測距碼與載波的比例因子eratio,對於不同的系統,乘以各個系統對應的係數,對於L5載波,還要加一個針對L5載波的係數,另外,如果是消電離層組合,還要乘以3.0(因爲消電離層組合約將噪聲放大三倍)。


對於gamp也是類似的:

static double varerr(int sat, int sys, double el, int freq, int type,
	const prcopt_t *opt)
{
	double a=opt->err[1],b=opt->err[2];
	double c=1.0,fact=1.0;
	double sinel=sin(el);

	fact=EFACT_GPS;
	c=type?opt->err[0]:1.0;   /* type=0:phase,1:code */

	if (sys==SYS_GLO) {
		fact=EFACT_GLO;
		if (type) c=PPP_Glo.prcOpt_Ex.errRatioGLO;
	}
	else if (sys==SYS_CMP) {
		if (type) c=PPP_Glo.prcOpt_Ex.errRatioBDS;
	}
	else if (sys==SYS_GAL) {
		if (type) c=PPP_Glo.prcOpt_Ex.errRatioGAL;
	}
	else if (sys==SYS_QZS) {
		if (type) c=PPP_Glo.prcOpt_Ex.errRatioQZS;
	}

	if (opt->ionoopt==IONOOPT_IF12) fact*=3.0;

	return SQR(fact*c)*(SQR(a)+SQR(b/sinel));
}

ab分別爲前面提到的載波測量的標準差以及與衛星高度角相關的載波測量標準差,c爲不同系統的測距碼與載波標準差的比例係數(err[0]存儲gps系統測距碼與載波標準差的比例係數),fact爲系統間測量噪聲係數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章