Skip to content

Mathematical Basis

To generate correlated noise, the procedure designated in Timmer et al. (1995) is followed. First, random Gaussian noise G(f) is generated in the Fourier domain, by drawing from a normal distribution at each point in frequency space. The frequency space grid is computed simply from the size of the signal data itself. Fourier Gaussian noise is then scaled by the square root of a designated Fourier domain power function:

A(f)=P(f)=fβ

in which β is a negative index and f denotes the vector norm |f|. This is the most basic power spectrum available for use, but other special power law functions may also be implemented.

The power-law-scaled Fourier noise, F(f)=G(f)A(f) is inverse Fourier transformed back into the signal domain to produce the output signal noise:

S(r)=1Nf=0NF(f)e2πifr

Reversing the process, the approximate power spectrum can be retrieved from a given signal noise S(r) via a forward Fourier transform:

P¯(f)=|F(f)|2=|1Nf=0NS(r)e2πifr|2

The approximated power spectrum output by get_power_spectrum divides this above result, P¯(f), by 2 to correct for a positively skewed offset in the squared amplitude of Gaussian noise.

Power Laws

StationaryRandomFields.jl implements additional power law functions to be substituted as P(f) in the above equations. SaturatedPowerLaw takes the standard form of P(f)=fβ only within the interval $f_0 < f < f_1 $, where f0 and f1 are input inner and outer scale cutoffs (inscale and outscale), respectively. When ff0, the spectrum becomes:

P(f)=f0β

and when ff1:

P(f)=0.