I am trying to build a circuit that takes a {-10V ... +10V} analog signal and outputs the same {-10V ... +10V} voltage but galvanically isolated from the input. The idea is similar to that of digital optocouplers, but for analog signals instead. My target would be to have a small-signal bandwidth of around 10 kHz, and a voltage noise density of less than 200 nV/√Hz (at 1 kHz) on the output.

I have the following circuit so far, and am trying to understand why the noise is so high: enter image description here

The circuit is based on the HCNR201 analog optocoupler chip. This chip is basically an LED with two matched photodiodes inside, and by using feedback applied to the LED (using op amp U2) to regulate the light falling on input photodiode, the output photodiode current also follows. A standard transimpedance amplifier (U4) then converts the photocurrent from the output photodiode back into a voltage. This arrangement allows to compensate for non-linearities and temperature affects of the LED, and was first described here. I have based the "analog isolator stage" shown above on this HCNR201 Evaluation Board from Broadcom.

Now, the chip doesn't work so well at low photodiode currents, and so cannot reliably go down to zero volts. To get around this I have added extra op amps around it for scaling the signal. The input is first scaled from {-10V ... +10V} into a range {+1V ... +8V} that can be handled nicely by the optocoupler. Afterwards, an output stage simply scales it back to the original range.

For testing, I have built the circuit on a custom PCB, and the scaling all seems to works nicely, as can be seen in transient simulation and the measurement below:

enter image description here

The problem is that the noise on the output signal is too high. An LTSpice calculation predicts a noise value at 1 kHz of 2.2 µV/√Hz. In order to test this, I shorted the input to ground and measured the noise spectrum of the output (with the circuit powered by +9V and -9V batteries, and the bias voltages dervied also from the batteries to be as clean as possible). I do indeed measure exactly that predicted by the calculation, which gives me confidence that all the LTSpice models used are correct:

enter image description here

I can't figure out what is limiting this noise level, or how to reduce it closer to my target of less than 200 nV/√Hz (at 1 kHz). Is it the analog optocoupler itself (can the photodiodes and LED really cause so much noise?), or is it my surrounding op amps, or is it the interaction between the two? I am now stuck with how to proceed in figuring out where the bulk of the noise comes from...


The op amps used are the OP1177, which has input voltage and current noise densities at 1 kHz of 7.9 nV/√Hz and 0.2 pA/√Hz, respectively. I have tried to keep the resistor values relatively low, but don't think these are causing the noise of 2.2 µV/√Hz observed. I have also tried swapping directly the HCNR201 for the similar IL300. When doing this I observed exactly the same noise level. I don't believe that it is the HCNR201 chip itself, because the noise level of the evaluation board is around 100 nV/√Hz, and so I think it is something to do with my external circuit.

EDIT --------------------------------------------------------------------------

It was suggested by Bruce Abbot that it could be the optocoupler which is limiting this circuit, because he tried replacing the optocoupler by an ideal controllable current source in SPICE and saw that the noise was reduced significantly.

However, to test what can be achieved with this chip, I have also measured the performance of the HCNR201 evaluation board. Here is the schematic and a simulation of this board (I have used the AD8627 op amp, because it has lower current nosie like the actual one used on the board), and a measured noise spectrum for a 0.1V DC input signal:

enter image description here

enter image description here

enter image description here

It can be seen that the LTSpice prediction of 100 nV/√Hz agrees with the measurement. This is low enough for my application, and gives me confidence that the analog optocoupler might be able to do the job. This makes me think it could be something to do with my external scaling circuit?

  • \$\begingroup\$ what is your total integrated noise budget? and what noise density at 1KHz MUST you have? \$\endgroup\$ Commented Oct 31, 2019 at 16:26
  • \$\begingroup\$ Total integrated noise should be below 50 µVrms. Noise density at 1 kHz must be below 200 nV/√Hz. \$\endgroup\$
    – teeeeee
    Commented Oct 31, 2019 at 22:44

2 Answers 2


I reproduced your circuit in LTspice (except for using LT1007 op amps as I do not have a model for the OP1177) and got the same results.

Then I replaced U1 and U2 with resistors and drove the optocoupler open loop. Noise dropped from 2.2µV/√Hz to 1.6µV/√Hz (with negligible contribution from the resistors). Finally I replaced the optocoupler with a current controlled current source, and the noise dropped to 280nV/√Hz.

This indicates that the optocoupler itself is the main noise contributor.

But is it really that bad? 2.2µV/√Hz over a 10kHz bandwidth is 220µV. Compared to a 20Vpp sine wave output that is -90dB or ~15 bits of resolution.

