Question regarding gr_mpsk_receiver_cc::mm_error_tracking

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