Hi All

I am trying to understand how the optimised modified Mueller and Muller
algorithm is implemented in GNU Radio.

I had a look at the method gr_mpsk_reciever_cc::mm_error_tracking, to
see how this is done. As far as I can tell, lines 242-245 are intended
to implement equation (8) of the referenced paper, where mm_error
corresponds to mu(k) in eqn. (8). However, if I have interpreted this
correctly, what is implemented is actually:

\mu(k) = Real{[p(k) - p(k-2)] \times \hat{c}^{}(k-1) - [\hat{c}(k) -
\hat{c}(k-2)] \times p^{
}(k-1)},

whereas eqn. (8) in the referenced omM&M paper, is actually:

\mu(k) = Real{[\hat{c}(k) - \hat{c}(k-2)] \times p^{}(k-1) +
\hat{c}^{
}(k-1) \times [p(k) - p(k-2)]}

Have I missed something here? Are these lines of code not meant to
implement eqn (8) as I suspected?

Thanks

Ian.

Hi Ian,
I think the code is correct. Eqn. (8) in the referred paper is wrong.
However, Fig. 1 in the paper is right, and the gnuradio code is exactly
the same as Fig.1.
Kyle

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.