Forum: GNU Radio Bug in mspk_receiver_cc?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Stefan Brüns (Guest)
on 2009-03-06 19:30
(Received via mailing list)
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
Johnathan C. (Guest)
on 2009-03-30 04:23
(Received via mailing list)
On Fri, Mar 6, 2009 at 10:29 AM, Stefan
Brüns<removed_email_address@domain.invalid> 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 topic is locked and can not be replied to.