Question About Tracking Loop Update Rate in GPS L1 HDL Receiver Example
5 views (last 30 days)
Show older comments
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
0 Comments
Answers (1)
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
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.
See Also
Categories
Find more on Transforms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!