cnoise


cnoise, a MATLAB code which generates sequences that simulate 1/f^alpha power law noise. This includes white noise (alpha = 0), pink noise (alpha = 1) and red or Brownian noise (alpha = 2), as well as noise for values of alpha between 0 and 2.

CNOISE is based in part on an algorithm by Kasdin, as cited in the references.

Kasdin's implementation referenced a number of functions from the Numerical Recipes library (FOUR1, FREE_VECTOR, GASDEV, RAN1, REALFT, VECTOR). Numerical Recipes is a proprietary library whose components cannot be freely distributed. Moreover, the Fourier transform functions require the size of the data to be a power of 2.

This version of the program is implemented as a MATLAB function. The Fourier transform functions that are invoked can handle input data of any size.

Versions of the algorithm are implemented which generate a vector x of size N with a 1/f^alpha frequency distribution, with three choices for the underlying distribution of the white noise vector:

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

cnoise is available in a C version and a MATLAB version.

Related Data and Programs:

colored_noise, a MATLAB code which generates samples of noise obeying a 1/f^alpha power law.

ornstein_uhlenbeck, a MATLAB code which approximates solutions of the ornstein-uhlenbeck stochastic differential equation (sde) using the euler method and the euler-maruyama method.

pink_noise, a MATLAB code which computes a "pink noise" signal obeying a 1/f power law.

stochastic_rk, a MATLAB code which applies a runge-kutta scheme to a stochastic differential equation.

Author:

Miroslav Stoyanov,
Oak Ridge National Laboratory.

Reference:

  1. Martin Gardner,
    White and brown music, fractal curves and one-over-f fluctuations,
    Scientific American,
    Volume 238, Number 4, April 1978, pages 16-32.
  2. Jeremy Kasdin,
    Discrete Simulation of Colored Noise and Stochastic Processes and 1/f^a Power Law Noise Generation,
    Proceedings of the IEEE,
    Volume 83, Number 5, 1995, pages 802-827.
  3. Edoardo Milotti,
    1/f noise: a pedagogical review,
    arXiv:physics/0204033.
  4. Sophocles Orfanidis,
    Introduction to Signal Processing,
    Prentice-Hall, 1995,
    ISBN: 0-13-209172-0,
    LC: TK5102.5.O246.
  5. William Press,
    Flicker Noises in Astronomy and Elsewhere,
    Comments on Astrophysics,
    Volume 7, Number 4, 1978, pages 103-119.
  6. Miroslav Stoyanov, Max Gunzburger, John Burkardt,
    Pink Noise, 1/f^alpha Noise, and Their Effect on Solutions of Differential Equations,
    International Journal for Uncertainty Quantification,
    Volume 1, Number 3, pages 257-278, 2011.

Source Code:


Last revised on 22 December 2018.