8
\$\begingroup\$

I would like help with understanding something better, but am not trained in electronics so please bear with me!

I am trying to make a simple circuit to take a {-10V ... +10V} signal from a function generator, and to map it into the range {+1V ... +8V}. The circuit only needs to follow input signals up to a bandwidth of around 20 kHz. The arrangement I have so far is the following:

enter image description here

The scaling and shifting aspect of the circuit works fine, as can be seen in the oscilloscope screenshot below (left). Now, I would like help understanding more the noise in the circuit. In the oscilloscope screenshot below (right), I have applied a much smaller, 2 mVp-p input signal, and observe the noise introduced on the output signal (with both channels on AC coupling). You can see that my circuit has added significant noise onto the input signal:

enter image description here

In the previous images, I was almost at the noise floor limit of what my oscilloscope is able to discern, and so to get a better measure I have also measured the noise by feeding the signals first into the AD8428 instrumentation amplifier, which has gain x2000, via a 260 kHz low pass filter. The noise on the input and output for a 1 V DC input signal are shown below. At the moment, I am not able to provide a frequency spectrum of this noise, so apologies. From these data, I measure the input and output signals to have 53 µVrms and 357 µVrms of noise, respectively:

enter image description here

I have measured both the +12V and -12V power supply rails, and they are both much lower noise than that seen on the output, and so are not responsible for it. All these measurements were done with a "pigtail" ground scope probe, to reduce the effect of any pick-up (indeed, the noise goes away when shorting the + and - of the probe together).

Ideally, I would like the output noise to be limited by the noise on the input signal, and not add so much noise to it. Therefore I would like to understand exactly what is going on here. Specifically, my questions are:

1) Given the parts I have used, how would one go about calculating what the output noise is expected to be? I would like to learn what are the calculations and procedure I could go through in the future, and hopefully to predict the noise value seen on the output, without having to build it and measure it.

I have access to a bunch of specifications in the parts' datasheets, including a voltage noise density of 8 nV/√Hz and current noise density of 0.2 pA/√Hz for the op amp OP1177 (at 1 kHz), and for the LM4040 a value of 180 µVrms from 10 Hz to 10 kHz. I understand the concept of spectral density and how to convert to rms using the desired bandwidth, but I don't understand how I can take these numbers (along with presumably the thermal noise of my resistors), and put them all together to predict the measured value of 357 µVrms. It would be great if someone could walk me through this as an example. It would also be a bonus if someone can illustrate how LTSpice could be used in a case like this to back up any hand calculations.

2) How can I reduce the noise down? Ideally, if I manage to learn more towards answers to the above questions, then I would hope to figure this one out on my own.

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

Following suggestions in the comments and answers, I have tried adding two additional capacitors, shown below:

enter image description here

C7 is to limit the bandwidth of the op amp feedback, and therefore hopefully some of the noise. C6 is is an attempt to low pass filter the noise coming from the LM4040 +10V reference, which has the following noise specs from the datasheet:

enter image description here

As pointed out by analogsystemsrf, the LM4040 has quite a lot of noise already. Using the tool https://apps.automeris.io/wpd/ I have extracted the noise spectral density from the picture in the datasheet, and then numerically integrated this spectrum over various bandwidths to get the expected rms noise cumulatively as a function of bandwidth. With a 10 kHz bandwidth, we can expect ~170 µVrms (as stated explicitly in the datasheet), and this increases to 350 µVrms for a 100 kHz bandwidth:

enter image description here

With the addition of the two capacitors, the noise at the output is measured for both a shorted input, and with 1 VDC being sent from the function generator: enter image description here

When trying different values of C6 (always with the 100 pF feedback cap), the noise changes as follows:

No capacitor:     217 µVrms
1 nF capacitor:   167 µVrms
10 nF capacitor:  123 µVrms
100 nF capacitor: 118 µVrms 
1 µF capacitor:   117 µVrms
10 µF capacitor:  116 µVrms

--- 2ND EDIT ----------------------------------------------------------------

As suggested by VoltageSpike, I have also done some tests with R2 disconnected and V_IN grounded, in order to remove the extra complication of noise from the LM4040 reference. The effective schematic is then simply the following:

enter image description here

Then the output noise is measured using the AD8428 instrumentation amplifier, with two different bandwidths - the first is the standard bandwidth of the AD8428 amplifier of 3.5 MHz, and the second is with an additional 260 kHz low pass filter before the AD8428 amplifier. The following table shows the result of changing the value of C7:

enter image description here

