Re: GPS : Basic pseudo-distance computation
From: David Schultz (abuse_at_127.0.0.1)
Date: 03/19/05
- Previous message: Peter Bennett: "Re: GPS : Basic pseudo-distance computation"
- In reply to: le Cl?: "GPS : Basic pseudo-distance computation"
- Messages sorted by: [ date ] [ thread ]
Date: Sat, 19 Mar 2005 02:37:38 GMT
le Cl? wrote:
> I read some papers about GPS and some points still remain really misty
> to me, specially concerning the computation of the pseudo range thanks
> to the C/A code :
>
> If I've correctly understood, the basic concept is :
> at the instant t0, the satellite and the receiver generate a C/A
> sequence
> The signal is received dt after. The pseudo range is (in a first
> approximation) equal to pr=c*dt.
>
Not quite correct. The receiver makes no attempt to generate the PRN code
synchronized with the code at the time of transmission.
The PRN code is a spreading code that spreads the spectrum of the transmitted
signal. The signal to noise ratio of the signal received is actual negative.
(more noise than signal). The signal is recovered through the magic of correlation.
The PRN code is chosen so that if you perform an auto-correlation on it (compare
one copy of the code to another possibly time shifted version) there is a sharp
correlation peak when the codes are aligned. The correlator counts bits that are
the same as +1 and differences as -1. Ideally the result would go from 1023 (all
bits match) when the two codes were time aligned to 0 (half the same, half
different) for the 1023 other possible time delays.
No codes with that property exist (known as "Barker" codes) at that length but
some come pretty close.
In the presence of noise this ideal difference between correlation results of
1023 and 0 goes away. But there is still a sharp rise in the correlation result
when the two versions of the code are timed aligned.
The receiver uses correlation to keep the locally generated code matched to
within 1us or better of the received code.
The receiver now knows what time the transmitted signal arrived with respect to
its local clock. Because that clock is inaccurate (unless you lug an atomic
clock around with you) there some unknown difference between the local time and
the GPS time. This is why you need 4 satellites in order to resolve a position.
Three unknown spatial coordinates plus an unknown time delta are resolved using
the 4 known quantities.
Time of flight...
(t2 + dt) - t1
(t3 + dt) - t1
(t4 + dt) - t1
(t4 + dt) - t1
Where t1 is the transmit time which is known with respect to GPS time. t2-t4 are
the times of arrival with respect to the local clock. dt is the unknown
difference between local and GPS time.
There is a problem of ambiguity because more than one copy of the PRN sequence
is "in flight" from the transmitter to receiver at any one time. This is
resolved because time data is part of the navigation message which is
synchronized with the PRN sequence.
There is of course still the problem that the 1us resolving power of the PRN
sequence still represents an uncertainty of about 300 meters in position. If you
are privileged to be able to use the P/Y code which is transmitted at twice the
bit rate the uncertainty drops to 30 meters. The magic of autocorrelation again
comes to the rescue.
The PRN sequence that spreads the spectrum of the transmitted signal so that the
signal is below the noise floor will also de-spread the signal. If the
locally generated PRN is precisely aligned with the received signal, the
spectrum is despread and the carrier rises up out of the noise floor. Resulting
in Carrier/Noise (C/N) rations of 30dB and up. Now the receiver can track the
carrier phase. This allows for much greater resolving power.
Tracking the RF carrier phase at ~1.5GHz can bring the uncertainty in time of
arrival down to about 20cm equivalent.
This is why receivers have code tracking loops working together with carrier
tracking loops.
Simple. :-)
> - how is it possible for the receiver to generate the code at the
> right time (instant to) ... is it really possible to calculate the
> pseudo distance with only one satellite (or are the 4 satellites
> (3D+T) strictly necessary ?)
>
> - the C/A is a gold code. Its "lenght" (period) is 1023 bits. The
> frequency of the C/A code is 1.023MHz. (Period ~1us). Consequently,
> the C/A has a periodicity of 1ms (maximum lenght for 10bit registers).
> In comparaison, the dt we want to measure is typically around 30000km
> (distance receiver-satellite)/300000km.s-1 (velocity of light) =
> 0.1s=100ms. Let's approximate the dt will be of 60ms.
> Let's consider only one satellite :(each satellite has a different C/A
> code)
> 60ms represent 60 same sequences of the C/A code. How is it possible
> for the receiver to recognize "The" sequence emitted at the instant to
> ? Indeed the same sequence is emitted continuously by the satellite
> ... and its period is 1ms.
> Once again, I wonder if one satellite is enough to determinate the
> pseudo range : dt = N*1ms + t' (0 <t'< 1ms). I can understand it's
> possible to measure t' (by autocorrelation) ... but what about N (1 ms
> corresponds to 300km !)
>
> - I know we need a 4 equations system to determine the 4 variables
> (time and position) ... but maybe one satellite isn't enough to
> calculate its pseudo range. And so the way to think distance
> measurement presented on http://www.trimble.com/gps/distance1.html is
> a very simplified view.
>
> Of course, I assume that all my questions are linked together ...
>
> Really sorry for my level of English and thank you for your answers !
>
> Clément
-- David W. Schultz http://home.earthlink.net/~david.schultz Just because you wind up naked doesn't make you an emperor. - M.A. Padlipsky
- Previous message: Peter Bennett: "Re: GPS : Basic pseudo-distance computation"
- In reply to: le Cl?: "GPS : Basic pseudo-distance computation"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|