Summary: I would like to build a differential amplifier with differential output, but shift the common mode to a different level from the original.

My current knowledge takes me this far: Take the traditional 3-opamp instrumentation amplifier, like the one in this image:

Basic 3-opamp instrumentation amplifier

Now if you take the left two opamps without the third, those already give you almost what I want, that is, amplify the differential input and give a differential output. The only problem is it preserves the common-mode of the input. Adding the 3rd opamp on the right, it is easy to shift the CM by biasing its ground (in fact this is what most single-chip instr. amplifiers do when they provide a Vbias pin), but the output of the circuit is now single-ended.

So what is the best way of keeping both the differential output and the CM-shift? One way is, I guess, to take only the left two opamps of the above instrumentation amplifier, and shift the ground of each separately.

Another option that comes to my mind is to take only the left two opamps again, and (using an example when I want to halve the CM) use twice the gain as needed, and then divide each output by 2.

Unfortunately both of these solutions require more (in quantity) highly matched resistors with low TCR (I'm trying to keep temperature drift of the circuit very low), and those are bloody expensive.

So how would you go about this problem? Maybe taking an instrumentation amplifier is the wrong start? Is one of my above solutions the "standard" way of doing this, or are there better circuits for this purpose?

EDIT: Clarification on matching resistors: What I mean is to match them in TCR, because I am aiming to minimize temperature drift. This means I need to match resistors in TCR, not in absolute value, so that when they drift due to temperature, they will keep their original ratios. Actually I am uninterested in matching absolute values (almost, I still need a little bit of matching to maintain CMRR), for two reasons: 1) a mismatch in absolute value causes offset and gain errors, both of which are easy to calibrate out at system level. Measuring and correcting temperature drift is a lot more difficult. 2) Most of the offset errors will be non-existent anyway without even calibrating, because this will be a frontend to a sensor, and offset errors will cancel out due to AC excitation of the sensor. Anyway: closely TCR-matched resistors are expensive (easily more expensive than precision opamps), so I want to minimize their use.

  • \$\begingroup\$ Do you have a specific reason to build this instead of buy it? Because fully differential amplifiers are available off the shelf to do what you want. \$\endgroup\$
    – The Photon
    Dec 11, 2016 at 17:14
  • \$\begingroup\$ I haven't found a suitable FDA with the specs I need. I am mainly constrained by input voltage noise in the 0.1-10Hz band, power consumption, and price. Actually I haven't found a single FDA with the needed noise specs (below 100nVp-p), whereas there are plenty adaquate amongst general and instrumentation opamps. \$\endgroup\$
    – ultimA
    Dec 11, 2016 at 20:56
  • \$\begingroup\$ Could you clarify what you want from the amplifier output using equations please. You have written a lot of words, and several of us have misunderstood them, both Olin and I have got it wrong in different ways. Please use something unambiguous like algebra, then we'll know what we're trying to acheive. \$\endgroup\$
    – Neil_UK
    Dec 12, 2016 at 8:12
  • \$\begingroup\$ I am pretty sure that both you Neil_UK and Supa Nova understood me correctly, your answers show that. Only Olin didn't get it, but not surprising if he claims differential signaling is the same as an AC signal+offset. The only thing I needed to clarify to you is that it is more important for me to match resistor TCRs than their absolute value. That is only some extra info though, not central. Boiled down to the core, my question was what other circuits are their in addition to my "solutions" in the OP to get differential outputs with adjustable common mode. You provided one that works :) \$\endgroup\$
    – ultimA
    Dec 12, 2016 at 18:56

3 Answers 3


This does what the OP wanted, a differential output around a defined output common mode, with no more, and in fact fewer, precision resistors.


simulate this circuit – Schematic created using CircuitLab

If the common mode voltage does not match the input at Vcm, then OA3 drives an input voltage into both inverting inputs, with the same gain, which will cause both output voltages to move the same amount in the same direction, maintaining the existing differential gain, but shifting the common mode until there is no error.

Stability may be an issue, as there are two amps in a feedback loop. I suspect it would be easy to stabilise by clobbering the OA3 bandwidth, and/or speeding up OA1/2 a little with a small C across R3 and R5, which may or may not be desirable from the differential behaviour point of view.

