MATERNCOV is the jMatern module of jLab.

``` MATERNCOV  Autocovariance of the Matern random process and variations.

[TAU,R]=MATERNCOV(DT,N,SIGMA,ALPHA,LAMBDA) returns the autocovariance
function R of a length N complex-valued Matern random process 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.

TAU is an array of time lags at which R is computed, and is given by
TAU=DT*[0,1,...,N-1].

By definition, R is one-sided theoretical autocovariance at
non-negative time lags.  See below for the relationship between this
and the full, length (2N-1) theoretical autocovariance function.

Note that for LAMBDA=0, the case of fractional Brownian motion, R will
contain only INFs because the autocovariance function is unbounded.

The input parameters SIGMA, ALPHA, and LAMBDA, may all either be
scalars or arrays of the same length M.  If the latter, then the output
autocovariance function R will be a matrix with N rows and M columns.

[TAU,R]=MATERNCOV(DT,N,SIGMA,ALPHA,LAMBDA,NU,MU) returns the
autocovariance function of various extensions of the Matern process.
MATERNOISE(...,'composite') also works.  See MATERNSPEC for details.

See MATERNSPEC for a more thorough discussion of the Matern process.

For details on the Matern process and its autocovariance function, 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.
__________________________________________________________________

Relationship to full autocovariance

For a time series of length N, the full autocovariance function RF is
length 2N-1, defined at time lags -N+1,-N+2...,-1,0,1,...,N-2,N-1.

The one-sided autocovariance R contains the full autocovariance RF at
positive time lags. Negative lags are given by Hermitian symmetry.

[TAUF,RF]=MATERNCOV(...,'full') returns the full (two-sided)
autocovariance RF and the corresponding two-sided time array TAUF.

RF is constructed from R as RF=[FLIPUD(CONJ(R(2:end,:));R].
__________________________________________________________________

Composite Matern

[TAU,R]=MATERNCOV(DT,N,SIGMA,ALPHA,LAMBDA,NU,MU,'composite'), returns
the autocovariance of the composite Matern process.  See MATERNSPEC for
more details.

This autocovariance does not have an analytic form, but is approximated
to high precision by inverse Fourier transforming the spectrum with
10 x oversampling over a 10 x longer time period, and then decimating.

MATERNCOV(...,'composite',M,P) specifies the numerical oversampling
parameters used in the numerical calculation.  The spectrum is computed
over a time window of M times the duration required, and P times the
required sampling density, for a total of M*P time more points.  These
flags may set to optimize the tradeoff between speed and accuracy.
The default behavior corresponds to M=10 and P=10.

This computation method is expected to minimize aliasing effects and
resolution errors.
__________________________________________________________________