The BlasterAmp [1] has confirmed helpful to me in testing all types of analog-to-digital converter (ADC) circuits, even my digital oscilloscopes. Whereas I primarily conceived it to check built-in ADCs in microprocessors, it may be used to check even RF ADCs. Sure, even that a number of hundred MHz downsampling ADC may be examined with an audio tone, as you’ll be able to all the time break into the sign path proper earlier than the ADC and inject a baseband take a look at sign.
This not solely checks that the ADC is mainly functioning correctly, however that the sign processing code is mainly working correctly as effectively. Through the years, I’ve seen a good quantity of improperly functioning code that was blamed on the ADC being “dangerous”.
What To Measure
Figuring out a helpful analog-to-digital converter (ADC) metric that a wide range of individuals with various technical backgrounds can simply use and perceive is likely one of the objectives of the BlasterAmp venture for me. Due to the complicated specs and measurement strategies between ADC producers, many occasions the ADC appears to be picked on the uncooked variety of digital bits alone.
That might be a very good metric then, the “variety of bits” (N), or for an imperfect ADC, the “efficient variety of bits” (ENOB), as everybody can visualize that metric. That’s everybody’s predominant aim anyway – to have some minimal variety of bits of their sign processing.
I’m certain that everybody has seen the traditional ADC signal-to-noise ratio (SNR) calculation [2],
SNR = 1.76 + 6.02(N) (Eq. 1)
The place SNR is the signal-to-noise ratio in dB, and N is the perfect variety of ADC bits.
Equation 1 is derived by calculating what a superbly linear ADC’s quantization error is, so that is the best-case SNR for any good N-bit ADC. By straightforward extension, you’ll be able to rearrange the equation to resolve for the variety of bits, N given a measured SNR.
N = (SNR – 1.76) / 6.02 (Eq. 2)
Sadly, that is the place issues get unclear shortly. Equation 1 was derived from an ideal ADC, whereas any actual ADC may have linearity errors, which is able to result in harmonic distortion. Additionally any actual ADC may have noise above the perfect case calculation, and a few random spurious alerts are thrown in for good measure.
To make issues worse, some ADC producers outline SNR as a measurement of the ADC’s noise ground solely, excluding harmonics and random spurious content material, whereas others outline SNR because the ratio between the sign and the subsequent worst single spurious sign. But all spurs and harmonics that can not be processed away should depend in opposition to the efficient decision or ENOB of the ADC.
This then requires a distinct measurement that takes under consideration the non-ideal behaviors, and most producers name this Sign Together with Noise and Distortion or SINAD for brief,
SINAD = Sign / (Sign + Distortion + Noise + Every part Else) (Eq.3)
To make issues much more complicated the ADC individuals have redefined the classical definition of SINAD that has been used for the reason that beginnings of radio as a measure of a radio receiver’s efficiency [3], so watch out to not use the classical radio receiver definition or get confused by it.
How Laborious May This Be?
When Hewlett-Packard first began making high-performance Waveform Digitizers, they’d calculate ENOB by digitizing a excessive purity sine wave with enough factors after which curve becoming an ideal sine-wave to the measured knowledge. The distinction between the true ADC knowledge and the right sine wave could be the sum of all of the distortion merchandise and noise.
This SINAD worth was positioned into Equation 3 and the ENOB was calculated [3]. The issue with that methodology is that it principally requires a variable frequency supply that may be added to no matter sampling fee was getting used to get a enough variety of factors to faithfully characterize a sine wave.
That is one thing that the BlasterAmp just isn’t designed to do, as it could actually solely produce audio vary alerts, making the purpose about digitizing sufficient of a waveform considerably problematic when you might have just one variable to manage, i.e., the sampling fee.
As we speak fourier transforms (FT) are used to measure ADC’s, and normally a 1 or 2 kHz full-scale enter sign is used, however this too has pitfalls. The primary is that the noise ground that you simply see can be totally different relying on what number of samples within the FT you might have taken. That is referred to as processing acquire and is a results of the noise spectral density being the identical, however once you enhance the variety of samples, the FT bin width decreases, and therefore the noise in every bin decreases and the FT bin seems to get decrease in amplitude (Determine 1).
Determine 1 Processing acquire lowers the obvious noise ground by an element of PG = 10*log10(M) dB, the place M is the variety of factors within the FT. Right here the distinction between 1,000 factors (blue hint) and 100k factors (pink hint) within the FT leads to a processing acquire and obvious noise ground distinction of 20 dB.
The second downside is that noise can’t be measured the identical approach as alerts are after a standard FT that has a window utilized to the uncooked knowledge. Usually, some window perform is utilized to the ADC knowledge earlier than the FT to scale back the spurious sidebands that come up as a result of the enter take a look at sign just isn’t completely coherent with the sampling sign [4]. The window perform provides a acquire or loss time period to the FT that have to be accounted for.
With alerts, that is generally referred to as the “coherent acquire” and to make issues much more troublesome, the window provides a distinct acquire time period for noise evaluation that’s generally referred to as the “incoherent acquire”. This implies in case you are measuring FT sign amplitudes, you must use one window correction issue, and in case you are measuring noise, it’s essential to be utilizing a distinct window correction issue [5].
You’ll have run throughout this in the event you use a Spectrum Analyzer and wish to measure noise. Most Spectrum Analyzers have a “Noise Marker” perform that provides the marker an accurate readout of any noise being measured. With analog spectrum analyzers, this correction for noise measurement was required as a result of the log detectors used responded to alerts and noise in another way, with a contemporary FT-based spectrum analyzer, a distinct correction is required due to the window perform that must be added to the ADC knowledge earlier than the FT. I’ve discovered that many on-line tutorials miss this vital distinction and therefore aren’t calculating their FT noise correctly.
Bear in mind all we needed was a easy ENOB metric and now we’re all hung up not solely on learn how to measure the true signal-to-noise ratio but in addition on totally different FT scale elements that have to be utilized to correctly measure noise and alerts… Like all the time, we find yourself with this rabbit gap of complicated phrases, totally different definition of phrases, and calculation steps which might be many occasions not mentioned. Is nothing straightforward anymore?
The Easy Route
I didn’t wish to write yet one more FT SINAD / ENOB evaluation program, and I might simply quite use some pre-made answer. Whereas all ADC producers have some kind of evaluation software program for his or her ADC’s most are closed supply and might solely be used with the bit-streams out of their precise {hardware} gadgets.
Analog Gadgets has an fascinating evaluation program referred to as VisualAnalog [6]. It’s fascinating as a result of it could actually work with precise {hardware} or act as a considerably general-purpose DSP simulator. VisualAnalog is a drag-and-drop, block-based GUI that with just some blocks may be programmed to learn a textual content file containing any ADC knowledge, after which analyze the outcomes as proven in Determine 2.
Determine 2 VisualAnalog program script to learn ADC knowledge from a take a look at file after which analyze it. This script, together with directions, may be downloaded from Github, see reference [7].
To check whether or not VisualAnalog was measuring the ADC knowledge correctly, I made an ideal quantizer simulation in Python to generate varied bit depths, additive noise, and spurious alerts. Since my Python simulation began with identified, but separate sign, noise and distortion merchandise, I used to be in a position to sum these all individually within the time area to seek out the precise SINAD. I saved the info from each simulation run and analyzed it with VisualAnalog, which is FT based mostly, after which in contrast the outcomes to my Python evaluation. The outcomes had been all the time lower than a 0.2 dB distinction from my calculations.
So I really feel fairly assured that VisualAnalog is doing a correct calculation throughout a spread of situations. The one place the place VisualAnalog fails is that it seems to deal with non-harmonically spurious alerts as noise. Only a few real-world ADC’s have giant quantities of non-harmonic spurs, however it’s one thing to keep watch over.
Some precise examples
To indicate the everyday sorts of output one will get when testing an ADC, I measured a 12-bit embedded ADC with the BlasterAmp beneath varied sampling charges. I present the varied measurements and ensuing FT transforms in Determine 3.
Determine 3 Utilizing the BlasterAmp as an enter, I measured a 12-bit embedded ADC, utilized a Blackman-Harris 92 window (BH92) [8], after which took the FT of the ensuing knowledge. I adjusted the variety of ADC samples in order that the bin width could be 1 Hz in all of the examples above. (a) 100 kSPS, 100k factors, (b) 20 kSPS, 20k factors, (c) 1.1kSPS, 1,100 factors. This final plot exhibits the 1 kHz BlasterAmp enter tone aliased to an obvious 100 Hz.
The very first thing that’s noticeable from the FT plots in Determine 4 is that the noise ground is drastically totally different trying in every plot, welcome to the true world!
Taking a look at Determine 3a, you would possibly marvel if the “spike” form of alerts within the noise ground are spurious alerts, or noise of some type. One fast approach to inform is to rerun the FT with a smaller variety of samples. If the “spikes” change in amplitude, then they’re noise ground associated and aren’t discrete spurs.
On this instance, I did rerun the FT evaluation with fewer factors and the “Spike like” alerts did change in amplitude, thus indicating that they’re certainly noise, not sign, and ought to be processed as such.
That is an illustration of the issue of measuring SINAD correctly. A call must be made about every FT bin to the impact of: “Is the FT bin noise such that it will get the window noise correction issue utilized, or sign and thus will get the window sign correction issue utilized?”
Desk 1 exhibits the correction issue variations for every of those FT plots. For the reason that bin width is 1 Hz for all of the plots, each the sign and noise window scale elements are the identical for every plot in Determine 3.
Desk 1 The distinction within the BH92 window scale issue for the plots proven in Determine 3 is proven above. For the reason that bin width is a continuing 1 Hz for every run in Determine 3, the dimensions elements are the identical for all of the runs.
We are able to see from Desk 1 that the distinction between the noise and window scale elements for my examples is 3 dB. This illustrates the issue of misidentifying a sign as a noise part and vice versa. Each misidentified part may very well be added to the ultimate consequence with a 3 dB error. The impact this has in your closing consequence will rely upon the amplitude and variety of elements misidentified.
The error may very well be a lot worse, nevertheless. As an example, if the pattern fee was 1 MSPS and the FT dimension was 32,000 factors, then the window scale issue distinction between sign and noise could be on the order of 18 dB as an alternative of three dB. Typically, the larger the FT bin width, the larger the delta between the sign and noise window correction issue [9]. Operating a VisualAnalog evaluation on the info from Determine 3a is proven in Determine 4.
Determine 4 The VisualAnalog script outcomes of working the 100 kSPS, 100k factors knowledge from Determine 3a. The VisualAnalog calculated SINAD is 47.9 dB.
Utilizing the SINAD worth from Determine 4 in Equation 4 leads to an ENOB calculation of seven.7 bits. All of the plots of Determine 3 have the identical SINAD, solely various within the tenths of a dB.
ENOB = (SINAD – 1.76) / 6.02 (Eq. 4)
Conclusion
With all of the confusion on phrases and totally different definitions between semiconductor producers, it’s troublesome to match knowledge sheet parameters past the uncooked variety of digital bits, and digital bits by no means equal “precise bits” of decision.
I’ve discovered that the efficient variety of bits (ENOB) is a straightforward to make use of and perceive time period for audiences of a wide range of technical backgrounds, because it immediately pertains to the decision of any digitized level, and it forgoes any point out of dB which confuses loads of much less technical of us. Likewise, utilizing ENOB prevents any misinterpretation of the variations between SNR and SINAD measurements, which occurs quite a bit.
The “backside line” for figuring out the efficiency of any ADC is:
- It is very important measure your ADCs, particularly ones embedded in different ICs.
- It is very important discover some evaluation algorithm that’s dependable and to keep it up, as every bit of research software program gives you totally different outcomes.
- Maintain it straightforward for others to grasp, use one set of definitions, and watch out for blindly evaluating knowledge sheet numbers between producers.
- Use a single ADC efficiency definition, like ENOB, and keep it up.
References
[1] Steve Hageman, “Simplify testing of embedded analog-to-digital converters”, EDN.com, June 2022 https://www.edn.com/simplify-testing-of-embedded-analog-to-digital-converters/
[2] Bonnie Baker, “What does the ADC SNR imply?”, EDN.com, Could 27, 2004 https://www.edn.com/what-does-the-adc-snr-mean/
[3] Classical or Radio SINAD definition (BEWARE: This isn’t the identical definition of SINAD that ADC producers use), https://en.wikipedia.org/wiki/SINAD
[4] Steve Hageman, A collection of articles on the FFT, DFT, home windows, and strategies,
[5] Martin B. Grove; “Measuring Frequency Response and Efficient Bits Utilizing Digital Sign Processing Methods”, Hewlett-Packard Journal, February 1992. https://archive.org/particulars/hpjournal
[6] Analog Gadgets, Inc. VisualAnalog, https://www.analog.com/en/design-center/interactive-design-tools/visualanalog.html
[7] The VisualAnalog script and take a look at knowledge can be found on my GitHub at, https://github.com/Hagtronics/BlasterAmp/tree/predominant/VisualAnalog
[8] G. Heinzel, A. Rudiger, and R. Schilling, “Spectrum and spectral density estimation by the Discrete Fourier rework (DFT), together with a complete listing of window capabilities and a few new flat-top home windows.”, Max-Planck-Institut fur Gravitationsphysik, February 15, 2002
[9] For brevity, I’ve not proven how the correction elements are calculated as I’ve gone over that many occasions earlier than. See references [4] and [8], or use one among my open-source libraries to run the calculations for your self,
—Steve Hageman has been a confirmed “Analog-Loopy” since concerning the fifth grade. He has had the pleasure of designing op-amps, switched-mode energy provides, gigahertz-sampling oscilloscopes, Lock In Amplifiers, Radio Receivers, RF Circuits to 50 GHz and take a look at gear for digital wi-fi merchandise. Steve is aware of that each one trendy designs can’t be achieved with Rs, Ls, and Cs, so he dabbles with programming PCs and embedded methods simply sufficient to get the job achieved.
Associated Content material