Giter Site home page Giter Site logo

qwbecust / recurrence_cpp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bmfreis/recurrence_cpp

0.0 0.0 0.0 70 KB

Scientific software written in C++ for the creation of Recurrence Plot (RP), Cross Recurrence Plot (CRP), and Joint Recurrence Plot (JRP). It also allows the quantification analysis of RP.

C++ 100.00%

recurrence_cpp's Introduction

recurrence_cpp

This scientific software written in C++ computes Recurrence Plot (RP), Cross Recurrence Plot (CRP), Joint Recurrence Plot (JRP) and Recurrence Quantification Analysis on commandline of Linux systems.

Recurrence Plot

*Recurrence Plot (RP) * is a visualisation of a square matrix, in which the matrix elements correspond to those times at which a state of a dynamical system recurs. The RP reveals all the times when the phase space trajectory of the dynamical system visits roughly the same area in the phase space. [1,3]

The class RecurrencePlot computes:

  • State space trajectory reconstruction from single time-series by time-delay embedding
  • Distance matrix (using Manhattan, Euclidian or Supremum distance)
  • Recurrence matrix

Cross Recurrence Plot

Cross Recurrence Plot (CRP) is a graph which shows all those times at which a state in one dynamical system occurs simultaneously in a second dynamical system. With other words, the CRP reveals all the times when the phase space trajectory of the first system visits roughly the same area in the phase space where the phase space trajectory of the second system is. [3]

The class CrossRecurrencePlot computes:

  • State space trajectory reconstruction from single time-series by time-delay embedding
  • Cross distance matrix (using Manhattan, Euclidian or Supremum distance)
  • Cross recurrence matrix

Joint Recurrence Plot

Joint Recurrence Plot (JRP) is a graph which shows all those times at which a recurrence in one dynamical system occurs simultaneously with a recurrence in a second dynamical system. [3]

The class JointRecurrencePlot computes:

  • State space trajectory reconstruction from single time-series by time-delay embedding
  • Distance matrix (using Manhattan, Euclidian or Supremum distance)
  • Recurrence matrix
  • Joint recurrence matrix

Recurrence Quantification Analysis

Recurrence Quantification Analysis (RQA) is a method which quantifies the number and duration of recurrences of a dynamical system presented by its state space trajectory. [2,3,4,5]

The class RecurrenceQuantificationAnalysis computes:

  • Diagonal frequency distribution - P(l)
  • Vertical frequency distribution - P(v)
  • White vertical frequency distribution - P(w)
  • Recurrence rate - RR
  • Determinism - DET
  • Average diagonal line length - L
  • Longest diagonal line length - Lmax
  • Divergence - DIV
  • Entropy diagonal lines - Lentr
  • Laminarity - LAM
  • Average vertical line length - V
  • Longest vertical line length - Vmax
  • Entropy vertical lines - Ventr
  • Average white vertical line length - W
  • Longest white vertical line length - Wmax
  • Entropy white vertical lines - Wentr
  • Ratio determinism recurrence rate - DET/RR
  • Ratio laminarity determinism - LAM/DET

Remarks

Tested on

  • Ubuntu: 18.04, 20.04
  • g++: 7.5.0, 9.3.0

References

1 J.-P. Eckmann, S. Oliffson Kamphorst, D. Ruelle: Recurrence Plots of Dynamical Systems, Europhysics Letters, 4(9), 973–977p. (1987)

2 N. Marwan, N. Wessel, U. Meyerfeldt, A. Schirdewan, J. Kurths: Recurrence Plot Based Measures of Complexity and its Application to Heart Rate Variability Data, Physical Review E, 66(2), 026702p. (2002)

3 N. Marwan, M. C. Romano, M. Thiel, J. Kurths: Recurrence Plots for the Analysis of Complex Systems, Physics Reports, 438(5-6), 237-329p. (2007)

4 C. L. Webber, Jr., J. P. Zbilut: Dynamical assessment of physiological systems and states using recurrence plot strategies, Journal of Applied Physiology, 76(2), 965-973p. (1994)

5 J. P. Zbilut, C. L. Webber, Jr.: Embeddings and delays as derived from quantification of recurrence plots, Physics Letters A, 171(3–4), 199–203p. (1992)

recurrence_cpp's People

Contributors

bmfreis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.