0
\$\begingroup\$

Why do some people use some sort of gain either external amps or the one built in to the ADC itself and not just do the calculation in software. I do not think its that expensive of a processing power to multiply the output of the ADC in software instead of using a hardware alternative. Gains done via hardware also presents offsets which you will need to account. Gain also amplify the noise that we dont want.

A counter argument would be that what if your ADC dont have enough resolution to read the signal. I can totally understand that argument, but even the high percisions 24 bit 32 bit ADCs have built in gains or their inputs has gain amplifiers connected to them. Those ADC are capable of reading at such low value that its actually very hard keeping the noise levels down that those adc wont notice. So in the case of 24bit and above ADC gain is not needed??

So why does it seem that its always better to do it in hardawre compared to doing it in software.

\$\endgroup\$
1
  • \$\begingroup\$ The actual number of bits an ADC can use (the effective number of bits) is limited. 32 effective bits would be great, but it's also not possible in a real product. Even 24 is almost always impractical, so utilizing dynamic range efficiently can be very important. \$\endgroup\$ May 17, 2021 at 13:58

4 Answers 4

2
\$\begingroup\$

You have to run through the calculations and available hardware in each individual case to decide what is best.

For example, you likely would not want to use a '24-bit' converter with a real ENOB of maybe 19 bits (at a very low sample rate) to measure a low-level signal when a much cheaper and higher performance 12-bit converter would do that job with an amplifier.

Higher sample rate results in more noise, so at very high sample rates there really isn't much choice or the cost and maybe power consumption difference is too painful.

Passive RC filters may work okay at low levels, but if you want to insert an analog active filter you will introduce additional errors at low levels. It's not possible to do the filtering in software if you don't first anti-alias and/or oversample at a high enough rate (theoretically 2x the highest noise component frequency, but practically a fair bit more than that depending on how complex your filter can be) to avoid significant amounts of noise being aliased into the signal bandwidth.

There may well be cases where it makes the most sense to avoid amplification and (especially) offset, such as 4~20mA process signals where a 25mA full scale ADC is likely a better approach than using the whole range of a similar converter, trading off about 1/3 of the resolution to avoid the precision offset and amplification. A similar trade-off can be used to avoid analog calibration- if it's desirable to avoid expensive high-precision resistors, voltage reference and/or trimpots- the calibration can be done in software, at the expense of some resolution. At some level of required system accuracy you will not be able to buy parts accurate enough at just about any price.

If you remove the constraint of cost (and maybe power consumption)- you don't care if you use a $10 part to do a $0.50 job, and the job is not all that difficult to begin with, then it makes sense in a lot more cases.

And, of course, there's no real difference between a chip that integrates the amplifier and an external amplifier from the system point of view- if you have an amplifier, you have an amplifier. The on-board PGA may be better or worse than one you can supply externally in one respect or another, depending on your constraints, skills and available components.

\$\endgroup\$
7
\$\begingroup\$

ADCs typically have a fixed number of bits. If the signal of interest does not cover the full natural range of the ADC input, then some of those bits get "wasted", reducing the effective resolution of the result.

The analog gain block matches the range of the signal to the range of the ADC, maximizing the effective resolution and reducing the level of quantizing noise relative to the signal.

You could address this by using an ADC that has more bits to begin with, but an analog gain block is usually a lot more cost-effective.

\$\endgroup\$
4
  • 3
    \$\begingroup\$ Perfectly correct; just to add the case on the other side of the spectrum: Analog gain blocks also allow for the case where the measured signal is too large for the dynamic range of the ADC. Gains can be < 1. \$\endgroup\$
    – pgvoorhees
    May 17, 2021 at 12:21
  • \$\begingroup\$ You could address this by using an ADC that has more bits to begin with, but an analog gain block is usually a lot more cost-effective. but what about those 24bits, 32 bits ADCs boosting the signals would make less sense since the adc is capble. It almost impossible for have an effective bits of more than 20 without you device costing 6 figures. \$\endgroup\$
    – Jake quin
    May 17, 2021 at 12:26
  • \$\begingroup\$ @pgvoorhees oh yeah, I totally forgot that a gain can go the other way, i can totally see a reducing gain should be much more common than amplifying gain. since adc references are only in the +- 1v region \$\endgroup\$
    – Jake quin
    May 17, 2021 at 12:29
  • \$\begingroup\$ @Jake_quin 24-bit or 32-bit ADCs are typically sigma-delta ADCs which have some issues for many applications (phase delays, hard to multiplex, etc.) \$\endgroup\$
    – Ben
    May 17, 2021 at 13:33
4
\$\begingroup\$

The arguably single most important parameter of any signal processing system is its Dynamic Range. That's the difference between the noise level, and the largest signal it can process.

Typical ADCs tend to have a more limited dynamic range than typical amplifiers, just because there's more complicated stuff in them.

You can therefore use an amplifier before an ADC, or an attenuator before an ADC, to shift its dynamic range to a better amplitude for your input signal.

If you want a particular noise floor, it will usually be cheaper to precede an ADC with a low noise amplifier, than it will be to engineer an ADC with an equivalent noise floor.

\$\endgroup\$
0
\$\begingroup\$

Every input must be band limited by a filter before entering an ADC. Otherwise it creates aliasing which destroys the quality of measurement. I would personally chose to amplify and condition the signal before entering the ADC, because I already need to use antialising filter.

\$\endgroup\$
1
  • \$\begingroup\$ Yes you would always want to reject frequencies you dont want, but i am talking about the amplitude of the signal not the frequency. \$\endgroup\$
    – Jake quin
    May 17, 2021 at 12:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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