I'd like to create a random number generator based on thermal noise from a resistor, using an opamp to amplify the noise and an inverter to convert the resulting spikes into a digital signal.
Here's my current design:
When I remove R5 and feed Multisim's thermal noise source (set to 10M ohm / 27C / 1MHz bandwidth) I get perfect results. The output of U2 is noisy, the input of U1A ranges from roughly +12V to -12V, and the output of U1A gives me a random-ish digital output. I plan to feed this to a PIC and do bias correction on there.
The problem is that Multisim's resistors are ideal, or at least ideal enough to not produce any noise. As such, I can't test this. Will it work as I expect, or am I missing something?
Update #1:
I've split the opamp into three stages and introduced a second 10M resistor to make the input midscale. I now get a much higher bandwidth output and my gain is about 10,000.
Update #2:
Ok, I think we're getting there. Some resistor values have been tweaked, and a midpoint has been added.
Answer
you got popcorn noise on front end OA too.. no longer random
OP Amps generate Pop Corn noise unlike thermal brownian motion random noise, so your assumption was invalid. THis works for microwave noise range but not for audio frequency range unless you use low noise OA that is lower than a resistor. Hence your design will not create random number gnerator from the time domain bias of pop corn noise in active parts.
No comments:
Post a Comment