Float Ambiguity

Discussion in 'Global Navigation Satellite Systems' started by hannan.sadar, Mar 31, 2009.

  1. hannan.sadar

    hannan.sadar Guest

    Hi,

    I am trying to solve float ambiguity from my zero-baseline (2 Geodetic
    receivers, but single frequency computation). I used few equations
    from the book GPS Theory and Practice (B. Hofmann-Wellenhof), p. 248
    in order to solve my float ambiguity.

    My data set are pseudorange and phase and of course satellite's
    ephemeris.

    i assume that the two receivers are static (what is correct), which
    means that in double difference all the parameters i try to solve do
    not change in time (\Delta X , \Delta Y, \Delta Z and N_1, ..., N_n,
    where "n" is the number of satellites).

    For simplicity assuming that the number of satellites at each epoch
    also dont change with time. I dont really know where my bug is, since
    when i checked the data with only pseudorange data, i got smooth
    relative distance of about 20cm (but it needed a lot fo iteration each
    epoch), when i add phase data, i get that the solution is stable for
    odd tries and stable (but different) for even. I dont really know what
    is the reason for that, that is why i am publishing my matlab code

    ---------------- MATLAB Code -------------------
    dx = ones( 3 + satNum , 1 );
    % Compute line of site to reference satellite
    dXYZ = SatXYZ(RefSat,:) - BaseApproxXYZ;
    los_rl = -dXYZ/norm( dXYZ )
    % Removing data of reference satellite
    satXYZ(RefSat,:) = [];
    b(RefSat) = [];
    b(RefSat + satNum) = [];
    % Build wight matrix
    P = zeros( satNum * 2 );
    SigmaPhase = 2e4;
    SigmaPRn = 2;
    for i = [ 1 : satNum ]
    P( i , i ) = SigmaPRn;
    P( satNum + i , satNum + i ) = SigmaPhase;
    end

    while ( abs( norm( dx ) ) > 1e-05 )
    A( (1 + satNum) : (satNum * 2), 4:(3 + satNum) ) = eye( satNum )
    * Lambda_1;
    dPR = zeros( 2 * satNum , 1 );
    for j = 1 : satNum
    dXYZ = satXYZ(j,:) - BaseApproxXYZ;
    los_rk = - dXYZ / norm( dXYZ ) ;
    A( j , 1:3 ) = los_rk - los_rl;
    A( satNum + j , 1:3 ) = ( los_rk - los_rl );
    r_0 = ( los_rk - los_rl ) * dr;
    l( j ) = b( j ) - r_0;
    l( satNum + j ) = Lambda1 * b( satNum + j ) - r_0 -
    Lambda1 * afloat(j);
    end

    G_0 = inv(CovXYZ_0);
    G_1 = A' * P * A;
    K = inv( G_0 + G_1 ) * A' * P;
    dx = K * ( dPR - A * x_0 );
    CovXYZ_0 = CovXYZ_0 - K * A * CovXYZ_0;

    dr = dr + dx(1:3);

    afloat = afloat + dx(4:end);
    end
     
    hannan.sadar, Mar 31, 2009
    #1
    1. Advertisements

  2. hannan.sadar

    samsvl Guest

    Hi Hannan,

    In a zero baseline experiment the double differenced carrier phases
    should be
    very close to an integer value (depending on the quality of antenna,
    receiver
    and environment within a few hundredths of a cycle), the integer
    number being
    the ambiguity !!

    Cheers,

    Sam

     
    samsvl, Apr 2, 2009
    #2
    1. Advertisements

  3. hannan.sadar

    Jhabindra Khanal

    Joined:
    Mar 9, 2015
    Messages:
    4
    Likes Received:
    0
    Hello my seniors
    I just started to work on gps based attitude determination using single frequency(L1) carrier phase differential GPS. could u advice me and provide me. what kinds of GPS data and tool are need to postprocess a data set. and writing matlab code from the beginning. and could u provide me related data?? I hope you have a kind heart.
    junior ,
    Jhabindra Khanal
     
    Jhabindra Khanal, Mar 9, 2015
    #3
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.