This post is a summary of the main content of G. R. Danesfahani and T. G. Jeans, Optimisation of modified Mueller and Müller algorithm, Electronics Letters 31(13), 22nd June 1995, pages 1032-1033 (DOI 10.1049/el:19950711). The original paper is copyright IEE, and is available from IEEE or your local library. The algorithm described in that paper is the one used in GNU Radio‘s gr_clock_recovery_mm block.
The paper first recalls the modified Mueller and Müller algorithm: given
- data symbols
- received signal
with real part
,
- the receiver’s decision on the data symbol
then the modified Mueller and Müller algorithm (mM&M) computes an error
.
The paper then observes that this algorithm contains a self-noise term which can be cancelled by adding
.
The resulting algorithm, the optimised modified Mueller and Müller algorithm for real symbols (e.g., BPSK), outputs a timing error
.
This can be generalised to the complex domain (e.g., for QPSK) as
,
where
is the receiver’s decision on the (complex) data symbol, and
is the complex conjugate of
.
Figure 1 presents this equation in the form of a block diagram, including a combined filter and interpolator (and presumably sampler) betweeen the input signal and , a decision block between
and
, and a loop filter driven from the real output of the equation via
which influences the filter/interpolator/sampler.
The paper then presents simulation results (using a gain factor of ) which show that while the mM&M algorithm has fast acquisition it has lots of jitter and some symbol slips; by contrast the optimised mM&M algorithm exhibits much less jitter and no symbol slips, while preserving the same fast acquisition characteristics.
Hi there to all, the contents present at this site are really
remarkable for people knowledge, well, keep up the nice work fellows.