Then, after selecting the 56 pF capacitor based on the above data, I have also measured the effect of adding additional filtering capacitors to the power rails of the op amp - specifically, an extra 10 µF and a 100 µF were added to each of the positive and negative rails, changing the noise as follows:

enter image description here

It seems now as if the output noise is coming down to the range of the power supply rails noise. Although, I don't understand why there is so much more noise on the output than the PSU rails when measuring over a 3.5 MHz bandwidth, given the fact that the op amp bandwidth should be limited to tens of kilohertz by the 56 pF capacitor C7.

--- 3RD EDIT ----------------------------------------------------------------

I have managed to get around to taking a noise spectrum of my simplified op amp circuit shown above. There is no C7 capacitor fitted, and the noise was again measured using the AD8428 amplifier (gain x2000, bandwidth 3.5 MHz). Also, to remove the possibility of my power supply rails dominating the op amp output noise, I have been powering the circuit using dual ±9V batteries.

Shown below is the oscilloscope trace, which indicates an RMS output noise of 196 µVrms. I have also then converted the time series data into a voltage spectral density, and the corresponding cumulative RMS noise curve (by integrating the spectral density over the relevant bandwith):

enter image description here

From the data, I am able to read off a voltage noise of ~85 nV/√Hz. Following this TI Application Report, and the book Noise Reduction Techniques in Electronic Systems (Ott, H.), I made an attempt to learn how to arrive at this number. First, I associate noise sources with the various elements - namely, thermal noises of each resistor, and the input voltage noise and input current noise of the OP1177 op amp:

enter image description here

After doing this, I calculate the following noise contributions:

RESISTOR THERMAL NOISE ( using \$\sqrt{4k_BTRB}\$ ):

For R1 - noise = 51 nV/√Hz * 1.35 = 68.9 nV/√Hz
For R2 - noise = 31 nV/√Hz * 1 = 31 nV/√Hz
For R3 - noise = 51 nV/√Hz * 0.35 = 17.9 nV/√Hz

The factors of 1.35 and 0.35 are the gains due to the op amp, depending on whether it is applied in inverting or non-inverting configuration for the various noise sources. So, total resistor thermal noise is found by adding the noise sources by the sum of the squares to be 77 nV/√Hz.

OP AMP INPUT VOLTAGE NOISE:

This is given in the OP1177 datasheet to be 7.9 nV/√Hz (at 1 kHz), and is subject to a gain of x1.35. Therefore its contribution is 10.7 nV/√Hz.

OP AMP INPUT CURRENT NOISE:

From the datasheet, the input current noise is 0.2 pA/√Hz (at 1 kHz). This will develop into a voltage noise across R1, and then due to the gain will contribute of 0.2 pA/√Hz * 160 kΩ * 1.35 = 43.2 nV/√Hz on the output. Similarly, it will also produce a voltage across R2 and contribute an additional 0.2 pA/√Hz * 56 kΩ = 11.2 nV/√Hz. Adding these in quadrature gives 44.6 nV/√Hz coming from the input current noise.

To get the total output voltage noise, we should simply have to add all three noise sources in quadrature, to arrive at:

\$\sqrt{(77\;\;\textrm{nV}/\sqrt{\textrm{Hz}})^2 + (10.7\;\;\textrm{nV}/\sqrt{\textrm{Hz}})^2 + (44.6\;\;\textrm{nV}/\sqrt{\textrm{Hz}})^2}\$ \$\approx 90 \;\;\textrm{nV}/\sqrt{\textrm{Hz}}\$

This seems to agree reasonably well with my measurement above of 85 nV/√Hz, and so these calculations seem to work okay.

However, I then obtained the SPICE model for the OP117 from the Analog Devices website here, and tried to reproduce this in LTSpice. The result is shown below:

enter image description here

It can be seen that LTSpice predicts something like 207 nV/√Hz, which is very different to both the measured value and the value obtained from the simple hand calculations. Can anyone help to shed any light on what might have gone wrong here? Am I misunderstanding how to do the noise calculations, or did I make a mistake in LTSpice?

Note that when configuring the OP1177 as a buffer without resistors, to measure its input voltage noise, LTSpice seems to give the correct value given in the datasheet of 7.9 nV/√Hz:

enter image description here

--- 4th EDIT ----------------------------------------------------------------

