Fine frequency correction : grouping and finding max amplitude

Started by AiDrmek 2 weeks ago1 replylatest reply 2 weeks ago89 views


I work on phase and frequency estimation algorithm. Currently I am working on a derivation and determination of the Doppler shift( dF – frequency step).

For each dF, The following algorithm was applied for group of sample - M (base band):

  • M is filtered by RRC FIR filter
  • Compute amplitude Amp(i), where I is an index of frequency
  • Sum the N adjacent samples up: AmpSum(j)
  • Find a max.

If AmpSum(j)>max

max= AmpSum(i);

dF = a;


For the maximum value determined in this way(dF), a fine correction is then carried out . This is a weighted averaging in order to determine the mean frequency within the detected bandwidth for different signals CW, random data and sync sequence.

I have tested with groups of 4,6,7,8,9,10 and decided firstly to check fine correction with a group of 9 samples.

What do you think?

Could you let me know what your thoughts are on such algorithm? Could I use it? what have i to consider ( important for me)?

PS I simulate a low data rate receiver.

[ - ]
Reply by fharrisJune 11, 2021

Dear AiDrmerk,

Small amounts of Doppler offset will be removed by the phase lock loop that tracks phase offsets from the timing sample positions identified by the timing recovery loop. Slow rotation rates will be interpreted as phase offsets and will be removed by the phase PLL.

Significant frequency offsets will not be able to pass through the PLL Loop filter and will require an acquisition aid. the aid is a frequency lock loop PLL. See attached paper.

I teach a course in DSP based Modem synchronization

Much of that material can be found in the recent copy of the Sklar-harris 3-rd edition of Digital communications. Worth chasing down!  


fred harris