This is probably a very basic question, but I would like to learn the correct way to understand this.
If you look at the spec sheet of R series, there are two kinds of 'accuracy' regarding the analog input voltage, i.e. single point and averaged.
Does this mean that if I average multiple data points, I can get more accurate measurement?
For example, I am sampling voltage inputs at 20kHz using PCIe 7842R.
Since the maximum sampling time of 7842R is 200kHz, I can sample at, say, 160kHz, and average 8 values?
Since I have some more room in my FPGA resource I can do this averaging on FPGA.
None of the tutorial that I have taken mentioned this.
What is the recommended way to sample analog voltages using FPGA?
Solved! Go to Solution.
It looks like the averaging value that you're looking at is for 100 single-channel readings. From my understanding, you would achieve the accuracy improvement as outlined in the spec sheet if you were to take 100 readings and average them.
Your example of sampling at 160kHz and averaging the 8 values would allow for increased accuracy, but not to the level shown in the specifications sheet.
I found an example FPGA Running Average Function that you may want to look at if you're interested in doing a running average of points. Depending on what you're trying to measure, there are also good examples in LabVIEW. If you go to LabVIEW Help >> Find Examples... and then go to Hardware Input and Output >> R Series >> Signal Generation and Processing >> Analog >> Measurement, you can see a few examples of taking analog measurements using the FPGA.
Additionally, if you look at this tutorial, you can implement averaging on DC measurements if that's what you're trying to take.
Hope this helps!
Thank you for your ideas.
I should probably calculate how much averaging with 8 elements would improve the accuracy. (I can probably do this assuming Gaussian distribution of error).
I was originally thinking that 7852R, which has 750kHz sampling speed, is just a over spec for my application, but considering the improved accuracy due to averaging, I realized that having a higher sampling speed is always beneficial even if I am sampling at lower rate...!
Your suggestions does help!
I guess in my case, since I want to save resources in FPGA (I will probably do averaging for all input channels that I use), running average implementation seems efficient.
For normally distributed errors (e.g., white or Gaussian noise) averaging does not increase accuracy but reduces variance. This is an important point sometimes since not all noise is white or unbiased. Capacitively coupled noise is often white but inductively coupled noise often is not. Averaging CAN remove bias from an estimate but it can also add it in. Know you noise sources and levels. Averaging over a line cycle (1/60 or 1/50 of a second) can reduce line influence. Averaging over 1-1/2 cycles can ruin a measurement.