Discussion:
GPS question
(too old to reply)
Jon
2009-02-20 12:33:51 UTC
Permalink
Supposing three satellites transmit signals with time stamps that are picked
up by a receiver. If the clocks on the satellites are closely synchronized,
then

|AD|=|AB|+t_AB
|BD|=|BC|+t_BC
|CD|=|CA|+t_CA

Where
A,B,C=position vectors of three satellites
AB,BC,CA=distances between satellites
t_AB,t_BC,t_CA=time differences between signals at D.
D=position vector of receiver.

Once |AD|,|BD|,|CD| are found, the coordinates of D can be derived.

Is this how it is done?

summarized at
http://mypeoplepc.com/members/jon8338/math/id8.html
\\frac{1}{R}\\sqrt{\\frac{L}{C}}
2009-02-22 10:50:27 UTC
Permalink
Post by Jon
Supposing three satellites transmit signals with time stamps that are picked
up by a receiver. If the clocks on the satellites are closely synchronized,
then
|AD|=|AB|+t_AB
|BD|=|BC|+t_BC
|CD|=|CA|+t_CA
Where
A,B,C=position vectors of three satellites
AB,BC,CA=distances between satellites
t_AB,t_BC,t_CA=time differences between signals at D.
D=position vector of receiver.
Once |AD|,|BD|,|CD| are found, the coordinates of D can be derived.
Is this how it is done?
summarized at
http://mypeoplepc.com/members/jon8338/math/id8.html
In GPS the positions and velocities and clocks of the satellites are
normally known, they are determined by tracking the satellites from
ground, and the information is uploaded to the satellites. The message
from the satellite contains time and position information and the
receiver on the ground knows it as well.

In this application of GPS the observation equations are formed for
so-called pseudo-distances, which are time differences between the
receiver clock on ground and the clock information received from the
satellite. The receiver clock is quartz oscillator just like your wrist
watch, and it comes with an offset typically in the order of several
seconds. The receiver clock error (I call it \Delta t_q) is a parameter
to solve for together with the coordinates of the receiver.

Normally you start with 4 satellites so that the equations to solve are:

\rho_{aq} = s * (t_q - t_a) + s * \Delta t_q
\rho_{bq} = s * (t_q - t_b) + s * \Delta t_q
\rho_{cq} = s * (t_q - t_c) + s * \Delta t_q
\rho_{dq} = s * (t_q - t_d) + s * \Delta t_q

where

\rho_{aq} etc are so-called pseudo-distances between receiver "q" and
satellite "a", other satellites are "b" "c" and "d", "s" is the speed of
light, t_q is the time in the receiver, and t_a is the time in satellite
a, and \Delta t_q is the time bias or the clock error of the receiver

The term s * (t_q - t_a) is the geometric distance between satellite "a"
and the receiver, and \rho_{aq} \rho_{bq} \rho_{cq} \rho_{dq} are
measured by the receiver. You can also write:

\rho_{aq} = r_{aq} + s * \Delta t_q
\rho_{bq} = r_{bq} + s * \Delta t_q
\rho_{cq} = r_{cq} + s * \Delta t_q
\rho_{dq} = r_{dq} + s * \Delta t_q

where r_{aq} etc are the geometric distances. To solve these equations
one normally linearizes the equations relative to an approximate
position that is provided to the receiver, or that is memorized from
earlier computations. Let us call this approximate location (x0,y0,z0).

In that case the linearized equations become:

\begin{vec}{c}
\Delta \rho_{aq} \\
\Delta \rho_{bq} \\
\Delta \rho_{cq} \\
\Delta \rho_{dq} \\
\end{vec}
=
\begin{mat}{cccc}
\diff{r_{aq}}{x0} \diff{r_{aq}}{y0} \diff{r_{aq}}{z0} s \\
\diff{r_{bq}}{x0} \diff{r_{bq}}{y0} \diff{r_{bq}}{z0} s \\
\diff{r_{cq}}{x0} \diff{r_{cq}}{y0} \diff{r_{cq}}{z0} s \\
\diff{r_{dq}}{x0} \diff{r_{dq}}{y0} \diff{r_{dq}}{z0} s \\
\end{mat}
*
\begin{vec}
\Delta x0 \\
\Delta y0 \\
\Delta z0 \\
\Delta t_q \\
\end{vec}

