So-called 1 ⁄ *f* or "pink" noise is noise with a power spectral
density that is inversely proportional to frequency. It manifests itself in
op-amps as both an input voltage and input current noise, where it is commonly
called flicker noise. It is
typically characterised on op-amp datasheets in terms of a white noise that does not vary with
frequency and a "corner" frequency below which the noise rises.

When I want to take the flat noise and corner frequency from the datasheet and
plot it on top of some measurements, I often forget how to generate the noise
vector given those two numbers. For the benefit of anyone else wondering how to
do this, and/or too lazy to think about it, here is some Python code I made to
do it. It assumes an array-like input vector *f* such as a NumPy array.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import numpy as np def opamp_noise(f, flat_noise, corner_frequency): """Calculate op-amp noise spectral density given the specified frequency vector (in e.g. Hz), flat noise (in e.g. V/sqrt(Hz) or A/sqrt(Hz)), and corner frequency (in e.g. Hz). Parameters ---------- f : array-like The 1xN dimensional frequency vector. flat_noise : float The flat noise value above the corner frequency, e.g. 4.3 nV/sqrt(Hz). corner_frequency : float The frequency at which the flat noise starts to rise towards lower frequencies (the -3 dB point), e.g. 21 Hz. Returns ------- array-like The combined flat and 1/f op-amp noise vector, of identical size to the supplied `f` parameter. """ # The 1/f noise contribution. flicker_noise = flat_noise * np.sqrt(corner_frequency / f) # Combine in quadrature with the flat noise contribution. return np.sqrt(flicker_noise ** 2 + flat_noise ** 2) |

The above function is valid for both op-amp voltage and current noise spectra.
Note that this noise actually follows a 1 ⁄ √(*f*) shape when
plotted as per the function above. This is because datasheets define the flat
noise in volts or amperes per square-root Hz, which are amplitudes, whereas the
1 ⁄ *f* behaviour of the noise is defined in terms of power (i.e.
amplitude squared, so e.g. volts-squared per Hz).

Fun fact that I just learned from the Wikipedia page linked above: this noise is given the
description "pink" because white light passed through a filter that applies a
1 ⁄ *f* power spectrum (where *f* in this case is the light
frequency) is pink.