It turns out that the SPICE model from the Analog Devices website for the OP1177 was WRONG. Although the input voltage noise was being modelled correctly at 7.9 nV/√Hz (as shown above), the input current noise was wrong in the SPICE model file. Instead of the value given in the datasheet of 0.2 pA/√Hz, the model was incorrectly producing 0.86 pA/√Hz input current noise. When going through the above "hand calculations" using 0.86 pA/√Hz instead, I arrive at the value simulated by LTSpice of 207 nV/√Hz.

I am now happy that the hand calculations, the LTSpice result, and the measured value from lab are all consistent (provided your SPICE model is correct in the first place! Lesson - always compare SPICE model to datasheet values before continuing to model circuits).

\$\endgroup\$
  • \$\begingroup\$ How did you construct the circuit? Breadboard, perfboard, custom PCB, or what? \$\endgroup\$ – The Photon Sep 17 at 16:06
  • \$\begingroup\$ @ThePhoton The circuit is on a custom PCB with a top and bottom layer only. \$\endgroup\$ – teeeeee Sep 17 at 16:08
  • \$\begingroup\$ I'm suspicious that the OP1177 claims to be "unity gain stable" but then every typical performance curve is given with \$C_L=0\$. Calculate the capacitive load (including coaxial cable capacitance) you are applying, and read the section on "capacitive load drive" in the OP1177 datasheet. Are you following the recommendations there? \$\endgroup\$ – The Photon Sep 17 at 16:10
  • \$\begingroup\$ I just have the output BNC going straight into the oscilloscope (sometimes via the InAmp as well), and am not applying any explicit capacitive load. Isn't that section in the datasheet all about oscillations and instability? The noise that I have measured is not periodic, and seems like white noise... \$\endgroup\$ – teeeeee Sep 17 at 16:14
  • 2
    \$\begingroup\$ Could be the reference diode is noisy. \$\endgroup\$ – analogsystemsrf Sep 17 at 16:23
1
\$\begingroup\$

Given you have "high value" resistors, you are not yet serious about the noise floor.

A 1Kohm resistor produces 4.00 nanoVolts RMS noise /rootHertz, that is in 1Hz bandwidth. At 290 degree Kelvin.

In 10Hz BW, 4*sqrt(10). In 100Hz BW, 4*sqrt(100). In 1,000Hz BW, 4nV * sqrt(1,000).

Lets examine that 8nanoVolt/rtNz noise density. The equivalent resistor inside that opamp, to produce that 8nV, is 4,000 ohms. Vnoise is sqrt(4 * K * T * Bw * R).

If you keep the resistors down to 1Kohm or so, requiring several milliAmps from the opamp, you can easily design a circuit with opamp-noise-density-limited total integrated random noise.

With low Rvalue resistors, you can ignore the current-density. 1kohm * 0.2pA = 0.2nanoVolts, very small compared to 8nanoVolts.

Thus in a 10,000 Hz bandwidth (including the pi/2 factor for 1-pole rolloff) you will have total input referred noise of 4nV * sqrt(10,000) = 400nV = 0.4 microvolt rms.

Since your gain is about ONE, this will also be your output noise. Ignoring power supply trash, ground noise, magnetic field intrusion (20,000 Hz is not shielded or attenuated by standard copper foils), and electric field charge injection.

If you use 20,000Hz bandwidth, 1-pole rolloff, you'll have 20,000 * pi/2 or or 31,000Hz equivalent bandwidth, with the noise voltage being integrated out to infinity as your 1-pole does the rolloff.

The total integrated noise voltage is sqrt(31,000) * 4nanoVolts.

Thus 170*4 == 680nV == 0.68 microvolt RMS.

=====================================================

After reading the LM4040 datasheet:

The noise bandwidth of the LM4040 is about 40KHz. Thus the total integrated noise will be sqrt(40,000/ 10,000) * 180uVrms, or 360uVrms.

That is divided by R6 and R7. Their own contribution is about 10Kohm equivalent, or 4nV * sqrt(10,000 / 1,000) = 12 nanoVoltsrms/rtHz, with high bandwidth. Assume 1MHz, thus 12nV * sqrt(1,000,000) = 12 uVrms.

The opamp buffer is 8nVrms.

The voltage divider R1 and R2 is about 40,000 equivalent (those 2 in parallel); assume the same 1MHz bandwidth, so use the total integrated noise of R6/R7 and scale up; thus 12uVrms * sqrt(40,000 / 10,000) = 24 uVrms.

The feedback network (gain slightly more than 1) has the same noise contribution, or 24uVrms.

So you have a number of contributions. The largest is the reference diode. Lets filter that, with a 160Hz RC lowpass; we need 1milliSecond time constant TAU. The equivalent resistance on pin#3 of left-most opamp is about 10,000 ohms; install a capacitor in parallel, to ground, with R7, to get a 0.001 second (1e-3 second); a 0.1uF (or 1e-7 farad cap) does this.

Filtering the Reference should be exciting.

Now restrict the output bandwidth to 20KHz, or about 10 microseconds (about 8uS, actually, but lets do easy math).

With R4 of 50Kohm, a 1pF cap in parallel causes tau of 50,000 picoSeconds, or 3MHz. Install 100pF and expect about 30,000Hz bandwidth. [wrong: not for non-inverting circuit use, because the Grounded resistor --- R3 --- prevents gain attenuation below Gain=1. So this 100pF is not a wise approach.]

That should be exciting. [ wrong. The gain will only drop from 1.3 to 1.0 and then not attenuate any more. Thus is not a useful high-frequency lowpass.]

Now use your instrumentation amplifier to examine the (zero output amplitude) of the Function Generator. That should be exciting.

You may need to install 100 ohm resistors in each of the 4 VDD paths. And up the bypass caps to 10uF. This ensures higher frequency noise in the power supply regulator servo loop is filtered DOWN in amplitude.

Let me know what works.

===============================================

The righthand opamp U3 is an awkward circuit to convert to low-pass-filter. A capacitor across the Rfeedback merely ensures the high-frequency gain = 1.000, which lets all the opamp noise and the Vnoise of R3 160K to appear on the output.

Assuming no noise entering the Vin-, nor the VDD pins, the opamp Rnoise of 4 Kohm can be added to the 160Kohm, thus predicting 164K ohm. Given 13*13 = 169, we'll scale up 4nV by 13, to 52 nanoVoltrms/rtHz, over 1MHz bandwidth.

The total integrated noise should be 52 microVolts rms. [ error Initially said 52 milliVolts]

\$\endgroup\$
  • \$\begingroup\$ I am trying to get to a situation where I can calculate what to expect. This should then tell me whether my measured noise is, for example, due to poor layout, or whether it is simply the fundamentally expected level based on the parts that have been selected. Are you saying that this 357 µVrms can be accounted for mainly by the large resistor values I have chosen? \$\endgroup\$ – teeeeee Sep 17 at 19:46
  • \$\begingroup\$ Per the various computations I added, the resistor contributions are much smaller than the Reference Diode. \$\endgroup\$ – analogsystemsrf Sep 18 at 4:28
  • \$\begingroup\$ Thanks for your time. I have made the suggested changes, and have shown the results as an edit in the original question. It certainly helps. I have not been able to make the changes to the PSU lines at the moment. What prompted you to suggest a 160 Hz frequency for the reference low pass? Could it be that now we are approaching a non-negligible contribution from the resistors? Can you suggest anything else to try? \$\endgroup\$ – teeeeee Sep 18 at 13:08
  • \$\begingroup\$ The160Hz comes from using 0.1uF on first opamp (assuming 10Kohm Requiv) to generate 1.0milliSecond Tau; so easy-math. Now lets determine the noise-floor. Ground the BNC, and add 0.1uF from Vin+ to GND of 2nd opamp. This eliminates all high-freq noise except opamp and VDD lines. And the 100pF sets bandwidth to 30,000Hz. \$\endgroup\$ – analogsystemsrf Sep 18 at 15:36
  • \$\begingroup\$ Sorry, I wasn't clear. I didn't mean how to calculate the number 160 Hz - I mean why did you suggest 160 Hz? Since this should be a constant reference, why not set it much lower? The lower we set the cut-off, the more noise should be attenuated? When placing 100 nF from V_IN to GND, I don't see any reduction in noise - still the same 140 µVrms as when shorting the V_IN to GND with a wire. \$\endgroup\$ – teeeeee Sep 18 at 16:21
1
\$\begingroup\$

To explain how to calculate total noise from an op amp is too large of scope for an answer on this site as it would require many pages of information. A good article to read is Noise: The. Three. Categories—Device,. Conducted,. and. Emitted. Bonnie Baker

In short however, you take each noise source and multiply it by the bandwith, convert it to RMS. Noise sources add by the sum of the squares.

PSRR can be neglected in almost all cases. If you keep your ripple to below the 1 mV pk-pk range with a good regulator and have an amp with 120dB of rejection would reduce power noise to below 1nV pk-pk.

