# Create a Poincare map

### Description

Create a map using the extrema of a scalar time series.

### Usage

1 | ```
poincareMap(x, extrema="min", denoise=FALSE)
``` |

### Arguments

`x` |
a vector holding a scalar time series. |

`denoise` |
a logical value. If |

`extrema` |
the type of extrema desired. May be "min" for
minima, "max" for maxima, or "all" for both maxima and minima. Default: |

### Details

This function finds the extrema of a scalar time series to form a
map. The time series is assumed to be a uniform sampling of
*s(t)*,
where *s(t)* is a (possibly noisy) measurement from a
deterministic
non-linear system. It is known that
*s'(t), s''(t), ...* are legitimate
coordinate vectors in the phase space. Hence the hyperplane given by
*s'(t)=0* may be used as a Poincare surface of
section. The
intersections with this plane are exactly the extrema of the time
series. The time series minima (or maxima) are the interesections in a
given direction and form a map that may be used to estimate
invariants, e.g., correlation dimension and Lyapunov exponents, of the
underlying non-linear system.

The algorithm used to create a Poincare map is as follows.

- 1
The first and second derivatives of the resulting series are approximated via the continuous wavelet transform (CWT) using the first derivative of a Gaussian as a mother wavelet filter (see references for details).

- 2
The locations of the local extrema are then estimated using the standard first and second derivative tests on the CWT coefficients at a single and appropriate scale (an appropriate scale is one that is large enough to smooth out noisy components but not so large as to the oversmooth the data).

- 3
The extrema locations are then fit with a quadratic interpolation scheme to estimate the amplitude of the extrema using the original time series.

### Value

a list where the first element (`location`

) is a vector containing the
temporal locations of the extrema values, with respect to
sample numbers *1,...N*, where *N* is the length of the original
time series. The second element (`amplitude`

) is a vector containing the extrema
amplitudes.

### References

Holger Kantz and Thomas Schreiber, *Nonlinear Time Series Analysis*,
Cambridge University Press, 1997.

### See Also

`embedSeries`

, `corrDim`

, `infoDim`

.

### Examples

1 2 3 4 5 6 7 8 9 10 | ```
## Using the third coordinate (\eqn{z} state) of a
## chaotic Lorenz system, form a discrete map
## using the series maxima. Embed the resulting
## extrema in a 2-dimensional delay embedding
## (with delay=1 for a map). The resulting plot
## reveals a tent map structure common to
## Poincare sections of chaotic flows.
z <- poincareMap(lorenz[,3], extrema="max")
z <- embedSeries(z$amplitude, tlag=1, dimension=2)
plot(z, pch=1, cex=1)
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.