Hello,
I am reading the code for frequency correction in the demodulation chain for the narrow band like PSK, GMSK, etc.
In the gnuradio/gr-digital/python/generic_mod_demod.py, two blocks contains the code related to the frequency offset correction.
1. digital.fll_band_edge_cc
I am not familiar with the algorithm employed in this frequency loop locking block. Is there any direct reference for this block, such as paper or documentation?
2. digital.constellation_receiver_cb
It has a member function to update the phase and frequecy of the incoming samples, digital_constellation_receiver_cb::phase_error_tracking()
Is there any reference for me to understand it more easily. Especially, this member function calls
void
gri_control_loop::advance_loop(float error)
{
d_freq = d_freq + d_beta * error;
d_phase = d_phase + d_freq + d_alpha * error;
}
where the d_beta and d_alpha is updated in
void
gri_control_loop::update_gains()
{
float denom = (1.0 + 2.0*d_damping*d_loop_bw + d_loop_bw*d_loop_bw);
d_alpha = (4*d_damping*d_loop_bw) / denom;
d_beta = (4*d_loop_bw*d_loop_bw) / denom;
}
I did not find any explanation for these two part of codes.
Appreciate any helps.
Thanks
--
Alex,
Dreams can come true – just believe.