Tell me more ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

I have a 14-bit ADC. However, looking at the datasheet (see table 2 on page 5), the effective number of bits (ENOB) is always less than 12 bits.

Why is my the DAC claiming to be a 14-bit ADC when it only has 12-bit accuracy? What is the point of having two extra bits if they are meaningless?

share|improve this question
While they might not be much use in a one-shot wideband sampler like a scope, they are meaningful in applications which integrate over time such as a software radio. With one of the FPGA-based implementations it would be easy to add a mode bit to toggle masking them off and see the difference in output of subsequent filters with and without the 'phony' bits as input. – Chris Stratton Jul 12 '12 at 15:20

4 Answers

up vote 12 down vote accepted

You've been bamboozled!

14-bit is marketing speak, and the hardware also gives you that, so they'll say you have nothing to complain about. Just above ENOB in the datasheet it gives SINAD (Signal to Noise and Distortion) numbers. That's 72 dB, and 1 bit corresponds to a 6 dB level, so that 72 dB is indeed 12 bits. The 2 lowest bits are noise.

It's possible to retrieve data which is lower than the noise floor, but it needs very good correlation, which means it has to be very predictable.

share|improve this answer
6  
OK, downvoter, just tell me what's wrong here. – stevenvh Jul 11 '12 at 18:06
2  
Maybe the downvoter is the designer of the IC :-) – stevenvh Jul 11 '12 at 18:39
1  
Stupid question: Do most ADCs behave this way? For example, if I want 10 bits of resolution, is it safe to assume that what I really need to shop for is a 12 bit ADC? – SimpleCoder Jul 11 '12 at 18:43
2  
@Simpl: Not necessarily. You have to read the datasheet of any A/D you plan to use. There are a lot of tradeoffs to be made in the design of A/Ds, so what you can get will vary widely. Many A/Ds are good to +-1/2 count, but as this example shows, some are not. As always, READ THE DATASHEET. – Olin Lathrop Jul 11 '12 at 19:39
2  
This is not "marketing speak". In fact this is quite common on high performance converters as used in software radios, etc. For many such applications, at some point in the signal processing you will filter and downsample, such that you can detect a narrowband signal with a power level far, far, below the broadband noise floor (but you do it in software, such that you can place a variable number of such filters anywhere in the bandwidth you want. To some extent you would get that anyway if you just masked off the "unreliable" bits, but you do better with them than without them. – Chris Stratton Jul 11 '12 at 19:53
show 7 more comments

Suppose one wishes to measure a steady voltage as accurately as possible, using an ADC that will return an 8-bit value for each measurement. Suppose further that ADC is specified so that a code of N will nominally be returned for voltages between (N-0.5)/100 and (N+0.5)/100 volts (so e.g. a code of 47 would nominally represent something between 0.465 and 0.475 volts). What should one wish to have the ADC output if fed a steady-state voltage of precisely 0.47183 volts?

If the ADC always outputs the value that represents the above-defined range in which the input falls (47 in this case), then no matter how many readings one takes, the value will appear to be 47. Resolving anything finer than that would be impossible.

Suppose instead that the ADC were constructed so that a random "dither" value linearly distributed from -0.5 to +0.5 were added to each reading before converting it to an integer? Under that scenario, a voltage of 47.183 volts would return a reading of 48, approximately 18.3% of the time, and a value of 47 the other 81.7% of the time. If one computed the average of 10,000 readings, one should expect it to be approximately 47.183. Because of the randomness, it may be slightly higher or lower, but it should be pretty close. Note that if one takes enough readings, one may achieve an arbitrary level of expected precision, though each additional bit would require more than doubling the number of readings.

Adding in precisely one LSB of linearly-distributed dithering would be a very nice behavior for an ADC. Unfortunately, implementing such behavior is not easy. If the dithering is not linearly distributed, or if its magnitude is not precisely one LSB, the amount of real precision one could get from averaging would be severely limited, no matter how many samples are used. If instead of adding one LSB of linearly-distributed randomness, one adds multiple LSB's worth, achieving a given level of precision will require more readings than would be required using ideal one-LSB randomness, but the ultimate limit to the accuracy that can be achieved by taking an arbitrary number of readings will be far less sensitive to imperfections in the dithering source.

Note that in some applications, it's best to use an ADC which does not dither its result. This is especially true in circumstances where one is more interested in observing changes in ADC values than in the precise values themselves. If quickly resolving the difference between a +3 unit/sample and a +5 unit/sample rate of increase is more important than knowing whether a steady-state voltage is precisely 13.2 or 13.4 units, a non-dithering ADC may be better than a dithering one. On the other hand, use of a dithering ADC may be helpful if one wants to measure things more precisely than a single reading would allow.

share|improve this answer

Bonus lesson: You really do get 14 bits of precision, but only 12 bits of accuracy.

share|improve this answer
Shouldn't that be "resolution" instead of "precision"? Precision refers to the error spread over different conversions, and with Gaussian noise at the two LSBs that will be 12 bit as well. – stevenvh Jul 12 '12 at 5:58
I went and read some definitions, and I believe you are right. I tend to shy away from "resolution" in this video age, but it's still the best term. I think maybe in high school, they didn't quite explain precision correctly. – gbarry Jul 17 '12 at 23:55

An additional caveat... sometimes you actually want randomness.

For example:

In cryptographic (security/authenticity) applications, pure "unguessable" randomness is required. Using a converter's LSB's (those below noise floor) is a quick way to generate lots of purely random numbers quickly.

When the ADC hardware is available for other purposes (sensors and the like), it's a quick-and-easy way to seed secure communication.

share|improve this answer
1  
It's a very bad idea to assume that the ADC noise is a good random noise source. It's entirely likely that it's correlated to other stuff going on in the circuit, IC temperature, and many other things. If you need genuine randomness, make sure you test your source! – Connor Wolf Apr 21 at 0:04
"Testing your source" is an obvious requirement in any scheme. However, it is by no means "a very bad idea"... even if correlated to temperature. That only reduces the randomness, not eliminates it. You can compensate by bit-extension (concatenation of successive conversions' low-bits). – DrFriedParts Apr 21 at 0:18
I said it's a bad idea to assume, not a bad idea in general. If you do thoroughly test the randomness of your ADC noise source and it checks out, then I wouldn't have issues with it. – Connor Wolf Apr 21 at 0:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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