Bug in mspk_receiver_cc?

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

On Fri, Mar 6, 2009 at 10:29 AM, Stefan
Brüns[email protected] wrote:

So d_phase gets incremented by d_freq on every incoming sample, and once every
symbol.

Any comments, is this actually a bug?

Yes. Your fix was applied to the trunk today as r10702.

Thanks!

Johnathan

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs