I want to amplify the noise generated by a MAX8069 voltage reference, using direct coupling in order to preserve the low frequency components. The frequency band of interest is from 1Hz to 44Khz. I'd like to be able to measure the power spectrum at different frequencies, so minimising filtering and distortion is important. The output of the op-amp will go to the input of an AVR ADC, which is high impedance. The application is a random number generator.

I had the idea of measuring the difference between two similar noise sources; this should yield plenty of noise whilst allowing the direct coupled design.

The op-amp chosen is LM358, noise is supplied into both inputs from two 1.22v MAX8069 voltage references. These should generate around 20µV noise. Supply voltage is 5v and current into each reference is limited to around 1ma by 3k3 resistors. This should maximise the noise each reference generates - see Terry Ritter's junction noise measurements.

The expected behaviour is to see large voltage noise at the output of the op-amp. What I'm actually seeing is the output steady at 3.75v. This changes to 3.8v if the inputs are swapped.

Schematic http://a.yfrog.com/img741/1007/af9qy.jpg

What is the explanation for the fixed output voltage, and what modifications would be needed to see the expected behaviour?

  • 1
    \$\begingroup\$ Ignoring the noise for the moment, do you really think that the two separate voltage references are going to produce the exact same mean DC voltage? What about input offset errors in the opamp itself? \$\endgroup\$
    – Dave Tweed
    Mar 6, 2013 at 13:13
  • \$\begingroup\$ The mean voltage of the references should vary within the tolerances in the data sheet. I will check these and see if that could be bigger than the noise voltage. Input offset voltage for this op-amp is smaller than the expected noise level, so I would expect to see some amplified noise on the output. \$\endgroup\$ Mar 6, 2013 at 13:26
  • 1
    \$\begingroup\$ OK, the data sheet allows the reference to vary between 1.20v to 1.25v. When I measure the circuit both references are at 1.224v. However my expected noise is 0.00002v. Therefore it is possible that one reference is slightly lower than the other, by much more than the amount of noise. I will test by reversing the inputs. \$\endgroup\$ Mar 6, 2013 at 13:39
  • \$\begingroup\$ I've never seen or read about an open-loop op amp used as a difference amplifier, even for tiny signals, for reasons described above and below. upload.wikimedia.org/wikipedia/commons/thumb/a/a2/… shows a reliable difference amplifier configuration, which has drawbacks for this use as well. \$\endgroup\$ Mar 6, 2013 at 14:55

3 Answers 3


Too much gain. The amp is open-loop so its gain will be about 100,000. Any difference between the source voltages, even 1mv, will cause the output to clip (settle as close as it can get to one of the supply rails).

Look for examples how to set the opamp gain to something more reasonable (say 100 or 1000) such as the "non-inverting" amplifier here. With Rf= 100k and Rg=1k, gain would be a reasonable 101. You will also only need one of your noise source inputs.

One warning about excessively high gain from an opamp : bandwidth is reduced (see "open loop bandwidth" and "gain/bandwidth product" aka "unity gain bandwidth") so noise from such an amplifier will not be "white" (spectrally flat). You need to decide the bandwidth you need and set the gain accordingly. For an ADC, bandwidth is usually less than half of the sample rate. For white noise, we probably don't need to be as strict as we would for general signals, but still, a bandwidth of 30kHz is reasonable given your 77kHz limit on sample rate.

For a TL082, unity gain bandwidth is specified as 3 MHz, so that limits our gain to 3MHz/30kHz = 100 for a single amplifier stage. You can choose a faster opamp, or add a second amplifier stage for higher gain. (However, it can be difficult to stop a high gain, high bandwidth amplifier from oscillating)

You may want to control the DC gain separately from the AC gain, and set the DC gain to a lower value such as 1. This is easily done with a capacitor (say 10 to 100 uf) in series with Rg. Then you can increase Rf to increase gain without the output clipping from DC imbalance (but at the cost of reduced bandwidth).

EDIT: Simple capacitor coupling would reduce the DC gain to 0. This approach has a DC gain of one, easily increased with a resistor across the capacitor, to some intermediate value. Either approach works.

You can employ higher order filters to improve the response around your chosen cutoff point; at the moment I think it adds complexity. Or you could set the cutoff to 0.1 Hz, but I think you would have to wait about a minute before it settled after power up!

  • \$\begingroup\$ Try again : 20mv (millivolt) * 100000 is 2000V. Now if you meant microvolt... \$\endgroup\$ Mar 6, 2013 at 13:35
  • \$\begingroup\$ I'm expecting noise in the order of 20µv, which should be 2v at a gain of 100,000 (my bad transcription). This seemed good to me, but the noise level is much smaller than the accuracy of the voltage references, and is also much lower than the input offset of the op-amp. \$\endgroup\$ Mar 6, 2013 at 14:00
  • \$\begingroup\$ ... which are principally DC errors, therefore controlling the AC and DC gain separately is useful. One warning about excessively high gain from an opamp : bandwidth is reduced (see "open loop bandwidth" and "gain/bandwidth product") so noise from such an amplifier will not be "white" (spectrally flat). You need to decide the bandwidth you need and set the gain accordingly. \$\endgroup\$ Mar 6, 2013 at 14:06
  • \$\begingroup\$ The output will drive an ADC which cant sample faster than 77kHz. This would seem an adequate bandwidth. Can you point to a good explanation of controlling AC and DC gain separately, and also how to derive the gain needed from this bandwidth? \$\endgroup\$ Mar 6, 2013 at 14:10
  • \$\begingroup\$ If I add a series capacitor to Rg to control DC gain I can use a simple non inverting configuration as you state. However my goal was to avoid suppressing low frequencies which this seems to contradict? \$\endgroup\$ Mar 6, 2013 at 14:53

Op amps will saturate at one of the rails, or hammer between the two rails, when in open loop mode. I'd recommend replacing the op amp with an instrumentation amplifier like the AD623 (single supply rail to rail), and that way you won't have to worry about precision resistors like you would if you were making a difference amplifier.

Don't forget that sometime the difference in your two noise sources will be negative, so if you want to work with one power supply tie Vref at Vcc/2.


Forgive me if my OpAmp theory is rusty, but here's how I would approach the problem.

Noise Source

First we start out by using only one noise source. This way we avoid any problems with offsets between two different sources. Using R2 and C1, we take a copy of the noise source, and filter it to reduce the noise level. Then using the first OpAmp, we amplify the noise source with respect to the filtered version.

Then we do it again. This gives a total of 400x gain, 8mV noise. You might try higher gains, or more stages if you want.

Lastly, we use a comparator to turn this into a 1-bit digital noise signal.

  • \$\begingroup\$ Not sure why you wouldn't just tie all the noninverting inputs to ground (through a 1K resisitor, to reduce bias). You're right about one zener, though-- that noise should be white enough. (I thought it might be 1/f -- I had to look it up). \$\endgroup\$ Mar 6, 2013 at 17:28
  • \$\begingroup\$ @ScottSeidman - The point is that the non-inverting input is supposed to be at exactly the same voltage as the inverting input (but with less noise). \$\endgroup\$ Mar 6, 2013 at 17:34
  • \$\begingroup\$ An opamp in feedback will guarantee this. When you ground the noninverting input, the inverting input is at virtual ground, and Vout will be -Gain*Vin. \$\endgroup\$ Mar 6, 2013 at 17:56

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.