View Single Post
  #41   Report Post  
Old April 28th 08, 07:58 PM posted to uk.transport.london
Clive D. W. Feather Clive D. W. Feather is offline
external usenet poster
 
First recorded activity at LondonBanter: Jul 2003
Posts: 856
Default How GPS works (was Bus Information Signs)

In article , Tom
Anderson writes
I think how it works is the receiver has to jump between frequencies
on the same pattern as the satellite it wants to listen to.

True, I believe.

I believe it's actually CDMA rather than frequency-hopping. Although
the two are probably equivalent in some deep way.


You're right, and I mis-read.

Yes, this isn't complicated. There's a pseudo-random number generator
algorithm, for which each satellite has its own seed, and the receiver
knows the algorithm and the seeds. The generator and seed are used to
produce a 1023-bit code which is used to modulate the carrier in the
CDMA scheme.


It's actually even simpler than that. There are two 10-bit shift
registers which each generate a 1023 bit sequence. The second one has
the property that if you take any two intermediate bits and XOR them
together, you get the same 1023 bit sequence but shifted by some number
of bits. The output of the first register and two intermediate bits of
the second register are XORed together to form the 1023-bit code. Each
satellite uses a different pair of intermediate bits.

Rather, there's one frequency, producing a stream of bits which are the
sum of the signals from all the satellites. CDMA lets you filter that
stream and recover a single satellite's signal. Basically, the CDMA
decoder takes the raw, summed signal, plus one of the 1023-bit codes,
and gives you back the satellite signal that was modulated with that code.


Right - the mathematics to do this turns out to be very simple (well, to
programmers it will).

The code input and satellite signal need to be in sync,


Or you record one cycle of the data and run all 1023*31 possibilities
through the algorithm.

That's certainly what wikipedia says: the 'navigation message' goes at
50 bits per second,


Right; thus 20 copies of the 1023-bit pattern per bit. The data bit is
XORed with the code to produce the transmitted signal.

--
Clive D.W. Feather | Home:
Tel: +44 20 8495 6138 (work) | Web: http://www.davros.org
Fax: +44 870 051 9937 | Work:
Please reply to the Reply-To address, which is: