... One value is "code phase" (along with PRN, sample length, sig level,
dopple, and time-of-measurement). This is a single precision floating
point number in units of 1/16 of a chip. Does anybody know how to massage
this value into either a carrier phase (in cycles) or a pseudorange (in
meters). The reported code phase values tend to be in the 1000 ... 10000
"Code phase" represents where you are along the 1023-bit C/A code (each bit
or "chip" of this code lasts ~1 microsecond or ~300 meters). The
scaled-by-16 code phase will thus range from 0 to 16*1023. To get the full
pseudorange, though, suitable for placing into a RINEX file for example,
you need to also add in the integer number of code periods from the
satellite to you. (Another way to put it is that the code phase is the
pseudorange modulo 1 millisecond, the duration of 1023 chips.) Each
pseudorange also contains the as-yet-unknown receiver clock bias---that is
the "pseudo" in "pseudorange".
The additional information comes from the data content of the C/A message,
which has a 20 ms period, a frame structure, and timestamps for the
frames. Hopefully all that is included somewhere in the receiver raw data.
Carrier phase is a different beast altogether and comes from the carrier
tracking loop, not the code tracking loop that gives the code phase. It's
simpler in some sense, because there is none of this burdensome,
complicated pseudorange-assembly process from disparate data sources like
code phase, bit sync, and timestamps; instead it's just a simple phase.
The ambiguity interval is very short, though, which complicates its use in
a navigation solution.
If you know your position to within 150 kilometers (0.5 ms), you can
dispense with the pseudorange-assembly arithmetic and just use the code
phase directly, after adding in the appropriate integer number of
milliseconds, only one of which will put you within your known
300-kilometer-diameter (1 ms) sphere.
time-nuts mailing list -- firstname.lastname@example.org
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.