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.
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?
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.0d_dampingd_loop_bw + d_loop_bwd_loop_bw);
d_alpha = (4d_dampingd_loop_bw) / denom;
d_beta = (4d_loop_bw*d_loop_bw) / denom;
}
I did not find any explanation for these two part of codes.
Appreciate any helps.
On Tue, Jan 08, 2013 at 12:27:29AM -0600, Alex Z. wrote:
In the gnuradio/gr-digital/python/generic_mod_demod.py, two blocks contains the
code related to the frequency offset correction.
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?