8
\$\begingroup\$

Modern GPS chips can use signals from many satellites at the same time to obtain a solution. While typically 4 are necessary, a larger number helps improve the solution with some types of errors.

As an example for this question, the Adafruit Ultimate GPS uses a GlobalTop FGPMMOPA6H chip. The Module is said to have 66 channels and be able to track 22 satellites simultaneously.

My basic understanding of (at least the coarse acquisition stage) of GPS signal processing is that the antenna signal is amplified, possibly shifted in frequency and demodulated. All satellites broadcast in the same frequency band, but the signal from each is modulated by a unique Gold code. The signals are identified by correlation - the chip decides which satellites might possibly be above the horizon and loads those Gold codes into the correlators.

There are about 32 GPS satellites, so 22 is more than enough from the surface of the earth (space is a different matter).

But why are there 66 channels for 22 possible satellites?

Reading this answer "You need one channel, per frequency, per satellite." it looks like the factor of three (66/22) might come from the ability to track L1, L2 and L5 signals, but I am not sure that's what is happening here. However this answer The number of channels inside a Navigation receiver is definitely more than a marketing gag suggests that L5 requires two correlators by itself.

Why 66/22?

\$\endgroup\$
  • \$\begingroup\$ Modern GPS chips seem to be able to also receive glonass and galileo. \$\endgroup\$ – PlasmaHH Jun 6 '16 at 10:14
  • 1
    \$\begingroup\$ By channels are meant correlators. 3 correlators would discover the signal 3 times earlier if the scan interval is split into 3 intervals. \$\endgroup\$ – Marko Buršič Jun 6 '16 at 12:17
  • \$\begingroup\$ @MarkoBuršič thanks! - scan over what parameter exactly? \$\endgroup\$ – uhoh Jun 6 '16 at 12:25
  • 1
    \$\begingroup\$ @uhoh over time interval: en.wikipedia.org/wiki/Cross-correlation \$\endgroup\$ – Marko Buršič Jun 6 '16 at 12:38
  • \$\begingroup\$ @MarkoBuršič OK, as discussed down here earlier? \$\endgroup\$ – uhoh Jun 6 '16 at 18:22
5
\$\begingroup\$

Adafruit Ultimate GPS is in no way representative of all GPS receivers out there. Many good receivers have more channels than that; 256 is common in high-end devices. Note that 256 is not divisible by 3, so the factor of 3 you're seeing is a red herring.

Also, you rarely get a signal from 22 satellites, and it's not necessary to have a fix. Having a signal from 7-10 satellites is quite common in real-world conditions.


\$\endgroup\$
  • 1
    \$\begingroup\$ Wow! How could 256 channels possibly be used at the same time? I appreciate that this is just an example to start the conversation, but wow, does such a large number of correlators imply that it is able to work simultaneously with multiple constellations (GPS, Glonass, Galileo, BeiDou...)? \$\endgroup\$ – uhoh Jun 6 '16 at 11:06
  • 2
    \$\begingroup\$ 256 channels are used to search for satellites. See if this answers your question on how 256 channels are used. \$\endgroup\$ – Dmitry Grigoryev Jun 6 '16 at 11:18
  • \$\begingroup\$ Do the GPS satellites change coarse acquisition (C/A) Gold codes over time? I thought those were assigned, fixed and known - that you'd only need to search for the 32 codes assigned to the 32 satellites. \$\endgroup\$ – uhoh Jun 6 '16 at 11:30
  • 3
    \$\begingroup\$ Ah - offsets! OK got it. A group of correlators may be searching for the same code, but offset sequentially by (for example) half of a "chip" (chip is one bit of the 1023 bit long code) per correlator. \$\endgroup\$ – uhoh Jun 6 '16 at 11:37
  • 1
    \$\begingroup\$ Yep. There's also a frequency variation due to the Doppler effect, and you have to multiply the number of possible phases by the number of possible frequencies to find the number of correlation attempts. \$\endgroup\$ – Dmitry Grigoryev Jun 6 '16 at 11:51
2
\$\begingroup\$

They way I understood it was due to the method the correlators work. As mentioned in the question, each satellite has its own unique code.

If you're starting up from the cold start, chip doesn't know which satellites are up in the sky, because it doesn't know the time and doesn't know where it is, so it needs to do exhaustive search. This is where having more correlators helps a lot. Instead of just loading expected satellites, you load as much as you can and then work from there on. This can be especially problematic for small devices with little or no memory on their own and no way to access the Internet for A-GPS.

\$\endgroup\$
  • \$\begingroup\$ OK that's very interesting and makes sense - you mean this is a way to establish which satellites are "up" without an ephemeris? If a cold start wasn't required, would only 22 channels be needed, or is this just one of the reasons why 3n correlators are present? \$\endgroup\$ – uhoh Jun 6 '16 at 10:51
  • 1
    \$\begingroup\$ Early units had only the 4 channels needed to make a fix, or maybe up to 12 in order to improve the result. Some systems have one hardware channel that's time division multiplexed. gpsinformation.org/dale/why12.htm \$\endgroup\$ – pjc50 Jun 6 '16 at 12:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.