This is A PREVIEW for NEST 3.0 and NOT an OFFICIAL RELEASE! Some functionality may not be available and information may be incomplete!

noise_generator – Device to generate Gaussian white noise current


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.0 ms, corresponding to a 1 kHz 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 \text{ for } t_0 + j dt \leq 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

\[\begin{split}I(t) = mean + \sqrt(std^2 + std_{mod}^2 * \sin(\omega * t + phase)) * N_j \\ \text{ for } t_0 + j dt \leq t < t_0 + (j-1) dt\end{split}\]

For a detailed discussion of the properties of the noise generator, please see noise_generator notebook included in the NEST source code.


  • 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 time \(t_j+delay\) are given by

    \[\begin{split}\Sigma = std * \tau_m / C_m * \sqrt( (1-x) / (1+x) ) \\ \text{where } x = exp(-dt/\tau_m)\end{split}\]

    for large \(t_j\). In the white noise limit, \(dt \rightarrow 0\), one has

    \[\Sigma \rightarrow std / C_m * \sqrt(dt * \tau / 2).\]

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

As the noise generator provides a different current for each of its targets, the current recorded represents the instantaneous average of all the currents computed. When there exists only a single target, this would be equivalent to the actual current provided to that target.


The following parameters can be set in the status dictionary:



Mean value of the noise current



Standard deviation of noise current



Interval between changes in current, default 1.0ms



Modulated standard deviation of noise current



Phase of sine modulation (0-360 deg)



Frequency of sine modulation