This file describes the program "nvc", which stands for "Noise vs. Chaos." It implements a statistical test designed to distinguish a time series produced by a low-dimensional chaotic process from one produced by noise, possibly with a non-white power spectrum. The method is described in the paper: Matthew Kennel and Steven Isabelle, "Method to distinguish possible chaos from colored noise and determine embedding parameters", to be published in Physical Review A, September 15, 1992. The text of the paper can be downloaded from the anonymous FTP archive on lyapunov.ucsd.edu. I strongly suggest you read the paper before trying to use this program, otherwise you'll have no idea what's going on. The program takes on input a scalar data set, and on output the computed "Z statistic" that compares the nonlinear predictability in reconstructed phase space of the input data set, as compared to matched noise signals. It computes the statistic for a range of embedding dimensions and time delays. The program itself is written in 1/2 Pascal 1/2 Modula-2 1/2 Something else. I translated it to C using the freely available 'p2c' program. I provide the C files so that you should be able to compile it without p2c. Command line parameters: (all required) nvc -N number-of-points, must be a power of two. This is the total number of points to read from the time series. -delay tmin tmax dt The range of time delays (from "tmin" to "tmax" in steps of "dt") -pred prediction_time This is the time ahead to compute the predictions. Typical values are on the order of the time delay or less. -dim dmin dmax The range of embedding dimensions to loop over. -correl decorrelation_time Don't accept as "neighbors" points whose time indexes are less than this number. This number should be the approximate autocorrelation time of the original data set. -nfake number_of_fake_datasets For computing the statistic, this should be the number of fake data sets to synthesize. A higher number here results in more statistical power, but longer running time. -decimate decimation_interval The interval over which the prediction errors are considered to be "statistically independent". I usually take the autocorrelation time of the predictor errors. There's no obviously correct value for this, but is typically significantly lower than the autocorrelation time of the data set itself. See the paper text. -o outputfile Write the results of the computation to this file. The output lines look like: "time_delay Z-value(d=dmin) Z(d=dmin+1) ... Z(d=dmax)" -A ascii_datafile -B double-precision binary datafile These specify the name of the datafile of the time series in question. There should be no formatting here, only numbers. Optional parameters: -phasesonly Only randomize the phases in creating the fake data sets. Try this if you're getting many failures of the K-S test in creating the fake data sets. I haven't fully explored the consequences of this. (not in paper). -dumpdata Dump out, in an two-column ascii file named "DUMPDATA.dat" the gaussianized input data, and the synthesized data. (real is in first column, fake is in second) Do this if you want to see exactly what's going on. -dumperrs Dump out the predictor errors in an ascii file name "DUMPERRS.dat". Note that these have NOT had their absolute value taken yet, which I do before computing the mann-whitney-wilcoxon statistic. Again, for debugging purposes. good luck, Matt Kennel mbk@inls1.ucsd.edu 8/15/92