# Increasing range of a DC-offset signal (software)

I am trying to read a signal with a DC offset of 511 (as seen by the ADC). The signal's tiny with regards to the offset, and I'm feeding it to a library that does a Fourier transform on it. It comes from a 3.5mm audio jack with AC coupling and the offset so I can see the full signal.

How may I increase the range of the signal? I am thinking something like the input signal is (490-530) and I want an output of (400-630) or something (numbers solely for example). The issue is that I still need the resulting signal to be centered around 511 AND I don't know the exact amplitude of the input (since it varies based on volume and particular audio going in at the moment).

I can assume that the volume of the audio input is relatively fixed (I need to be able to adjust this gain later, but I'm assuming the volume will be constant at some value per time I'm running the project), so I don't need envelope-following or something, but I'm not sure how to do this even so.

• You need to add an op-amp to increase the signal gain before you feed it into the ADC. Commented Aug 10, 2019 at 18:31
• This sounds like an XY problem to me. Why do you want to increase the signal range? What problem do you think you will solve by doing this? Commented Aug 10, 2019 at 19:04
• I can't feasibly modify the hardware for this project. I need the FFT to register sounds without the audio source being turned to eardrum-rupturing levels, so it needs to be in software. I'm looking for some sort of filter that I can run on the array of samples that, say, doubles the offset each value has from the center. I would actually need it to do a smoother mapping (an example in a non-offset design would be values 0-30 become 0-100, so 15 is now 50. I could handle that, but not with the offset, though the same general idea applies). Would this do anything too weird to the FFT result?
– user47164
Commented Aug 10, 2019 at 23:18