Command: noise_generator



This device can be used to inject a Gaussian "white" noise current into a node.
The current is not really white but a piecewise constant current with Gaussian
distributed amplitude. The current changes at intervals of dt. dt must be a
multiple of the simulation step size the default is 1.0ms
corresponding to a 1kHz cut-off.
Additionally a second sinusodial modulated term can be added to the standard deviation of the noise.

The current generated is given by

I(t) = mean + std * N_j for t_0 + j dt <= t < t_0 + (j-1) dt

where N_j are Gaussian random numbers with unit standard deviation and t_0 is
the device onset time.
If the modulation is added the current is given by

I(t) = mean + sqrt(std^2 + std_mod^2 * sin(omega * t + phase)) * N_j for t_0 + j dt <= t < t_0 +
(j-1) dt

For a detailed discussion of the properties of the noise generator please see
the noise_generator.ipynb notebook included in the NEST source code (docs/model_details).


The following parameters can be set in the status dictionary:

mean double - mean value of the noise current in pA
std double - standard deviation of noise current in pA
dt double - interval between changes in current in ms default 1.0ms
std_mod double - modulated standard deviation of noise current in pA
phase double - Phase of sine modulation (0-360 deg)
frequency double - Frequency of sine modulation in Hz

Ported to NEST2 API 08/2007 by Jochen Eppler updated 07/2008 by HEP

- All targets receive different currents.
- The currents for all targets change at the same points in time.
- The interval between changes dt must be a multiple of the time step.
- The effect of this noise current on a neuron DEPENDS ON DT. Consider
the membrane potential fluctuations evoked when a noise current is
injected into a neuron. The standard deviation of these fluctuations
across an ensemble will increase with dt for a given value of std.
For the leaky integrate-and-fire neuron with time constant tau_m and
capacity C_m membrane potential fluctuations Sigma at times t_j+delay are given by

Sigma = std * tau_m / C_m * sqrt( (1-x) / (1+x) ) where x = exp(-dt/tau_m)

for large t_j. In the white noise limit dt -> 0 one has

Sigma -> std / C_m * sqrt(dt * tau / 2).

To obtain comparable results for different values of dt you must
adapt std.