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
- 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.
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.
I’ve been having fun recently learning about software defined radio (SDR). The impetus is this weather station, which Aidan got for Christmas.
We’ve all very much enjoyed the information it provides, and it’s been a great talking point with the receiver on the family dining table.
But when we’re at work or on holiday, wouldn’t it be nice to know what the weather’s like back home? Is it raining? Has the fence blown over? For that reason, in May I bought one of these:
NooElec R820T SDR
The mast transmits the weather data to the display by radio in the 433 MHz band. This NooElec NESDR Mini is a software-controlled digital radio receiver which covers 25MHz to 1750MHz. So it should work!
Since I got it, I’ve been busy learning how to make it go. This has turned out to be more complex than I realised – I finally got it all working in October! – so expect a series of follow-up blog posts.
Bizarrely, the answer is “fonts”!
Spent ages last night trying to work out why on my new PC forwarding 9418 to localhost port 9418 wasn’t working:
Curiously, X11 forwarding worked, and plink -L 9418:localhost:9418 … worked too – but the above didn’t. Can you see it?
The new PC has lots of pixels and the text was small. I first typed this
but it looked to me like I’d missed the colon, so I added one – see above. Turns out localhost::9418 is not a valid port forwarding destination, but there’s no error. It just silently failed.
Changing it to localhost:9418 (as I originally had it) of course made it work. PEBKAC again 🙁 .
Something I really enjoy doing every year is editing the Holiday Club newsletter. Our church runs a holiday club for a week at the end of summer (unusually, in the evenings). We have lots of primary school kids along, and lots of helpers from the church. It’s great for the kids, and it’s also a real community experience for the helpers – it’s one of the highpoints of the church year.
My “bit” is the newsletter. It’s important because it goes into kids’ homes, and so it’s seen by parents and carers as well as the kids themselves. I try to tell the story of that day’s club – the drama and message – and also to convey some of the fun as well. Obviously there’s a practical function too, and there’s the competition and activities as the main “point” of the newsletter.
This year the holiday club was Fit for the King, on the theme of the Commonwealth Games, so I called the newsletter the Fitness Fanatic. I’ve attached the newsletters below, or you can visit the Holiday Club page on the church website to read more.