Note that the only resistors that need to be matched are R1 and R2, which set the two output terminals to be equally disposed around Vcm. The differential gain is just (R3+R4+R5+R6)/(R4+R6), it does not need matched resistors, these can be four arbitrary value resistors, subject to getting the correct gain of course. I emphasise that fact by putting 4 unmatched values in the diagram for those resistors. The diff gain is 7 (21k/7k), with the outputs exactly disposed around Vcm because of R1==R2, and OA3. Try it!

  • \$\begingroup\$ I simulated the circuit, and it works, nice idea! A "problem" though is that it loses the main advantage behind the in-amp input stages. The idea that you can set the gain using a single resistor, not having to worry about matching two different instances of Rgain. Now R4 and R6 need to be matched too in your circuit. EDIT: This is I think still one the best answers though, even considering costs. \$\endgroup\$
    – ultimA
    Dec 11, 2016 at 20:42
  • \$\begingroup\$ In the last 2 minutes, I've just simulated it. It works for me too. There's something about the floating Rg in the conventional in-amp that's rather nice, that this loses. \$\endgroup\$
    – Neil_UK
    Dec 11, 2016 at 21:00
  • \$\begingroup\$ @ultimA check out my new edit, and update your simulation, matched resistors not required in the input stage! Do feel free to accept the answer if you like it! \$\endgroup\$
    – Neil_UK
    Dec 11, 2016 at 21:11
  • \$\begingroup\$ Don't worry, I haven't forgot to accept an answer, it's just that the question hasn't been up even half a day, and I generally wait a little to give tohers time to respond too. \$\endgroup\$
    – ultimA
    Dec 11, 2016 at 22:31
  • \$\begingroup\$ Sorry I wasn't clear on resistor matching, please see edit at the end of the OP. If you take this into consideration, then your edited circuit isn't really different from the first version as far TCR matching is concerned. Still a very useful answer though. \$\endgroup\$
    – ultimA
    Dec 11, 2016 at 22:54

You already have what you want, just that you grounded the level-shift input so the output is referenced to ground. In your schematic, the voltage on the right end of R3 will be added to the difference of the two input signals.

It's easier to understand by looking at a more simple diff amp:

This does

   OUT = (IN+ - IN1) + OFS

To see this, consider what happens when each input is varied with everything else held fixed.

From IN-, this is just a simple inverting amplifier. With IN+ and OFS held fixed, the reference value about which to amplify is held fixed. The gain is just -R3/R1, which is -1 if both resistors are equal.

From the opamp + input, this is just a simple amplifier with positive gain (R3 + R1)/R1. With both resistors equal, that is 2. To match the magnitude of the gain from IN-, the IN+ signal therefore needs to be attenuated by 2. That's what R2 and R4 do. With OFS at ground, IN+ is divided by 2 before being presented to the opamp + input. That is then amplified by 2, for a net gain from IN+ to OUT of +1.

Note that OFS and IN+ work equivalently. In the equation above, I showed OFS as adding the offset to the output signal, and IN+ being the positive differential input, but mathematically they are both equivalent.

  • 1
    \$\begingroup\$ That is another way of biasing the 3rd opamp's output, but that doesn't give me the differential output as asked in the question. Or did I misunderstand your answer? \$\endgroup\$
    – ultimA
    Dec 11, 2016 at 20:26
  • \$\begingroup\$ @ult: I thought you wanted the difference between the two inputs, plus a arbitrary offset. At least that's what I answered. \$\endgroup\$ Dec 11, 2016 at 21:10
  • \$\begingroup\$ Nope, that wasn't the question. If I wanted what you answered, I could take the solution written in the OP by myself, or just use a single-chip in-amp with a bias pin. This was clear in the OP that I want differential outputs. \$\endgroup\$
    – ultimA
    Dec 11, 2016 at 22:59
  • \$\begingroup\$ @ult: A single-ended output with controllable offset is the same as a differential output. You can't just have a differential output with no reference at all, since the common part would be undefined. You can think of the output as being OUT - OFS. You drive OFS to what you want, and out is the diff of the inputs relative to that. Not sure what you really want if that's not a valid answer. \$\endgroup\$ Dec 11, 2016 at 23:47
  • \$\begingroup\$ A single-ended output with a controllable offset is very different from a differential output. In the first case you have the difference information in a single signal, and a constant (DC) offset signal specifies how much it is above ground. A differential signal carries the difference in two separate signals that swing symmetrically around the common mode (the offset), and there is no separate offset signal. You need to have a ground in addition in BOTH cases. \$\endgroup\$
    – ultimA
    Dec 12, 2016 at 18:45

You've already noted that the opamp circuit on the right is just a difference amplifier that removes the CM signal. The polarity is arbitrarily assigned so that the inverting input is connected to the top and noninverting to the bottom.

You can accomplish what you want by duplicating the entire difference amplifier (including the R2s and R3s) but reverse the polarity on the second circuit.

You are correct that both outputs can be biased by replacing the ground connections with a clean DC voltage.

  • \$\begingroup\$ He's already addressed this, and doesn't want to do it as it requires 4 extra precision matched resist[rs. \$\endgroup\$
    – Neil_UK
    Dec 11, 2016 at 20:38
  • \$\begingroup\$ Not a bad solution IMHO, but I need more time to research available components. The idea is that yes I would now need to match resistors between the two in-amps, but on the other hand I could by single-chip in-amps, so one might need less resistors in total. \$\endgroup\$
    – ultimA
    Dec 11, 2016 at 20:50
  • \$\begingroup\$ Just to clarify, this answer from Supa Nova is a good one too! It would work and addresses the problems in the OP. But I can only accept one answer, and since Neil's solution seems more cost-effective, I'm inclined to accept his answer. Sorry. \$\endgroup\$
    – ultimA
    Dec 12, 2016 at 19:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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