Fractal Analysis Programs of the National Simulation Resource
Introduction
Our long range purpose is to provide a set of analytical tools for fractal analysis. We currently have programs available for the generation of synthetic 1dimensional signals that are simple fractional Brownian noise, and analysis programs for determining the fractal dimension D (or the Hurst coefficient H, H = E + 1  D, where E is the Euclidean dimension) from a simple fractal time series, i.e. a 1dimensional signal. The analysis methods are described briefly by Schepers, van Beek, and Bassingthwaighte (1992) and in more detail by Bassingthwaighte, Liebovitch, and West (1994), which also reviews applications. Specific publications on the methods are listed with the programs.
A short description of the programs currently available for distribution is given below. Each package includes the source code for the product, its test program, and all subprograms upon which they depend. Also included are a README file with notes about the files, a manual page (plain text and UNIX troff source versions), a Makefile to create and run the test program, and the auxiliary files required by the test program.
These software packages can be transferred using anonymous ftp by clicking on the name of the package desired. Transferred files are compressed tar archives. (Some browsers will uncompress the file automatically). Extracting files from the archive will place the source files in a new subdirectory with the same name as the program.
(NOTE: Beyond NSR, Francesco Potortì has made available, under the Gnu Public License, some small Octave functions for measuring and generating the Hurst parameters of unidimensional fractional Brownian noise. These functions can be obtained via his Software Page.)
Available Programs (All programs in FORTRAN except flowrect which is written in C)
(Updated to compile and run on Linux OS unless noted, original code ran on Sun OS)Signal generating programs

fgp (Fractional Gaussian process)
Description: Generate a fractional (fractal) Gaussian process 1dimensional series at evenly spaced intervals. This uses the DaviesHarte algorithm (1987) with a modification by Percival (1992).
The fgp method has been implemented in JSim as FGP (model 0346).
Note: This is the recommended generating algorithm. It has the correct falloff in power spectral density and the correct autocorrelation function.

ssm (Spectral synthesis method)
Description: Generate a fractional (fractal) Brownian noise or motion 1dimensional series at evenly spaced intervals using the spectral synthesis method (Peitgen and Saupe, 1988).
Note: While the spectral synthesis method is a standard method that has been widely reported and used, it is not correct. It has the correct power spectral density but not the correct autocorrelation. The correlation between the first and seconds points is the same as between the first and last. If N data points are desired, the error is reduced by generating a signal of at least 2N, preferably 8N, and then taking a segment of length N out of the results. See Raymond and Bassingthwaighte (2003) on the topic of confusing the periodogram, a biased estimate of the spectrum, with the spectrum.

sra (Successive random addition method)
Description: Generate a fractional (fractal) Brownian noise or motion 1dimensional series at evenly spaced intervals using the successive random addition method (Peitgen and Saupe, 1988). Method: To make a fractional Brownian motion, fBm, a random displacement is added to the middle and ends of a straight line. The original line is replaced by the two lines connecting the new points. Each of the daughter lines is treated as in the first step but with displacements of lowered variance, depending on the parameter H:
Var_i = sigma^2 * [1  2^(2H2)] / (2^i)^(2H) ,
where sigma^2 is the variance in the first step and i is the iteration number. To turn this fBm into a fraction Brownian noise, fBn, simply take the differences between the successive points of the fBm.
Note: Like the SSM method, the successive random addition method is also inaccurate, but we have not yet well characterized its inadequacies. While it is a ``standard method,'' it is recommended that users employ fgp instead.
Signal analysis programs

Description: Perform dispersion analysis on a fractal time series.
Notes: The dispersion analysis program is designed for the analysing fractional Gaussian noise (fGn) and is not suitable for analyzing fractional Brownian motion (fBm) time series. (If the signal is a Brownian motion signal, the noise signal can be obtained by taking the differences between adjacent points and then doing the analysis.) Disp requires that the signal be at uniform intervals. Dispersion analysis is the recommended method for fGn time series analysis. The analysis proceeds as follows: A series of length N is divided into N/m bins of length m. The average is calculated for each bin. Then the standard deviatiom for the N/m bins is calculated. The logarithm of the standard deviation of bin size m plotted against the logarithm of the bin size is approximately a straight line with slope equal to the H1, where H is the Hurst coefficient. In simpler terms dispersion analysis calculates the standard deviation of the averages.
References: Schepers et al. (1992) Bassingthwaighte and Raymond (1995),Caccia et al. (1997), Raymond and Bassingthwaighte (1999).
The disp method has been implemented in JSim as DISP (model 0353).

