next up previous
Next: Annealed surrogates Up: The TISEAN implementation Previous: Measures of nonlinearity

Iterative FFT surrogates

The workhorse for the generation of surrogate data within the TISEAN package is the program surrogates. It implements the iterative Fourier based scheme introduced in Ref. [30] and discussed in Sec. 4.3. It has been extended to be able to handle multivariate data as discussed in Sec. 4.6. An FFT routine is used that can handle data sets of N points if N can be factorised using prime factors 2, 3, and 5 only. Routines that take arbitrary N will end up doing a slow Fourier transform if N is not factorisable with small factors. Occasionally, the length restriction results in the loss of a few points.

The routine starts with a random scramble as tex2html_wrap_inline2022, performs as many iterates as necessary to reach a fixed point and then prints out tex2html_wrap_inline2040 or tex2html_wrap_inline2042, as desired. Further, the number of iterations is shown and the residual root mean squared discrepancy between tex2html_wrap_inline2040 and tex2html_wrap_inline2042. The number of iterations can be limited by an option. In particular, i=0 gives the initial scramble as tex2html_wrap_inline2022 or a non-rescaled FFT surrogate as tex2html_wrap_inline2478. The first iterate, tex2html_wrap_inline2480, is approximately (but not quite) equivalent to an AAFT surrogate. It is advisable to evaluate the residual discrepancy whenever the algorithm took more than a few iterations. In cases of doubt if the accuracy is sufficient, it may be useful to plot the autocorrelation function (corr or autocor) of the data and tex2html_wrap_inline2040, and, in the multivariate case, the cross-correlation function (xcor) between the channels. The routine can generate up to 999 surrogates in one call.

End point effects

Since the periodicity artefact discussed in Sec. 4.5 can lead to spurious test results, we need to select a suitable sub-sequence of the data before making surrogates. For this purpose, TISEAN contains the program endtoend. Let tex2html_wrap_inline2484 be a sub-sequence of length tex2html_wrap_inline2486 and offset tex2html_wrap_inline2488. The program then computes the contribution of the end-to-end mismatch tex2html_wrap_inline2490 to the total power in the sub-sequence:
equation1100
as well as the contribution of the mismatch in the first derivative
equation1106
and the weighted average
equation1112
The weight w can be selected by the user and is set to 0.5 by default. For multivariate data with M channels, tex2html_wrap_inline2496 is used.

Now the program goes through a sequence of decreasing tex2html_wrap_inline2498, and for each tex2html_wrap_inline2486 determines tex2html_wrap_inline2502 such that tex2html_wrap_inline2504 is minimal. The values of tex2html_wrap_inline2486, tex2html_wrap_inline2502, and tex2html_wrap_inline2504 are printed whenever tex2html_wrap_inline2512 has decreased. One can thus easily find a sub-sequence that achieves negligible end point mismatch with the minimal loss of data.


next up previous
Next: Annealed surrogates Up: The TISEAN implementation Previous: Measures of nonlinearity

Thomas Schreiber
Mon Aug 30 17:31:48 CEST 1999