the function of advance_loop and update_gain is defined as follow in gri_control_loop.cc
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;
}
void gri_control_loop::advance_loop(float error)
{
d_freq = d_freq + d_beta * error;
d_phase = d_phase + d_freq + d_alpha * error;
}
Is there any paper explains why the d_freq and d_phase is calculated in such equation?
Thanks