Normalizing audio signal for ADC input


What is the best way to limit an audio signal for ADC input (to 0V – 3.3V) with out disrupting it harmonically? Ideally, I'd like the conditioned signal entering the ADC to be a signal uniformly spanning 0V to 3.3V. That is, I'd like to strip the original signal of its envelope and have a flat envelope at the output. I've spent the better part of a month attempting to get simulations of different VCA circuits to respond to these specifications using variations on the original input signal's envelope as the control signal. I know near-blind trial and error through simulation is not the most elegant way to go about design but I'm early in my EE studies and it's all I have.

Is there a standard scheme for this kind of signal conditioning?

Is designing a circuit, whose response is consistent across the audio band (or a good part of it), which attenuates/amplifies a signal, varying from 0.1Vpp to 6Vpp, to a uniform 3.3Vpp signal with negligible change to the harmonic content (negligible meaning that an FFT would still faithfully report the first several harmonics of the original signal) a realistic goal?

Best Answer

What you are asking for is a non-linear operation, so will add distortion.

The details are all in the tradeoffs you haven't told us about, particularly response time. For example, suppose there is a loud passage, then it gets quieter. What metric do you use to decide this quiet isn't part of the signal that you want to keep, like a person pausing between words? Are you allowed to look ahead (store signal, then play back later)? If not, how long is long enough to decide that quiet is the new normal? Notice that you don't get to say "instantly", since audio is iherently AC, which will have regular zero crossings.

People have been dealing with these issues and making these tradeoffs in various ways for a long time, before there were even transistors. Look up something called AGC (automatic gain control).

Otherwise, without a real spec, there is little we can help with.