Précis of Danesfahani and Jeans, Optimisation of modified Mueller and Müller algorithm

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 a(i)
  • received signal p(k) with real part p_r(k),
  • the receiver’s decision on the data symbol \hat{a}(k)

then the modified Mueller and Müller algorithm (mM&M) computes an error

\mu_1(k) = (\hat{a}(k-1) - \hat{a}(k+1))p_r(k).

The paper then observes that this algorithm contains a self-noise term which can be cancelled by adding

\mu_2(k) = \hat{a}(k)(p_r(k+1) - p_r(k-1)).

The resulting algorithm, the optimised modified Mueller and Müller algorithm for real symbols (e.g., BPSK), outputs a timing error

\tau = 0.5(\mu_1(k) + \mu_2(k)).

This can be generalised to the complex domain (e.g., for QPSK) as

\mu(k) = {\bf R}((\hat{c}(k) - \hat{c}(k-2))p^*(k-1) + \hat{c}^*(k-1)(p(k)-p(k-2))),


  • \hat{c}(k) is the receiver’s decision on the (complex) data symbol, and
  • p^*(k) is the complex conjugate of p(k).

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 p(k), a decision block between p(k) and \hat{c}(k), and a loop filter driven from the real output of the equation via \beta which influences the filter/interpolator/sampler.

The paper then presents simulation results (using a gain factor of \beta = 0.18) 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.

Weather station now live!

I’ve been enjoying the weather page and graphs I put together for a few months now, and I’ve been steadily adding features. So I guess it’s about time I opened it up for everyone else to see too! So here it is: Wallace Brae Weather.

The current observations are at the top: temperature, relative humidity, wind speed (average and gust). This is followed by recent rainfall. Finally, we have the extrema: low and high temperature and highest wind speed over the last day. Then there is the time of the last observation – use this to check the system is still live.

Below this are the graphs: one for the last 24 hours, and one for the last week. Blue is rain (area corresponds to rainfall, and height to rain rate), red is temperature, yellow is humidity, and green is wind speed (dark is average, light is gust). I’m working on the best way to present the scale for the Y axis; for now you’ll have to work it out. The grey horizontal lines mark key points (e.g., 0 and 10 degrees C).

You can read about where it came from and how it works on the weather category on this blog – I haven’t posted much yet, but hopefully there will be more soon.

Enjoy! And do let me know if you like it!

The nearest other weather station I know of is the Polmont weather page, a bit over a mile north-east of here, down the hill.

Arduino cake

It was Aidan’s 10th birthday party on the weekend, so a birthday cake was in order. And what better subject than an Arduino Uno?


This is a 3:1 scale model of an Arduino in vanilla buttermilk sponge, with coloured fondant icing (some dark chocolate was mixed in for the black components), royal icing details, and real (inedible) LEDs. Here it is from a few other angles:



The USB type B socket, power socket, and ATmega328P are all separate blocks of iced cake attached with buttercream. The USB socket needed a couple of toothpicks to hold it in place.


Four LEDs with long wires attached were inserted from the underside of the cake through holes made with chopsticks. These were driven from a real Arduino Uno running a simple program which simulated the flashing of the RX and TX lights during loading, followed by signalling “Happy 10th Birthday Aidan” in Morse code on the pin-13 LED on the board. See the video.


The result was well worth it – one very impressed young man!


Check out some of the other cakes we’ve done.

Science at a science museum

Yesterday C and I took the kids to Sensation Science Centre in Dundee, and I was blown away. Sensation is a great science museum, but the highlight for me was one exhibit on science itself.

Most of the time science museums, science displays, and science programmes are about “cool stuff” – explanations and demonstrations of how things work, illusions and what’s behind them, the latest technology, and so on. Dundee has plenty of that. But it also has this:

It doesn’t look like much, but it’s one of the best science exhibits I’ve seen. It’s about what science really is – not “cool stuff”, but questioning and finding answers. It’s in four parts.

The first part is about precision – about lab work, really. Scientists have to measure and record very precisely and very carefully, so their experiments are repeatable. There is a precision scale, a collection of tiny beans, and a pair of tweezers. The challenge is to measure out exactly 1.00g; when you’ve done that, the super-challenge is to measure out exactly 2.38g.

The second, the key for me, is about how scientists know things and what that means (epistemology, though it never uses the word). There are three sealed boxes. The challenge is to work out what’s inside each without opening the box. You can shake the box, listen to it, feel it, weigh it, tap it; you can discuss your ideas with your friends and colleagues; but you can never open the box. It’s real science: you have observations, you have the opportunity to discuss and clarify your ideas with others, but at every point all you have is the best theory so far: there’s no way to open the box and find out the real answer. I thought this was absolutely brilliant – when you realise there is no answer available and you can never truly know whether you were right, it makes a big impact. (It’s well worth checking out the videos on the Mystery Science Boxes website.)

The third part of the exhibit is about observation. There are three items in the display: a drinks bottle with a sachet of HP Sauce in it, a glass panel with a magnet on a string, and a black circle. The aim is to look carefully, taking the time to see everything that there is to see, and to try and work out the reason for what you see. The sauce sachet behaves oddly, there are patterns in the glass, and the black circle is more than it seems – though to some people more than others!

The fourth part is about ethics and application of science. We are developing technology – the example used is geoengineering – how should we proceed, and what should we do with it? Each visitor is asked to rank a number of statements from strongly agree down in steps through to strongly disagree. While some statements are easy to place, others require hard thinking.

Together, but especially the second part, this made a powerful and accessible presentation of what scientists actually do and what science really is – beyond the tricks and demonstrations of the typical exhibit. Well done Sensation!

X Factor 2010 Vote Analysis

Once again, here’s the voting data for X Factor 2010 (from the official PDF).  I’ve normalised it according to the number of contestants each week: if there are 5 contestants, then -1 means no votes, 0 means 20% (i.e, even split), 1 means 40%, etc.  In week 10, there were were two “splits” before the final vote, and the numbers include all votes for all four finalists, even though in split 2 and the final some contestants were no longer eligible.

Here’s the spreadsheet.