Thanks Matt, I understand the issue now and switching atan functions does
indeed make the glitches go away.

Do you have a sense of how much slower the regular atan2f function is than
gr_fast_atan2f?
If the performance hit isn't too bad, I might leave it in for peace of mind.

Regarding excessive oversampling: I agree that 64, 128, etc. samples per
symbol is pretty ridiculous, I was just seeing how the issue scaled with
sps.

What is the best strategy when you want to rx a signal at a very slow symbol
rate? Max decimation (256?) on the USRP, then decimate/filter some more in
software? As an arbitrary example, symbol rate 7812.5 sym/sec: have the usrp
decimate by 256 and you're still at 32 samp/sym. What is the best way to
partition decimation between hw and sw? Which sw blocks are ideal for this?

On 9/21/07, Matt Ettus <[EMAIL PROTECTED]> wrote:
>
> Steven Clark wrote:
> > Hi all-
> > please look at this sequence of eye diagrams:
> > http://picasaweb.google.com/steven.p.clark/GMSKFmdemodGlitches
> >
> > These are from a gmsk mod/demod pair, showing the output of the TX's
> > gaussian filter (blue) overlaid with the output of the RX's fmdemod
> > (red). BT = 0.35.
> >
> > At 8 samples per symbol, everything looks ok. Red is pretty much right
> > on top of blue, as we'd expect.
> > As I increase samples per symbol, however, something strange happens,
> > shown in plot sequence. The RX's fmdemod output gets successively more
> > "glitchy".
> >
>
> This might be because of the use of gr_fast_atan2f.  This function is an
> approximation used in order to speed things up since the real atan2f is
> slow.  Could you try replacing line 58 of gr_quadrature_demod_cf:
>
>           out[i] = d_gain * gr_fast_atan2f(imag(product), real(product));
>
>
> with
>
>         out[i] = d_gain * atan2f(imag(product), real(product));
>
> and see if the problem persists?  When doing very high oversampling like
> you are, the difference in phase angles between successive samples is
> very small.  If the error when doing the lookup table interpolation
> changes a bit when crossing over the endpoints of the table, you could
> see this sort of effect.  You'll notice that the errors are always at
> the same point in the diagram, around the mid-level, which is where the
> frequency is lowest.
>
> Matt
>
>
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to