I've been looking into how GPS receivers work in terms of signal processing. When a GPS receiver tracks the received signal, it often uses a Costas loop to synchronize the carrier.

How that works with the signal of one satellite makes sense to me. A local carrier gets multiplied with the incoming signal and the resulting phase error between the two can be extracted to tune the frequency and phase of the local carrier until they match and the phase error becomes zero.

With GPS, the receiver usually receives at least 4 different signals from different satellites though. They all experience slightly different doppler shifts, so that the receiver "sees" them at different frequencies.

Using a Costas loop on this mix of signals means the phase error never really reaches zero, because even if the local carrier perfectly matches one of the signals, the phase discriminator will pick up the remaining phase errors against all the other received satellite signals.

How does the Costas loop of a GPS receiver get around that?

Is the loop filter supposed to filter these other phase error sources out? Aren't these other phase errors all similar, so that a filter couldn't differentiate between them?

  • $\begingroup$ each satellite has different code, you have a separate receiver for each modulation $\endgroup$
    – user28715
    Feb 4, 2019 at 7:47
  • $\begingroup$ in CDMA, the spreading codes separate each signal $\endgroup$
    – user28715
    Feb 4, 2019 at 13:11
  • $\begingroup$ But in the carrier synchronization the code is irrelevant, right? $\endgroup$
    – Tobias
    Feb 5, 2019 at 5:37
  • $\begingroup$ @Tobias: No, carrier synchronization would typically be done after code synchronization. Once you're synchronized to the code, you can multiply by its conjugate to remove the spreading for the signal that you're interested in. Then, you can matched filter, synchronize to the carrier, etc. as you would normally. $\endgroup$
    – Jason R
    Feb 6, 2019 at 12:37


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.