Physics Stack Exchange is a question and answer site for active researchers, academics and students of physics. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to model of Johnson-Nyquist noise propagation in a nonlinear circuit. An ideal (linear) resistor can be modeled very nicely by the Fokker-Planck equation (equivalently, the drift-diffusion equation), where charge $V/R$ flows through the resistor on average, but there's also random flow of charge either way across the resistor characterized by "diffusion coefficient" $k_BT/R$. I get a nice differential equation describing how charge probabilistically flows through my circuit. Everything is good.

Then stage 2 is to have a resistor with frequency-dependent resistance (like all resistors in the real world). Here I get stuck...

A time-domain-based analytical solution seems impossible because---with frequency-dependent resistance---it would seem that charge transport across the resistor right now depends on the entire history of charge transport in the past.

A time-domain numerical (monte carlo) solution seems impossible because the relevant frequencies vary over many orders of magnitude I don't know how to construct a time-domain stochastic model with a predetermined power spectrum.

Any kind of frequency-domain solution seems impossible because other parts of the circuit are extremely nonlinear and therefore mix different frequencies together.

Any advice? Am I missing some trick?

share|cite|improve this question
I'm out of my depth here, but something like a Drude model (ref wikipedia) for the resistor could be implemented by adding a small series inductance. – Art Brown Jun 13 '12 at 17:15

Just taking a stab in the dark here, but perhaps it would be possible to take your white noise signal and feed it through a parallel bank of digital time-domain bandpass filters, chosen so that their combined spectra approximate the desired spectrum?

share|cite|improve this answer
You get the bounty ... that helped get me thinking although I ended up doing something a bit different. – Steve B Jun 15 '12 at 14:58

OK, a little bit like zephyr's answer, I started with white noise, took the FFT, and then scaled each frequency component up or down according to the square-root of the power at that frequency, then did inverse-FFT to get the time-domain signal.

An equivalent approach would have been to generate the FFT directly by giving each component the appropriate magnitude and a phase randomly chosen between 0 and 2pi. (Obviously the positive and negative frequencies need to have opposite phases to keep the signal real.) Then, again, inverse-FFT back.

It kind of makes sense to me that every frequency component should have a predetermined magnitude and a random phase ... although I'm not 100% confident. Anyway so far the results all seem to be making sense. (But see @DanielSank's comment.)

share|cite|improve this answer
Important note: if you only randomize the phases in the approach described in the second paragraph, you're doing it wrong. As you will undoubtedly see when you Fourier transform the white noise, the amplitudes of the Fourier coefficients are also randomly distributed. Using deterministic amplitudes and random phases leaves out part of the statistics. This is a very, very common mistake. – DanielSank Jun 17 '15 at 16:49

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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