Thursday 16 November 2017

precision - Accuracy of a data acquisition hardware


In a data acquisition system absolute accuracy is defined as measure of all error sources as following:


Abs. accuracy = error from Gain(Span error) + error from Offset + (error from Noise + Quantization)


Here in the following data sheet at page 30:


http://www.mccdaq.com/pdfs/manuals/PCI-DAS6034-35-36.pdf


for analog inputs the absoulte accuracy for +-10V range is defined as 10.2*LSB where I calculate absoulte accuracy as:


10.2 * (20/2^16 = 0.00030517578125V) = 3.11mV


And at page 31 there are absolute accuracy components at table 2:


Offset err: 531µV


Noise + Quantization err: 180µV



Absolute accuracy at Fs: 3.1mV (This must be the gain error)


When I add up these three it makes 3.81mV instead of 3.11 expected.


What am I doing wrong here?



Answer



You can not measure the accuracy in ADC steps directly. Instead, you measure linearity, offset and noise error in volts, because your reference system gives you volts, and the device under test (your DAQ) presents its measurements in volts, too.


The result of this measurement can be found in table 2 on page 31 of the document linked by you.


It states, that at +/-10V range, the error is:


0.0239% of current reading (gain error). At 10V, this is 2.39mV
0.531mV offset
0.180mV noise



The sum of this is 3.101mV, which is 3.10V when rounded (right column in table).


To interpret this values, they are compared to the theoretical resolution, which is limited by the ADC resolution.


Your ADC has a resolution of \$\frac{1}{2^{16}-1}\cdot 20V\$. Dividing the values above by this resolution gives


10.16120175 LSB for 3.101mV (rounded: 10.2 LSB)


and still


10.157925 LSB for the rounded value of 3.10mV (rounded: 10.2 LSB)




One side note: Noise is a statistical error, which means that each measurement differs from the true value. Often just a little, but sometimes also more. This distribution usually follows a gaussian function, and the relevant parameter is the standard deviation. So, if your noise error, which is 0.6 LSB, is a standard deviation, this means 66% of all measurements of the same voltage will be contained in a range of +/-0.59LSB, so in a range of 1.18 LSB width. 90% of all measurements will be contained in a range of twice this size.


So, don't pay too much attention to the last decimal of the absolute accuracy.





EDIT:


Due to your comment, here's a bit more on how to interpret the different values for accuracy. Imagine a quite lousy multimeter, to which you apply precisely known reference voltages from 0 to 10V, and you read the multimeter 20 times for each of this voltages. If you generate a diagram of this data, you get something like this:


enter image description here


For a perfect multimeter, all points should reside on the green line, because


$$U_{measured}=U_{reference}$$


But here, this isn't the case: The average voltage measured by the device reside on the blue line. There is an offset of +2, and the slope is 1.5, i.e.


$$U_{measured}=1.5\cdot U_{reference}+2$$


The noise in this case follows a gaussian distribution with a standard deviation of 1. This means, about 66% of all measured voltages are within the area between the bold orange lines, and 90% are between the thin orange lines. Or:


66% of all measured voltages are in a range defined by


$$U_{measured}=1.5\cdot U_{reference}+2 -1$$



and


$$U_{measured}=1.5\cdot U_{reference}+2 +1$$


The last formula also is the worst-case scenario: Slope and offset go into the same direction (upwards), and we add a +1 for the noise.


Finally, offset and noise are constant, only slope error depends on the measured value.


Note that I assumed a gaussian distribution of the noise and the standard deviation as parameter. It is possible that the distribution is different and that a different parameter is stated in the data sheet. But what I said is still true: The noise defines a boundary in which most / all measurements reside.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...