there seems to be a bug in the costas loop. As far as I understand, in case of nonzero carrier offset, each incoming sample should be rotated with a linear increasing phasor (assuming a constant offset). This is done with the following code:
void gr_mpsk_receiver_cc::mm_sampler(symbol) { d_phase += d_freq; nco = gr_expj(d_phase+d_theta); sample = nco*symbol; } This looks fine so far for me (although I dont understand why theta is added every time, and not once in the initialization of d_phase ...), but there is also the following: void gr_mpsk_receiver_cc::phase_error_tracking(sample) { ... d_phase += d_freq + d_alpha*phase_error; ... } So d_phase gets incremented by d_freq on every incoming sample, and once every symbol. Any comments, is this actually a bug? Stefan -- Stefan Brüns / Bergstraße 21 / 52062 Aachen mailto:lurch at gmx.li http://www.kawo1.rwth-aachen.de/~lurchi/ phone: +49 241 53809034 mobile: +49 151 50412019 _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio