This version of the documentation is NOT an official release. You are looking at ‘latest’, which is in active and ongoing development. You can change versions on the bottom left of the screen.

noise_generator – Generate a 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.

All stimulation devices share the parameters start and stop, which control the stimulation period. The property origin is a global offset that shifts the stimulation period. All three values are set as times in ms.

  • For spike-emitting devices, only spikes with times t that fulfill start < t <= stop are emitted. Spikes that have timestamp of t = start are not emitted.

  • For current-emitting devices, the current is activated and deactivated such that the current first affects the target dynamics during the update step (start, start+h], i.e., an effect can be recorded at the earliest at time start+h. The last interval during which the current affects the target’s dynamics is (stop-h, stop].

The property stimulus_source defaults to an empty string. It can be set to the name of a stimulation backend, in which case it will take its parameters from the configured backend instead of from the internally stored values. More details on available backends and their properties can be found in the guide to stimulating the network.



A string (default: “”) specifying an arbitrary textual label for the device. Stimulation backends might use the label to generate device specific identifiers like filenames and such.


A positive floating point number (default : 0.0) used as the reference time in ms for start and stop.


A positive floating point number (default: 0.0) specifying the activation time in ms, relative to origin.


A string (default: “”) specifying the name of the stimulation backend from which to get the data for updating the stimulus parameters of the device. By default the device uses its internally stored parameters for updating the stimulus.


A floating point number (default: infinity) specifying the deactivation time in ms, relative to origin. The value of stop must be greater than or equal to start.


The mean value of the noise current (pA)


The standard deviation of noise current (pA)


The interval between changes in current in ms (default: 1.0)


The modulated standard deviation of noise current (pA)


The phase of sine modulation (0-360 deg)


The frequency of the sine modulation

Set parameters from a stimulation backend

The parameters in this stimulation device can be updated with input coming from a stimulation backend. The data structure used for the update holds one value for each of the parameters mentioned above. The indexing is as follows:

  1. mean

  2. std

  3. std_mod

  4. frequency

  5. phase



See also

Device, Generator