Fine frequency correction : grouping and finding max amplitude

Started by AiDrmek 5 months ago2 replieslatest reply 4 months ago108 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.

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

[ - ]
Reply by AiDrmekJune 28, 2021


Dear Mr Harris,

thank you for taking time to reply.

In my model I need to implement phase and frequency correction steps. I have read other discussion and would like to use CORDIC algorithm for phase rotation and correction by finding a signal with max amplitude ( I work in FPGA). I understand Phase and Frequency correction are two different algorithm, but for me,  a software engineer, they are same. I will correct phase or frequency , don't matter.

I have noticed if the Doppler frequency is not constant...this algorithm doesn't correct "good". of course, I will add a time error correction as well, but i think I need smth else as phase correction step...before signal goes to base band.

Could you suggest me technique, algorithms or methodes you used?

Best regards