Surrogate methods
Iterated amplitude-adjusted Fourier transform (iAAFT) surrogates
#
TimeseriesSurrogates.iaaft
— Function.
iaaft(a::AbstractArray{Number, 2}; cols = 1:size(d, 2))
Iterated amplitude-adjusted Fourier transform (IAAFT) surrogate of an array, where each column is a scalar-valued time series. cols
controls which variables of the embedding are shuffled.
iaaft(E::Embeddings.AbstractEmbedding; cols = 1:size(E.points, 1))
Column-wise iterated amplitude-adjusted Fourier transform (IAAFT) surrogate of an embedding. cols
controls which variables of the embedding are shuffled.
iaaft(d::DynamicalSystemsBase.Dataset; cols = 1:size(d, 2))
Iterated amplitude-adjusted Fourier transform (IAAFT) surrogate of a Dataset. cols
controls which variables of the embedding are shuffled.
Examples
Example 1
npts = 200
ts = sin.(diff(rand(npts + 1)))*0.5 .+ cos.(LinRange(0, 14*pi, npts))
p1 = plot(ts, label = "ts", lc = :black)
p2 = plot(iaaft(ts), label = "iaaft(ts)", xlabel = "Time step")
plot(p1, p2, layout = (2, 1))
ylabel!("Value");
Example 2
This gif shows iAAFT surrogate realizations for an cyclostationary AR2 (NSAR2) process (nsar2
) from [1].
Example 3
This gif shows iAAFT surrogate realizations for an AR1 process.
References
- Lucio et al., Phys. Rev. E 85, 056202 (2012), after J. Timmer, Phys. Rev. E 58, 5153 (1998). https://journals.aps.org/pre/abstract/10.1103/PhysRevE.85.056202