I am trying to measure the DC voltage of a full-wave rectified 60Hz AC signal using an A/D and have it match what a Fluke meter reads on its DC scale. My current approach is to take as many (16 bit) samples as necessary in a measurement loop to measure a full 60 Hz cycle (16.6667 ms), then average the samples. I then take the A/D output and apply a scale factor to get the actual voltage reading to match what the Fluke says. But, when I apply a pure DC voltage (or a different rectified AC voltage) to the measurement circuit, the scaled result no longer matches the Fluke when measuring the same pure DC voltage. The results differ by more than 5% and the difference varies with peak-peak range of the rectified DC voltage.

So, I guess I'm asking how does a Fluke (or other) meter measure DC using it's internal A/D?

  • 1
    \$\begingroup\$ When the rectifier diodes see a very high-resistance load (the Fluke would be 10 MEGohms), capacitance can easily cause the waveform to fall to some DC voltage rather than to zero volts. This causes error in the averaging process. A proper comparison between Fluke & ADC should load the diodes with a resistor - enough that you have a waveform that reaches 0V on its downward-going swing. \$\endgroup\$
    – glen_geek
    Dec 21, 2018 at 16:10
  • \$\begingroup\$ A multimeter on the DC range is accurate only with a signal with no AC component (which is simply ignored via an LPF) If you have a signal that has AC impressed on it such as a rectified AC with no output capacitor, then the DC meter will NOT give an accurate indication. You could use your A/D to measure DC via an LPF and then on another channel measure the AC RMS ripple to get more accurate readings. \$\endgroup\$ Dec 21, 2018 at 18:37
  • \$\begingroup\$ A fluke is a fairly high quality meter. When you set it for DC, it attempts to read only the DC portion of the signal. When set for AC it reads the RMS AC voltage, which is a specific type of average. If you want to compare that to the number your processor produces, it's important that you calculate in the same way. To find the Root Mean Square voltage, take the square of each measurement and sum the squares for the duration of the measurement period, and take the root of this final sum. Vrms=sqrt(V1^2+V2^2+V3^2 ...). \$\endgroup\$
    – K H
    Dec 22, 2018 at 0:56
  • \$\begingroup\$ If you're just using 16.6667 ms as an arbitrary duration this won't be relevant, but if you're sensing the AC cycle, note that if you sample a larger number of cycles it will decrease your cycle detection error. \$\endgroup\$
    – K H
    Dec 22, 2018 at 0:57
  • \$\begingroup\$ Yes, I am using the 16.667ms as sort of a low pass filter. It should account for voltages from other phases being superimposed on the signal. Good thought about measuring multiple cycles. \$\endgroup\$ Dec 26, 2018 at 22:18

1 Answer 1


To follow up on @glen_geek's insightful comment, the input circuit to the Fluke on a DC range typically looks like a high value divider plus a capacitor.


simulate this circuit – Schematic created using CircuitLab

When the diodes of the bridge rectifier are 'off', your meter actually outputs a small voltage (in the case above it would peak at 1/10 of the peak input voltage then decrease as the capacitor discharges) so the reading on the meter would be a bit higher than if you had a light load (say 100K) on the output of the bridge rectifier.

This may be the cause of your discrepancy. The DMM won't read reliably under those conditions- a bit of diode leakage can change the reading, you really need to have a small load on the bridge rectifier output. If your ADC input has much less input capacitance you will be getting a different value (possibly lower).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.