cnoise
    
    
    
      cnoise,
      an Octave 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.
    
    
      This version of the program is implemented as a 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:
      
        - 
          f_alpha_uniform ( n, range, alpha ),
          a uniform distribution on (-range,+range);
        
 
        - 
          f_alpha_gaussian ( n, q_d, alpha ),
          a Gaussian distribution with mean 0, variance q_d;
        
 
        - 
          f_alpha_tgaussian ( n, q_d, range, alpha ),
          a Gaussian distribution with mean 0,
          variance q_d, truncated to (-range,range).
        
 
      
    
    
      Licensing:
    
    
      The information on this web page is distributed under the MIT license.
    
    
      Languages:
    
    
      cnoise is available in
      a C version and
      a MATLAB version and
      an Octave version.
    
    
      Related Data and Programs:
    
    
      
      cnoise_test
    
    
      
      colored_noise,
      an Octave code which
      generates samples of noise obeying a 1/f^alpha power law.
    
    
      
      ornstein_uhlenbeck,
      an Octave code which 
      approximates solutions of the ornstein-uhlenbeck 
      stochastic differential equation (sde) using the euler method and
      the euler-maruyama method.
    
    
      
      pink_noise,
      an Octave code which
      computes a pink noise signal obeying a 1/f power law.
    
    
      
      stochastic_rk,
      an Octave code which
      applies a Runge-Kutta scheme to a stochastic differential equation.
    
    
      Author:
    
    
      Miroslav Stoyanov, 
      Oak Ridge National Laboratory.
    
    
      Reference:
    
    
      
        - 
          Martin Gardner,
          White and brown music, fractal curves and one-over-f fluctuations,
          Scientific American,
          Volume 238, Number 4, April 1978, pages 16-32.
         
        - 
          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.
         
        - 
          Edoardo Milotti,
          1/f noise: a pedagogical review,
          arXiv:physics/0204033.
         
        - 
          Sophocles Orfanidis,
          Introduction to Signal Processing,
          Prentice-Hall, 1995,
          ISBN: 0-13-209172-0,
          LC: TK5102.5.O246.
         
        - 
          William Press,
          Flicker Noises in Astronomy and Elsewhere,
          Comments on Astrophysics,
          Volume 7, Number 4, 1978, pages 103-119.
         
        - 
          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:
    
    
      
        - 
          f_alpha_gaussian.m, 
          generates a discrete colored noise vector of size N with power 
          spectrum distribution of ALPHA.
          White noise is sampled from a Gaussian (0,q_d) distribution.
        
 
        - 
          f_alpha_tgaussian.m, 
          generates a discrete colored noise vector of size N with power 
          spectrum distribution of ALPHA.
          White noise is sampled from a truncated Gaussian distribution
          with zero-mean, variance Q_D, and range (-R,+R).
        
 
        - 
          f_alpha_uniform.m, 
          generates a discrete colored noise vector of size N with power 
          spectrum distribution of ALPHA.
          White noise is sampled from a uniform distribution
          with range (-R,+R).
        
 
        - 
          freq_plotter.m, 
          performs a numerical test on the frequency distribution of
          discrete approximations to a continuous noise field.
        
 
      
    
    
    
      Last revised on 20 June 2024.