MATERNOISE Realizations of the Matern process and variations, including fBm. [with A. Sykulski] Z=MATERNOISE(DT,N,SIGMA,ALPHA,LAMBDA) simulates a length N complex- valued Matern random process Z having variance SIGMA^2, slope parameter ALPHA, and damping parameter LAMBDA. DT is the sample interval. Note that LAMBDA is understood to have the same units as the inverse sample interval 1/DT. For values of LAMBDA greater than about 1/DT, the process becomes essentially white noise. Thus typical values will have LAMBDA<(1/DT). Z=MATERNOISE(DT,[N,M],SIGMA,ALPHA,LAMBDA) generate M realizations of this process, so that Z is of size N x M. See MATERNSPEC for details on the input arguments. Note that the process Z is explicitly set to have zero temporal mean. For details, including the fast generation method described below, see: Lilly, Sykulski, Early, and Olhede, (2017). Fractional Brownian motion, the Matern process, and stochastic modeling of turbulent dispersion. Nonlinear Processes in Geophysics, 24: 481--514. __________________________________________________________________ Special cases Z=MATERNOISE(DT,N,A,ALPHA,0) generates realizations of fractional Brownian motion. In this case, the third input argument is the spectral amplitude A, not the standard deviation SIGMA. Z=MATERNOISE(DT,N,SIGMA,ALPHA,LAMBDA,NU,MU) simulates extensions of the Matern process. MATERNOISE(...,'composite') also works. See MATERNSPEC for details on these options. __________________________________________________________________ Multiple parameter values The input arguments SIGMA, ALPHA, etc. may all be either scalars, or arrays of the same length, say K. Z=MATERNOISE(DT,N,SIGMA,ALPHA,...), with at least one of SIGMA, ALPHA, etc. being an array of length K, returns a matrix Z that is N x K. Z=MATERNOISE(DT,[N M],SIGMA,ALPHA,...) then gives Z of size N x M x K. __________________________________________________________________ Algorithm MATERNOISE uses a Cholesky matrix decomposition method which makes the autocovariance matrix of the generated process Z have exactly the form of a sampled Matern autocovariance function, for nonzero LAMBDA, or of fractional Brownian motion for LAMBDA=0. Note that since the Cholesky decomposition requires O(N^3) operations, generating very long time series (>2000 points or so) may be slow. __________________________________________________________________ Fast algorithm MATERNOISE(...,'fast') uses a fast approximate generation algorithm described in Lilly et al. (2017). This method works by making use of the known analytic form for the Matern impulse response function. In the fast algorithm, oversampling is used to ensure that the structure of the Green's function is accurately resolved. [Z,ERR]=MATERNOISE(...,'fast') also returns the fractinal error ERR involved in the fast algorithm's approximation of the autocovariance sequence. This is the total squared error between the actual and approximated autocovariance sequences, divided by the summed squared magnitude of the actual autocovariance sequence. Note that this is for testing purposes only, as it substantially slows down the algorithm. __________________________________________________________________ See also MATERNSPEC, MATERNCOV, MATERNIMP, MATERNFIT. 'maternoise --t' runs some tests. 'maternoise --f' generates a sample figure. Usage: z=maternoise(dt,N,sigma,alpha,lambda); z=maternoise(dt,N,sigma,alpha,lambda,'fast'); [z,err]=maternoise(dt,N,sigma,alpha,lambda,'fast'); z=maternoise(dt,[N,M],sigma,alpha,lambda,nu,mu); z=maternoise(dt,N,A,alpha,0); __________________________________________________________________ This is part of JLAB --- type 'help jlab' for more information (C) 2013--2017 A.M. Sykulski and J.M. Lilly --- type 'help jlab_license' for details