Question About Tracking Loop Update Rate in GPS L1 HDL Receiver Example

5 views (last 30 days)
Hello,
I'm currently working with the GPS L1 HDL Receiver example provided by MathWorks and have a question regarding the tracking loops, specifically how and when they update.
From what I understand, the input to the tracking loops — such as the in-phase and quadrature accumulations — is computed and updated once every 1 ms, corresponding to the integration interval. After this integration, the code phase, Doppler, and carrier phase offsets are estimated.
What I'm trying to clarify is:
Do the control loops themselves (e.g., the DLL, FLL, and PLL) update once per 1 ms, producing a fixed output until the next integration result is available?
Or do they update at every internal time step (clock cycle) within that 1 ms window, using the same input (from the last integration) but recalculating a changing output (due to different y[n-1] values) on each step?
If the latter is the case (i.e., loops iterate every clock with the same input), could you please explain the reason or benefit behind this implementation? I'm trying to better understand the design decisions, especially in terms of tracking loop performance.
Thanks in advance for your help!
Best regards,
Sher Ali

Answers (1)

Shashikanth Bonamonu
Shashikanth Bonamonu on 12 Jun 2025
Edited: Shashikanth Bonamonu on 12 Jun 2025
Hi Sher Ali,
In the tracking subsystem of the GPS HDL Acquisition and Tracking Example, there are 3 loops: PLL, FLL, and DLL. At the end of 1stms they give out 1 value of phase, frequency and code phase offsets. These phase and frequency offsets are used during the 2nd ms to generate appropriate local carrier wave for carrier wipeoff. The code phase offset is used during the 2nd ms to generate C/A code with that offset and is used for code wipeoff. At the end of 2nd ms, all the three offsets are estimated again. These estimated values are added to the previous estimates (accumulating the estimates at the end of every ms) and the accumulated estimates are used during the 3rd ms and so on. This will continue and after some point, the estimated phase, frequency and code phase offsets are almost zero even if you continue for more milliseconds. The loops are said to be converged.
  2 Comments
Sher
Sher on 14 Jun 2025

So the control loop update rates are 1 ms, right? I understand that the output of the control loops goes to the NCO and PRN generator, and their outputs are obviously changing. But the input to them is constant during that 1 ms interval right?

Basically, my question is about the NCO: Are you sure that the input to the NCO is a constant phase increment and offset during the entire 1 ms period, and not something that changes due to continuous updates from the control loops?

Shashikanth Bonamonu
Shashikanth Bonamonu on 16 Jun 2025
Yes, you are right.
Control loops update once at the end of every millisecond, so the NCO uses those values for the next millisecond.

Sign in to comment.

Products


Release

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!