It also helps to consider what level of noise you want to attain, if you only need 1uV pk-pk input referred noise then usually the largest noise sources need to be considered (usually voltage noise from the opamp). Lower than this and other noise sources will become contributors (current noise, resistor temperature noise).

In your case the bandwidth is the bandwidth determined by the opamp, because you have no filtering on the opamp. It would be wise to put in some kind of band-limiting (like a low pass filter). If I put in a LPF with a pole at 1kHz, then I could approximate the noise of all the components from 0.1Hz to 1kHz (there is some roll off but this can be ignored in most cases). You want a pole at the lowest frequency possible with an LPF without degrading the signal.

\$\endgroup\$
  • \$\begingroup\$ Okay, I am not sure what to take for the bandwidth in this case though. I have not limited the bandwidth of my circuit at all (yet), and so should I take some value from the OP1177 datasheet for the bandwith in the calculation? \$\endgroup\$ – teeeeee Sep 17 at 19:43
  • \$\begingroup\$ I included more information, you will want to limit the bandwidth of your opamp, this also limits the noise. Right now the opamp itself is limiting the noise, so you would integrate all of the noise to the GBWP (wherever the bandwidth hits unity gain). It would do you well to limit the bandwidth. This is also the reason why noise figures are provided in V/Hz, because the designers don't know what bandwidth you'll use, that's determined by the filtering \$\endgroup\$ – Voltage Spike Sep 17 at 19:51
  • \$\begingroup\$ Makes sense. Where would be a good place for the filter? I guess if it comes afterwards then it can attenuate some of the noise from the op amp? But then it will be affected by whatever load I attach I suppose... Would it be better to add a capacitor around the op amp as part of the feedback for this purpose? \$\endgroup\$ – teeeeee Sep 17 at 19:57
  • \$\begingroup\$ A cap across R4 and R2 would work. \$\endgroup\$ – Voltage Spike Sep 17 at 20:01
0
\$\begingroup\$

By suggesting a 100 pF capacitor across the gain-set 56K resistor R4 is a GOOD method to control the noise bandwidth, I have seriously misled the questioner. I am wrong.

A capacitor across a feedback resistor, to roll off the frequency response, works well in INVERTING opamp circuits.

This is not an inverting opamp circuit.

In the U3 opamp circuit, the gain is (160+56)/160 or about 1.3 at low frequencies. At high frequencies, by taking the feedback impedance to ZERO by the capacitor action, the gain only drops to ONE, from the math (160+0)/160.

Again, the gain does not drop to 0.0001 at very high frequencies, or even to 0.001 or 0.01 or 0.1; the gain levels off within a mere octave of frequency increase, to ONE.

Thus the bandwidth is never being reduced.

Now lets compute the NOISE to expect from a simplified version of the U3 opamp circuit

schematic

simulate this circuit – Schematic created using CircuitLab

I've included Four items in the figure:

1) the noise density and the total integrated noise voltage in 1MHz bandwidth, for 1Kohm, for 10Kohm and for 100Kohm resistors. These values are 4 microVolts RMS, 12 microVolts RMS, and 40 microVolts RMS. Notice the 40 microVolts is near the measured value of your output noise, using 160Kohm resistor.

2) simplified circuit, at Gain=1 (Rfeedback = zero ohms) with opamp noise modeled at 4Kohm resistor (to produce 8 nanoVolts/rootHz noise density), with computation for expected output noise voltage of 52 microVolts

3) the effect of the inherent 5picoFarad parasitic capacitance on pin Vin- of the opamp, which gives a free reduction in bandwidth

4) a modified circuit, using output R+C lowpass (560 ohm and 10,000 pF) to reduce noise bandwidth, and a specially-connected prevent-loop-oscillation capacitor from opamp output to the Vin-, which allows the output LowPass to be effective.

\$\endgroup\$
  • \$\begingroup\$ Okay, I didn't realise this, thanks for pointing it out. So how would one go about limiting the bandwidth in a circuit such as mine, or in general for a non-inverting amplifier? \$\endgroup\$ – teeeeee Sep 19 at 16:10
  • \$\begingroup\$ Thanks for your answer. This may help in the end to reduce the noise. Just getting back to the original question about how to predict the output noise, I have managed to take a frequency noise spectrum now, and have edited the original post. I tried to learn how to go through the calculation for the noise myself, and have included this as well. However, it does not agree with LTSpice calculation. Would you mind taking a look, to see where the mistake was made? I am not able to arrive at the 52 uVrms that you mention... \$\endgroup\$ – teeeeee Sep 24 at 21:00

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.