Description: Perform Hurst rescaled range (R/S) analysis on a fractal time series.
Notes: The rescaled range analysis is included for historical perspective and in recognition of the marvelous insights of Harold Edwin Hurst into the analysis of natural time series. The method given in Bassingthwaighte and Raymond (1994) is, however, seriously flawed and gives biased results even if trend correction is used. The notes about disp related to analysis of noise vs. motion and uniform intervals also apply to hurst. Caccia et al. (1997) give a comparison of disp and hurst. Additional information is found in Schepers et al. (1992) and Kendziorski et al. (1999).

flowrect (Sun OS. This program and subroutines programmed in C.)
Description: Perform relative dispersion (fractal) and correlation analysis of 3dimensional distributions of flow in the heart (or other solid organs)
Notes: flowrect reads coordinates and flow values for voxels of a 3dimensional organ, calculates the relative dispersion (RD) of flow for everlarger groupings of adjacent voxels, and estimates the slope of the graph of log(RD) versus log(volume). For the same data, the correlation coefficient, r, for pairs of flows as a function of distance is also calculated.
Publication: NONE
Analysis Programs. See Cannon et al. (1997) for details for swv, bdswv and ldswv.

swv (Scaled Windowed Variance)
Description: Estimate the Hurst coefficient of a fractional Brownian motion time series using scaled windowed variance analysis. The swv analysis consists of dividing an fBm time series of length N into N/m bins of length m. The standard deviation is calculated for each individual bin. Then the average of the standard deviation of the N/m bins is calculated. The logarithms of the averaged standard deviations as a function of the logarithms of the bin sizes is approximately a straight line with slope equal to the Hurst coefficient. In simpler terms, swv calculates the average of the standard deviations.

bdswv (Bridge detrended scaled windowed variance)
Description: Estimate the Hurst coefficient of a time series using bridge detrended scaled windowed variance analysis. Before calculating the swv analysis, the line connecting the first and last poins of a given bin is subtracted. The endpoints of each bin become zero.

ldswv (Linear detrended scaled windowed variance)
Description: Estimate the Hurst coefficient of a time series using linearly detrended scaled windowed variance analysis. Before calculating the swv analysis, the trend line in the bin is calculated and subtracted.

acf (Autocorrelation function)
Description: This is a standard calculation of the autocorrelation function (ACF). The Hurst coefficient is calculated from the estimated value of the ACF by fitting it with the expected value of the fractional ACF weighting the points with the inverse of the lag number. See Schepers et al. (1992).
Problems and Questions
To report any problems or obtain further information, send email to: Gary Raymond
References
Bassingthwaighte JB, Liebovitch LS and West BJ. Fractal Physiology. New York, London: Oxford University Press, 1994.
Davies RB, Harte DS. Tests for Hurst Effecti. Biometrika, (1987) 74, 95101.
Peitgen HO and Saupe D. The Science of Fractal Images. Tokyo, Springer, Springer: Springer Verlag, 1988.
Last modified 16Apr13, 12:31 pm.
Model development and archiving support at physiome.org provided by the following grants: NIH/NIBIB BE08407 Software Integration, JSim and SBW 6/1/095/31/13; NIH/NHLBI T15 HL8851601 Modeling for Heart, Lung and Blood: From Cell to Organ, 4/1/073/31/11; NSF BES0506477 Adaptive MultiScale Model Simulation, 8/15/057/31/08; NIH/NHLBI R01 HL073598 Core 3: 3D Imaging and Computer Modeling of the Respiratory Tract, 9/1/048/31/09; as well as prior support from NIH/NCRR P41 RR01243 Simulation Resource in Circulatory Mass Transport and Exchange, 12/1/198011/30/01 and NIH/NIBIB R01 EB001973 JSim: A Simulation Analysis Platform, 3/1/022/28/07.