ANATRANS is the jSpectral module of jLab.

``` ANATRANS  Analytic part of signal.

XP=ANATRANS(X) returns the analytic part of the real-valued signal X,
which is a column vector or a matrix with 'time' in columns.

XP is defined for real X such that X = REAL(XP) = 1/2*(XP+CONJ(XP)).

ANATRANS removes the mean of the signal.  It does not detrend, so if
your time series has a linear trend you may wish to call DETREND first.

[XP1,XP2,...,XPM]=ANATRANS(X1,X2,...,XM) also works for multiple input
arguments.

ANATRANS(X,DIM) optionally applies the analytic transform along
dimension DIM, instead of along the first dimension.
___________________________________________________________________

Complex-valued signals

[ZP,ZN]=ANATRANS(Z,CONJ(Z)) returns the analytic part ZP of the
complex-valued signal Z, and the analytic part ZN of its conjugate.

The normalization for complex-valued signals differs from that for
real valued signals.  ZP and ZN are defined such that Z=ZP+CONJ(ZN).

The analytic part of a real-valued signal and that of a complex-valued
signal are thus defined differently by a factor of two, following the
convention of Lilly and Gascard (2006) and Lilly and Olhede (2010).

Note that the equality Z=ZP+CONJ(ZN) is not necessarily exact, due to
issues relating to boundary effects from the time series edges.
___________________________________________________________________

Boundary conditions

ANATRANS(...,STR), where STR is a string, optionally specifies the
boundary condition to be imposed at the edges of the time series.
Valid options for STR are

STR = 'periodic' for periodic boundary conditions
STR = 'zeros' for zero-padding beyond the endpoints
STR = 'mirror' for reflecting the time series at both ends

The default value of STR is 'mirror', as this tends to minimize the
`edge effects' that occur near the ends of the time series.
___________________________________________________________________

Returning frequency domain version

ANATRANS(...,'frequency') suppresses a final inverse Fourier transform,
so that output fields will be analytic signals in the frequency domain.
This is mainly useful for calculation of frequency-domain moments, as
in FREQMOM, for large datasets where optimization is a priority.

The 'frequency' flag implies a 'periodic' boundary condition, so a
separate boundary condition flag cannot be used in this case.
___________________________________________________________________

'anatrans --t' runs some tests.

Usage: z=anatrans(x);
z=anatrans(x,dim);
z=anatrans(x,dim,'periodic');
[zp,zn]=anatrans(z,conj(z));
__________________________________________________________________
This is part of JLAB --- type 'help jlab' for more information
(C) 2004--2019 J.M. Lilly --- type 'help jlab_license' for details
```