Using your perfect samples (the ones you get with decim=8), can you
try low pass filtering them (without decimating) to the equivalent
width that you'd get with the decim=256 setting, and then plotting
them?

Maybe it's not perfectly round because with the narrower filter, we're
losing more of the sidebands.  IIRC it's only constant envelope with
infinite sidebands.



Sorry for the delayed response, I've been away for a bit. Regarding losing
more of the sidebands due to the tighter filters @ higher decimation: I was
matching the symbol rate of my transmitted signal to the decimation rate.
I.e. at d=256 I set sym rate=31.25ksym/sec, at d=8 I used 250ksym/sec. So it
should be chopping the same amount of sideband in either case. I'm going to
continue looking into this, will let you guys know if I discover anything
interesting.

Regarding improved carrier tracking for GMSK rx: Eric, your IIR filter idea
seems to be working like a charm. Below is the relevant modification to
gmsk.py:

self.fmdemod = gr.quadrature_demod_cf(1.0 / sensitivity)
self.lpf = gr.single_pole_iir_filter_ff(0.0001)
self.subtracter = gr.sub_ff()

[other stuff here]

# Connect & Initialize base class
self._fg.connect(self.fmdemod, self.lpf)
self._fg.connect(self.fmdemod, (self.subtracter, 0))
self._fg.connect(self.lpf, (self.subtracter, 1))
self._fg.connect(self.subtracter, self.clock_recovery, self.slicer)
gr.hier_block.__init__(self, self._fg, self.fmdemod, self.slicer)


It seems to be working well... the only question is what to use for the
alpha value in the filter constructor. 0.0001 seems like a good compromise
between converging to the correct value quickly and being relatively stable.
Am I taking a reasonable approach with this design?

Thanks again for everyone's comments.
-Steven
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to