where \Delta \rho_{aq} etc are observed minus approximated pseudo range
differences (approximated because we can estimate them once the
approximated location x0 y0 z0 is provided), \diff{r_{aq}}{x0} etc are
partial derivatives from geometric range to coordinates, and \Delta x0
etc are shifts to apply to the approximate coordinates.

The left hand side of these equations is known, the right hand side
matrix is known (although it is an approximation) and the right hand
side vector can be solved by inverting the equations. Within a couple of
iterations you update the approximate location until there are no more
coordinate shifts as discussed above.

Now, the OP said he had only three pseudo ranges. In that case you must
add another constraint equation to the system of equations because it
becomes rank deficient. Normally one adds a constraint equation like a
height of the GPS receiver.

Hope this helps,

Q
--
CO2 at 390 ppm and counting, put a tiger in your tank -- ESSO commercial
Jon
2009-02-22 17:38:13 UTC
Permalink
Post by \\frac{1}{R}\\sqrt{\\frac{L}{C}}
Post by Jon
Supposing three satellites transmit signals with time stamps that are picked
up by a receiver. If the clocks on the satellites are closely synchronized,
then
|AD|=|AB|+t_AB
|BD|=|BC|+t_BC
|CD|=|CA|+t_CA
Where
A,B,C=position vectors of three satellites
AB,BC,CA=distances between satellites
t_AB,t_BC,t_CA=time differences between signals at D.
D=position vector of receiver.
Once |AD|,|BD|,|CD| are found, the coordinates of D can be derived.
Is this how it is done?
summarized at
http://mypeoplepc.com/members/jon8338/math/id8.html
In GPS the positions and velocities and clocks of the satellites are
normally known, they are determined by tracking the satellites from
ground, and the information is uploaded to the satellites. The message
from the satellite contains time and position information and the
receiver on the ground knows it as well.
In this application of GPS the observation equations are formed for
so-called pseudo-distances, which are time differences between the
receiver clock on ground and the clock information received from the
satellite. The receiver clock is quartz oscillator just like your wrist
watch, and it comes with an offset typically in the order of several
seconds. The receiver clock error (I call it \Delta t_q) is a parameter
to solve for together with the coordinates of the receiver.
\rho_{aq} = s * (t_q - t_a) + s * \Delta t_q
\rho_{bq} = s * (t_q - t_b) + s * \Delta t_q
\rho_{cq} = s * (t_q - t_c) + s * \Delta t_q
\rho_{dq} = s * (t_q - t_d) + s * \Delta t_q
where
\rho_{aq} etc are so-called pseudo-distances between receiver "q" and
satellite "a", other satellites are "b" "c" and "d", "s" is the speed of
light, t_q is the time in the receiver, and t_a is the time in satellite
a, and \Delta t_q is the time bias or the clock error of the receiver
The term s * (t_q - t_a) is the geometric distance between satellite "a"
and the receiver, and \rho_{aq} \rho_{bq} \rho_{cq} \rho_{dq} are
\rho_{aq} = r_{aq} + s * \Delta t_q
\rho_{bq} = r_{bq} + s * \Delta t_q
\rho_{cq} = r_{cq} + s * \Delta t_q
\rho_{dq} = r_{dq} + s * \Delta t_q
where r_{aq} etc are the geometric distances. To solve these equations
one normally linearizes the equations relative to an approximate
position that is provided to the receiver, or that is memorized from
earlier computations. Let us call this approximate location (x0,y0,z0).
\begin{vec}{c}
\Delta \rho_{aq} \\
\Delta \rho_{bq} \\
\Delta \rho_{cq} \\
\Delta \rho_{dq} \\
\end{vec}
=
\begin{mat}{cccc}
\diff{r_{aq}}{x0} \diff{r_{aq}}{y0} \diff{r_{aq}}{z0} s \\
\diff{r_{bq}}{x0} \diff{r_{bq}}{y0} \diff{r_{bq}}{z0} s \\
\diff{r_{cq}}{x0} \diff{r_{cq}}{y0} \diff{r_{cq}}{z0} s \\
\diff{r_{dq}}{x0} \diff{r_{dq}}{y0} \diff{r_{dq}}{z0} s \\
\end{mat}
*
\begin{vec}
\Delta x0 \\
\Delta y0 \\
\Delta z0 \\
\Delta t_q \\
\end{vec}
where \Delta \rho_{aq} etc are observed minus approximated pseudo range
differences (approximated because we can estimate them once the
approximated location x0 y0 z0 is provided), \diff{r_{aq}}{x0} etc are
partial derivatives from geometric range to coordinates, and \Delta x0
etc are shifts to apply to the approximate coordinates.
The left hand side of these equations is known, the right hand side
matrix is known (although it is an approximation) and the right hand
side vector can be solved by inverting the equations. Within a couple of
iterations you update the approximate location until there are no more
coordinate shifts as discussed above.
Now, the OP said he had only three pseudo ranges. In that case you must
add another constraint equation to the system of equations because it
becomes rank deficient. Normally one adds a constraint equation like a
height of the GPS receiver.
Hope this helps,
Q
--
CO2 at 390 ppm and counting, put a tiger in your tank -- ESSO commercial
Thank you for your insight. That means I only solved *part* of the GPS
problem. The triangulation portion of the solution is at,

