MATERNSPEC Fourier spectrum of the Matern random process and variations. [F,S]=MATERNSPEC(DT,N,SIGMA,ALPHA,LAMBDA) returns the spectrum S of a length N real-valued or 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. F is an array of one-sided (positive) Fourier frequencies for a time series of length N, F=FOURIER(N), where F is a *radian* frequency. The lengths of the output variables F and S are N/2+1 for even N, and (N+1)/2 for odd N. S is the postive or negative rotary spectrum given by S(F) = SIGMA^2 / (F^2+LAMBDA^2)^ALPHA * LAMBDA^(2*ALPHA-1) / C where C is a normalizing constant dependent upon ALPHA. Note that the positive and negative spectra are identical for this process. For LAMBDA=0, the Matern spectrum reduces to the spectrum of fractional Brownian motion. For details on the Matern process and its spectrum, 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. __________________________________________________________________ Matrix and cell array output [F,S]=MATERNSPEC(DT,N,SIGMA,ALPHA,LAMBDA) where N is a scalar while the other input arguments are all either scalars or arrays of the same length M, gives an output spectra S with LENGTH(F) rows and M columns. [F,S]=MATERNSPEC(DT,N,SIGMA,ALPHA,LAMBDA) where N is an array of M different lengths, returns F and S that are length M cell arrays. Then SIGMA, ALPHA, and LAMBDA may all either be scalars or length M arrays. This latter format is convenient for generating sets of spectra that do not all have the same size. When N is an array, MATERNSPEC(...,'parallel') parallelizes the computation of the various spectra using a PARFOR loop. This option requires that Matlab's Parallel Computing Toolbox be installed. The matrix and cell array formats also work for the variations of the Matern process described below. __________________________________________________________________ Oscillatory Matern [F,SPP,SNN]=MATERNSPEC(DT,N,SIGMA,ALPHA,LAMBDA,NU) with six input arguments modifies the spectrum to have a rotation frequency NU. This is accomplished by shifting the spectrum to be centered on F=NU rather than F=0. SPP and SNN are now the postive rotary and negative rotary spectra, with the spectrum for positive frequencies +F returned in SPP, and for negative frequencies -F in SNN. With ALPHA=1, the oscillatory Matern becomes the complex Ornstein- Uhlenbeck process. Note that NU has units of radians per sample interval DT. The oscillatory Matern is described in Lilly et al. (2017). __________________________________________________________________ Real-valued processes By default MATERSPEC returns the spectrum of a complex-valued process. MATERNSPEC(...,'real') instead returns the spectrum of a real-valued process. This also works with any of extended versions described above. In this case, the rotary spectra SPP and SNN be forced to be the same in models that return them. __________________________________________________________________ See also MATERNCOV, MATERNIMP, MATERNOISE, MATERNFIT, BLURSPEC. 'maternspec --f' generates some sample figures. Tests for MATERNSPEC can be found in MATERNCOV. Usage: [f,s]=maternspec(dt,N,sigma,alpha,lambda); [f,spp,snn]=maternspec(dt,N,sigma,alpha,lambda); [f,spp,snn]=maternspec(dt,N,sigma,alpha,lambda,nu); __________________________________________________________________ This is part of JLAB --- type 'help jlab' for more information (C) 2013--2021 J.M. Lilly --- type 'help jlab_license' for details