Hi,
I'm finally getting around to doing some more CPM work and playing with Andy Walls's (fantastic!) symbol timing estimator block. I'm familiarizing myself with the block and had a few questions, mostly prompted by my failure to get it working correctly. =) The timing error detector I'm most interested in is the generalized MSK one. The outputs I'm getting look very reasonable for 2sps, but not at all reasonable for 1sps -- it seems like it's picking the wrong sampling phase to output.
At 2sps (2sps output at the top with timing error, 4sps input at the bottom):
At 1sps (1sps output at the top, 4sps input at the bottom):
The sampling instant in the 1sps case looks off -- I'm getting penalized with a lower SNR as a result. To compare, I went back to the old msk_timing_estimator I hacked together for gr-ais:
You can see it takes a while to lock on, but it does arrive at the correct sampling point eventually. I'm arriving at TED gains and loop bandwidths experimentally (informed by what little data the papers gave on that subject), but I've tried a whole slew without finding any which work well. I'm hoping Andy or anyone else with a detailed understanding of timing recovery (a rarefied group) could chime in here. I've attached the flowgraph I'm testing with.
Best,
Nick