http://www.geocities.com/jongiff2000/Triangulation_Solver.xls

For the rest of it, you proved it can be done.

Here's another problem I solved:

http://www.geocities.com/jongiff2000/Mach_Projectile_Solver.xls
Tim Smith
2009-02-22 19:42:36 UTC
Permalink
Post by \\frac{1}{R}\\sqrt{\\frac{L}{C}}
In this application of GPS the observation equations are formed for
so-called pseudo-distances, which are time differences between the
receiver clock on ground and the clock information received from the
satellite. The receiver clock is quartz oscillator just like your wrist
watch, and it comes with an offset typically in the order of several
seconds. The receiver clock error (I call it \Delta t_q) is a parameter
to solve for together with the coordinates of the receiver.
I'm curious. Has anyone made a GPS receiver that contains no clock? It
should be possible, by using the GPS signal itself for timing. The
frequency is very precisely controlled, so a cycle counter could be used
for timing.
--
--Tim Smith
Jim Heckman
2009-02-23 01:18:05 UTC
Permalink
Post by Tim Smith
Post by \\frac{1}{R}\\sqrt{\\frac{L}{C}}
In this application of GPS the observation equations are formed for
so-called pseudo-distances, which are time differences between the
receiver clock on ground and the clock information received from the
satellite. The receiver clock is quartz oscillator just like your wrist
watch, and it comes with an offset typically in the order of several
seconds. The receiver clock error (I call it \Delta t_q) is a parameter
to solve for together with the coordinates of the receiver.
I'm curious. Has anyone made a GPS receiver that contains no clock? It
should be possible, by using the GPS signal itself for timing. The
frequency is very precisely controlled, so a cycle counter could be used
for timing.
Possible, but not particularly practical for most applications. You
usually want the receiver to know about what time it is when you
turn it off and later back on, both for apps that use it as a
clock, and so that it has an idea what satellites are likely to be
visible and what their Doppler shifts are likely to be, so you can
find them quickly. Of course, with today's receivers that have a
bazillion parallel channels, that last is becoming less and less
relevant -- just search simultaneously for all 32 PRNs in all
possible frequency bins.
--
Jim Heckman (former GPS receiver engineer)
Loading...