Matlab Software Archive

This archive contains some of the programs that were developed in the nonlinear dynamics laboratory and can have wider applicability to nonlinear time series analysis. This software is provided as-is under GNU general public license. If used in research, please include the appropriate reference to this page or the appropriate papers.

general purpose programs

fast nearest neighbors search

Our false nearest neighbors routines (false_neighbors_kdplot_false_neighbors) are based on k-d tree, which is now implemented in Matlab’s statistical toolbox as a KDTreesearcher.

Here we provide the routines that you can use if you do not have this toolbox:

kd_partition.m — partitions multivariate data into a kd-tree.

kd_search.m — search the kd-tree created by kd_partition.m.

nonlinear time series analysis

These are some of the programs that are of general use in nonlinear time series analysis:

ami.m — estimates average mutual information for time series (usually used to estimate delay time for delay coordinate embedding).

false_neighbors.m — old false nearest neighbors search for estimating smallest sufficient embedding dimension for delay coordinate embedding. uses my old kd_search code.

false_neighbors_kd.m — new, faster false nearest neighbors code that has much more options. it computes the statistics needed in the analysis including surrogates based data. it will also need:
plot_false_neighbors.m — will process the output and plot the results. for all the details please refer to this page.

false_strands_kd.m — (updated 08/11/2016) a generalization to false nearest neighbors, which is supposed to be robust to noise. it will also need:
plot_false_strands.m — will process the output and plot the results. for all the details please refer to this page.

c2.m — correlation sum estimation for finding correlation dimension from a scalar time series.

c2direct.m — correlation sum estimation for finding correlation dimension from a vector-valued time series in a phase space.

lyapunov.m — used to estimate short-time largest Lyapunov exponent from a scalar time series.

podfilter.m — projective nonlinear noise reduction for scalar time series. works for both continuously sampled and map-like data.

sodfiltering.m — smooth projective noise reduction for continuously sampled time series, considerably outperforms podfilter.m, but does not work for map-like data.

specialized programs

phase space warping

These are programs for calculating PSW-based metrics and feature vectors:

pswtm.m — phase space warping tracking metric estimation.

psw_cont.m — phase space warping feature vector estimation.

protocol.m — sample protocol, just for an example. would need this too reconst_ps.

There are also some specialized partitioning and searching programs that we use in phase space warping applications:

kb_box_part.m — partition data space into a set number of boxes.

kd_box_search.m — find which box a query point belongs to.

smooth orthogonal decomposition

gensod.m — this is a generalization of smooth orthogonal decomposition (sod). the main features of the program are described in the associated help section. while it can do standard sod which requires multivariate time series that embed some smooth manifold, it can also work with randomly sampled multivariate data embedding some smooth manifold. may be used for “manifold learning” or “nonlinear dimensionality reduction.”