ETA. Testing the optocoupler at different currents reveals that noise is proportional to diode current. Therefore a lower bias current will appear to produce less noise, but of course the maximum undistorted AC signal level will also be less so there is no advantage.

  • \$\begingroup\$ Thanks for help, and for taking the time to reproduce the circuit. I agree the noise drops when using an ideal current source instead. However, I have edited my answer to show a measurement of the evaluation board, which shows a noise level of 100nV/√Hz. This makes me think the optocoupler should be capable of lower noise? On 20V the noise is good, but sometimes I will be wanting to send in signals of several mV, in which case the noise is significant. I would just like to understand what is going on here, and account for the noise properly. \$\endgroup\$
    – teeeeee
    Commented Nov 1, 2019 at 11:12
  • \$\begingroup\$ In your original circuit the maximum input voltage is 20Vpp, but the evaluation board schematic says "0.1V DC (to keep HCNR201 in linear region)". What is the maximum input voltage that it can handle? \$\endgroup\$ Commented Nov 1, 2019 at 11:32
  • \$\begingroup\$ I have put the evaluation board's schematic into the Edit in th OP. The input voltage I think is limited by the power supplies of the op amps (±15V on the input op amp and +5V single supply on the output). Therefore, the max output voltage on this board would be 5V, and with a gain of 1 the input signal would be 5V max as well. Additionally, the optocoupler is only specified for linearity for photodiode currents above 5nA. This means it doesn't work nicely too close to zero volts input, so I sent in a 0.1V DC signal. This is the reason for my scaling op amps... Does that answer your question? \$\endgroup\$
    – teeeeee
    Commented Nov 1, 2019 at 12:04
  • 1
    \$\begingroup\$ I think the 'discrepancy' is because optocoupler noise is proportional to DC current. With a low bias current the noise is low, but when increased to maximize signal swing the noise increases. However a low bias current also means low maximum output signal, so in the end there is no advantage. It also means the instantaneous signal waveform gets noisier as it goes more positive (higher opto current), so if you keep smaller signals closer to ground they will be quieter. \$\endgroup\$ Commented Nov 1, 2019 at 12:42
  • 1
    \$\begingroup\$ some devices have "shot noise", with the RMS noise proportional to sqrt( 2 * q * I) where Q is the current provided by ONE electron, thus some number: 1.6 e-19. \$\endgroup\$ Commented Nov 4, 2019 at 4:13

You have several 200k resistors; for a first pass analysis, simply add those, to 400 kohm; for easy math round to 1 megaohm; that has noise density of 4 nV/rtHz * sqrt(1,000,000 / 1,000) = 4 * sqrt(1,000) = 4 * 31 = 124 nV/rtHz.; some resistors have "excess noise" from Pauli Exclusion quantum effects; use metal-film resistors, not those with carbon granules.

Your final opamp has gain of 3; 10k/5k; that boosts the noise density by 3X, to 382 nV/rtHz.

Is the first opamp (gain of 1/3) stable? some opamps are not stable for closed-loop gains less than 1.

  • \$\begingroup\$ I think that it's the "noise gain" that matters for stability, or the gain seen from the + terminal. So inverting gains of <1 should be stable if the amplifier is unity-gain stable, since the noise gain is > 1. analog.com/en/analog-dialogue/raqs/raq-issue-56.html# \$\endgroup\$
    – John D
    Commented Oct 31, 2019 at 21:56
  • \$\begingroup\$ You are considering the Johnson noise only of the resistors here? Even so, the estimate of ~380 nV/√Hz is still around a factor of 6 away from the observed noise. I can also confirm that the issue is not Johnson noise, because when adding the "noiseless" keyword to every single resistor in the SPICE simulation then the noise doesn't change at all and is still the unexplained value of 2.2 µV/√Hz. \$\endgroup\$
    – teeeeee
    Commented Oct 31, 2019 at 22:49
  • \$\begingroup\$ bias the led/diodes to some value above "zero" and measure the noise. \$\endgroup\$ Commented Nov 1, 2019 at 5:20
  • \$\begingroup\$ Sorry, but can you explain exactly where to place a bias voltage, and why this is a good thing to try? \$\endgroup\$
    – teeeeee
    Commented Nov 1, 2019 at 10:54
  • \$\begingroup\$ input 10mV, and examine how the noise plot changes. Repeat for 100 mV. and For 1 volts. \$\endgroup\$ Commented Nov 2, 2019 at 6:19

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.