A long time ago in a galaxy far, far away… I did a lot of work on the measurement of domestic electrical energy. I learned two key lessons from the whole project. Firstly, that the metrology of electricity is one of the most carefully detailed specifications in the commercial world. Any measurement that translates into a bill that lands on your doormat has to be done carefully, with an integrity that’s beyond suspicion. And secondly, that the fit of these metrology specifications onto the conventional performance parameters of signal chains and data converters is a mystery to almost everybody.
Here’s a case in point. Computing electrical energy from sampled sequences of voltage and current measurements is not actually that difficult. There are many interesting aspects connecting sample rate, converter resolution, linearity, processing the signal from various current sensing elements… in fact, now that I think of it, source material for quite a few blogs!
One reason that energy measurement is quite forgiving is that any noise sources present in the voltage and current channels are likely to be uncorrelated to each other and to the AC line frequency. This means that when we multiply voltage and current sequences point-by-point, the mean error caused by this noise tends to zero. So you can get away with a lot more noise in your measurement channels than you might have thought.
The same can’t be said for the measurement of current. And as we become more economical with our energy consumption, it becomes more interesting to take accurate, noise-free measurements of the current itself. This is particularly important when you want to calculate the ‘apparent’ power taken by your house or office. Nasty loads like triac-dimmed light bulbs and uncorrected switching power supplies take highly non-sinusoidal input current. These nasty currents cause increased energy wastage in the distribution and generation network.
So, with my project, the Pointer on the engineering ‘Wheel of Fortune’ stopped one day at accurate current measurement. I wanted our tour-de-force electricity meter demo to be able to measure tiny AC currents without the reading jumping around all over the place due to noise in the current measurement channel.
I told one of the guys on my team what I was looking for: For a load current 1000x smaller than the meter’s nominal full scale to have at most 0.1% variation on the rms current reading due to channel noise. What, I mused, is the SNR I need in my measurement channel, to achieve this target?
“That’s easy enough.”, he shot back. 1000x is 60 dB. 0.1% is one part in 1000, which is another 60 dB. So you need 120 dB channel SNR. And, shoot (or something similar-sounding), we can’t get anywhere near that at the sample rate and channel count we’re aiming for.
Now, you know me. The waving of hands is not my favourite way of getting a quantitative handle on what’s going on. It was time to fire up the equation editor and to:
Calculate the effect of channel noise on measured rms signal level
By definition, the rms value of a current over a measurement interval of N samples i(t) is:
and, for a noisy current which is that ideal current plus a noise signal n(t):
We can multiply out the square of the two currents in :
and recognize that, since i(t) and n(t) are (assumed to be) uncorrelated, the integral (or sum) of their product tends to zero for large enough N, so we can strike out that term, resulting in:
And, manipulating :
Now the (linear rms) signal-to-noise ratio snr is defined as:
and we can substitute  into the rhs of :
and solve this for snr to get the following expression:
This looks rather simple. Let’s try a:
I wanted 0.1% accuracy at a current level of 0.1% of full scale, i.e. -60dBFS. Recognizing that this implies inoisy /irms =1.001 (noise always makes the measured value larger, not smaller) and substituting this into , we have:
and this is at a signal level of -60dBFS, so the required dB snr referred to full scale is (60dB+27dB), which is 87dB. This is a whole lot more do-able than the 120 dB that came from the waving of hands. It was also well within the available performance of the delta-sigma ADC on the PSoC 3 Programmable System on Chip device that we were in the process of turning into a super AC metrology engine.
I may get the chance to talk about more of the signal processing wizardry that ended up in our design. But in the meantime, just remember: don’t wave your hands – wave equations!