Matt Bonner wrote: > Craig Webb wrote: > > > Thanks for the help. I'm running at about 2000 samps/sec (though I'd like to > > run 8 channels!). We'll see how it goes. Some good suggestions though. How > > many bytes would you use to keep good resolution at 13 bits? The person I'm > > working with who has already written some LPF code said we need four byte to > > keep precision. This seems a bit high to me. > > ... > First, you have to know the "noise-free" counts of your system. This is > typically your full scale signal divided by 6 times the rms noise - you > find the rms noise by calculating the standard deviation of a sample set > (I use a minimum of 1000 sample points). Of course, this is only valid > if your noise is Gaussian - plot your sample set to see. Where did that > "abritrary" value of 6 times come in? If your data plot indicates that > your noise is Gaussian, one standard deviation is equivalent to the rms > noise. Almost all of the data points will fall within +/-3.3 standard > deviations - use a factor of 6 (close enough to 6.6) to estimate the > peak-to-peak noise relationship to the rms noise. > > NOW, you can use averaging to improve system resolution. BTW, thermal > noise is typically the only true Gaussian noise that you're going to > find. True, but there is another problem as well. The numerical computation in a digital filter is often ill-conditioned, and intermediate results need to be stored with higher precision. How much depends on the particular filter formula used, but according to my experience, a doubling is not uncommon. 2 * 13 bits = 26, which is 3 bytes, plus half a nibble. I would say Craig's colleague's recommendation is very reasonable. Martin Nilsson http://www.sics.se/~mn/ Swedish Institute of Computer Science E-mail: mn@sics.se Box 1263, SE-164 29 Kista Fax: +46-8-751-7230 Sweden Tel: +46-8-752-1574