This repo implements that iterative amplitude adjusted Fourier transform method to generate time series surrogates (i.e randomised copies of a given time series) which preserve the power spectrum (and consequently the autocorrelation) of the original series. For a detailed discussion on the method, we refer to the paper by Venema, Ament & Simmer (2006) below.
-
Installation: The algorithm is implemented as a Python module with the idea that you can simply download
iaaft.py
in your project directory and import is a Python module withimport iaaft
. -
Prequisite Python packages
numpy
tqdm
(progress bar display)
-
Usage: Call
iaaft.surrogates()
with appropriate arguments. -
Example: The script
example.py
contains a simple example with an autoregressive time series of order 1 is given as in put and a total of 1000 IAAFT surrogates are generated (results shown in figure above). To run this script, it takes around 35 secs on a Intel® Core™ i9-9880H CPU @ 2.30GHz.
Venema, V., Ament, F. & Simmer, C. A stochastic iterative amplitude
adjusted Fourier Transform algorithm with improved accuracy (2006),
Nonlin. Proc. Geophys. 13, pp. 321--328
https://doi.org/10.5194/npg-13-321-2006
- First working implementation
- Optimize code for faster performance
- Documentation
- Example
- Improve README (installation, license, usage, etc.)
- Copyright © Bedartha Goswami.
If you find any issues simply open a bug report, or send an email to [email protected]