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