# Modeling stochastic process with frequency-dependent power spectrum

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?

-

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

## 2 Answers

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?

-

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.

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 2, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9297733902931213, "perplexity_flag": "middle"}