If you wish to contribute or participate in the discussions about articles you are invited to join Navipedia as a registered user

Frequency Lock Loop (FLL)

From Navipedia
Jump to navigation Jump to search

Title Frequency Lock Loop (FLL)
Edited by GMV
Level Advanced
Year of Publication 2011
Logo GMV.png

Frequency Lock Loops are part of the receiver's signal tracking loops, and aim at tracking the frequency of the incoming GNSS signal. The FLL provides frequency corrections in a continuous loop, generating a frequency error signal.


Frequency Lock Loops (FLL) track the Doppler frequency of the incoming signal (with respect to Intermediate Frequency), without necessarily correcting for phase. For that purpose, the FLL uses integrations, filters and Numerical Control Oscillators (NCO) – described here – as any other typical loop. In this case, the specificity relies on the discriminator used to assess the current frequency error estimated at the receiver.

The principle behind most common FLL implementation is to retrieve frequency information, by using the derivative of the phase between two consecutive sets of data (samples). As such, the common FLL is a differential-phase tracking loop. The FLL is expected to work well if the coherent integration time [math]T\,[/math] is small, in order to avoid aliasing:

[math]\frac{-1}{2T}\lt \hat {f}\lt \frac{1}{2T}\,[/math]

Other tracking strategies exist which operate on a different principles, for example, they may directly observe the frequency information via a DFT, or by observing the relative power in correlator values which are computed at various frequency offsets. [1]


First, let us define cross product and dot product, in terms of In-Phase I and Quadrature Q components, as:

[math]cross=I_{P1} \times Q_{P2} - I_{P2} \times Q_{P1}\,[/math]

[math]dot=I_{P1} \times I_{P2} + Q_{P1} \times Q_{P2}\,[/math]

where the indices 1 and 2 refer to samples taken at consecutive time instants, [math]t_1\,[/math] and [math]t_2\,[/math].

This way, the most commonly used FLL discriminators are (ordered from lowest to highest computational burden)[2]:

  • [math]\frac{cross}{t_2-t_1}\,[/math]
  • [math]\frac{cross \times sign(dot)}{t_2-t_1}\,[/math]
  • [math]\frac{atan2 (cross, dot)}{t_2-t_1}\,[/math]

The [math]atan2\,[/math] discriminator is optimal, although it presents the greatest computational requirements. Note that the FLL is insensitive to data transitions, as long as the consecutive measurements (correlator outputs) refer to the same data bit.


The main sources of errors in the FLL are frequency jitter and dynamic stress error[2], which are mostly caused by thermal noise. The FLL thermal noise jitter can be written (in m/s) as:

[math]\sigma_{th}=\frac{\lambda}{2 \pi T} \sqrt{\frac{4FB_n}{C/N_0}(1+\frac{1}{TC/N_0})}\,[/math]


  • [math]\lambda\,[/math] is the wavelength of the carrier signal [m].
  • [math]B_n\,[/math] is the loop bandwidth [Hz].
  • [math]C/N_0\,[/math] is the carrier-to-noise ratio [dB-Hz].
  • [math]T\,[/math] is the integration time [s].
  • [math]F\,[/math] = 1, at high carrier to noise ration; [math]F\,[/math] = 2, otherwise.

The performance of the FLL depends mainly on the loop bandwidth and the integration times used to accumulate the correlator outputs. The impact of these parameters is shown in Figure 1, and they are visible mainly for low carrier to noise ratio.

Figure 1: Impact of loop bandwidth (left) and integration time (right) on the FLL thermal noise jitter performance.

These results also illustrate the fact that longer integration times (and lower bandwidths) lead to noise reduction, hence higher performances, as discussed here. In addition, lower loop noise bandwidths allow coping with higher dynamic environments.

Related articles


  1. ^ J. C. Juang and Y. H. Chen, “Phase/frequency tracking in a GNSS software receiver,” Selected Topics in Signal Processing, IEEE Journal of, vol. 3, no. 4, pp. 651 –660, August 2009.
  2. ^ a b Kaplan E.D., Hegarty C.J., "Understanding GPS: Principles and Applications", second edition.