Ask: How to get (with a fixed range and offset) linearly proportional signal from a variable range on the input?

Conditions: There's a signal (to simplify, consider a sinusoid) with variable amplitude (min. 165mV to max. 1.65V) and variable offset so that the signal's lower value is above and close to 0.

I need a circuit to catch the signal no matter what amplitude and then get an output linearly proportional signal that goes from 0 to 3.3v, as shown bellow:

enter image description here

An AmpOp may be used in association with a digital potentiometer, to vary digitally it's gain. In this configuration, for the max. amplitude, gain should be 1. For the lower amplitude, the gain should be around 10.

P.S.: Said that, the actual signal is a trapezoidal signal that comes from a DC brushless motor phase, like bellow:

enter image description here

[EDIT - A test with a possibly solution] Using the following circuit, it was possible to obtain a signal from the variable amplitude input signal: enter image description here
Setting the input signal to a sinusoidal 0-to-6v, and the 50k potentiometer to 91%, we have both graphs bellow: enter image description here enter image description here Setting the input signal to a sinusoidal 0-to-60v, and the 50k potentiometer to 51%, we have both graphs bellow: enter image description here enter image description here

Both situations were simulated to 1.0kHz signal on the input. I would like to know if you guys have any advice or any real question which simulation doesn't take into account. Thanks!

  • \$\begingroup\$ Sounds like you need an AGC (automatic gain control) or some servo feedback. \$\endgroup\$ – winny Sep 30 '20 at 16:24
  • \$\begingroup\$ @winny, I was thinking how to solve this using a digital potentiometer associated with an AmpOp. The goal is to catch the output voltage with an ADC. \$\endgroup\$ – Emanuel M Sep 30 '20 at 16:28
  • \$\begingroup\$ It's unclear to me why you need a variable gain amplifier - are you saying that when the signal is only 165 mV, that you want it to become 1.65 volts and, when the signal is 1.65 volts you want to leave it unchanged AND, in both cases, you want the output signal to be centred so that its lower level doesn't go negative? Thing is this; if you are interested in the amplitude of the signal then that information is lost by the variable gain amplifier so, please explain what the point is of your requirement. \$\endgroup\$ – Andy aka Sep 30 '20 at 16:36
  • 1
    \$\begingroup\$ @EmanuelM OK, so what are you trying to determine from the "reformed" signal. After all, you've lost amplitude information due to the automatic gain control. I'm asking this because it might be relevant and I can't see a reason why you want to lose amplitude variation information. \$\endgroup\$ – Andy aka Sep 30 '20 at 17:24
  • 1
    \$\begingroup\$ If the signal looks the same then want can reading it by an ADC tell you? Think about it. \$\endgroup\$ – Andy aka Sep 30 '20 at 23:05

If the sine wave is truly representative, simply AC-couple and re-bias to 1.65 V.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ You got the point: How to re-bias? \$\endgroup\$ – Emanuel M Sep 30 '20 at 16:24
  • \$\begingroup\$ @EmanuelM, what power sources do you have available? \$\endgroup\$ – The Photon Sep 30 '20 at 16:24
  • \$\begingroup\$ I'm planning on using let's say +3.3 DC voltage, with no negative voltages. The actual signal is a trapezoidal wave that comes from any of the 3 brushless DC motor phase, like this \$\endgroup\$ – Emanuel M Sep 30 '20 at 16:35
  • \$\begingroup\$ Is the signal balanced? Meaning is the mean value of the signal equal to the midpoint between the maximum and minimum voltages? If not, you should edit your question to clarify. \$\endgroup\$ – The Photon Sep 30 '20 at 16:36
  • 1
    \$\begingroup\$ @EmanuelM, Ok then this answer should still work. \$\endgroup\$ – The Photon Sep 30 '20 at 19:22

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.