Fractal Analysis Programs of the National Simulation Resource


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 1-dimensional 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 1-dimensional 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

  • Description: Generate a fractional (fractal) Gaussian process 1-dimensional series at evenly spaced intervals. This uses the Davies-Harte 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.

  • Description: Generate a fractional (fractal) Brownian noise or motion 1-dimensional 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.

  • Description: Generate a fractional (fractal) Brownian noise or motion 1-dimensional 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^(2H-2)] / (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 H-1, 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).

  • hurst54.79 KB

    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).

  • Description: Perform relative dispersion (fractal) and correlation analysis of 3-dimensional distributions of flow in the heart (or other solid organs)

    Notes: flowrect reads coordinates and flow values for voxels of a 3-dimensional organ, calculates the relative dispersion (RD) of flow for ever-larger 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.

  • 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.

  • 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.

  • 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.

  • 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 e-mail to: Gary Raymond


Bassingthwaighte JB and Raymond GM. Evaluating rescaled range analysis for time series. Ann. Biomed. Eng. 22:432-444, 1994.

Bassingthwaighte JB and Raymond GM. Evaluation of the dispersional analysis method for fractal time series. Ann. Biomed. Eng. 23:491-505, 1995.

Bassingthwaighte JB, Liebovitch LS and West BJ. Fractal Physiology. New York, London: Oxford University Press, 1994.

Caccia DC, Percival DB, Cannon MJ, Raymond G and Bassingthwaighte JB. Analyzing exact fractal time series: evaluating dispersional analysis and rescaled range methods. Physica A 246: 609-632, 1997.

Cannon MJ, Percival DB, Caccia DC, Raymond GM and Bassingthwaighte JB. Evaluating scaled windowed variance methods for estimating the Hurst coefficient of time series. Physica A 241: 606-626, 1997.

Davies RB, Harte DS. Tests for Hurst Effecti. Biometrika, (1987) 74, 95-101.

Kendziorski CM, Bassingthwaighte JB and Tonellato PJ. Evaluating maximum likelihood estimation methods to determine the Hurst coefficient. Physica A 273: 439-451, 1999.

Peitgen HO and Saupe D. The Science of Fractal Images. Tokyo, Springer, Springer: Springer Verlag, 1988.

Percival DB, Simulating Gaussian Random Processes with Specified Spectra. Computing Science and Statics, 24 (1992) pp. 534-538..

Raymond GM and Bassingthwaighte JB. Deriving dispersional and scaled windowed variance analyses using the correlation function of discrete fractional Gaussian noise. Physica A 265: 85-96, 1999.

Raymond GM, Percival DB and Bassingthwaighte JB. The spectra and periodograms of anti-correlated discrete fractional Gaussian noise. Physica A 2003 May 1: 322:169-179.

Schepers, H. E., J. H. G. M. van Beek, and J. B. Bassingthwaighte. Comparison of four methods to estimate the fractal dimension from self-affine signals. IEEE Eng. Med. Biol. 11:57-64x71, 1992.

Model development and archiving support at provided by the following grants: NIH U01HL122199 Analyzing the Cardiac Power Grid, 09/15/2015 - 05/31/2020, NIH/NIBIB BE08407 Software Integration, JSim and SBW 6/1/09-5/31/13; NIH/NHLBI T15 HL88516-01 Modeling for Heart, Lung and Blood: From Cell to Organ, 4/1/07-3/31/11; NSF BES-0506477 Adaptive Multi-Scale Model Simulation, 8/15/05-7/31/08; NIH/NHLBI R01 HL073598 Core 3: 3D Imaging and Computer Modeling of the Respiratory Tract, 9/1/04-8/31/09; as well as prior support from NIH/NCRR P41 RR01243 Simulation Resource in Circulatory Mass Transport and Exchange, 12/1/1980-11/30/01 and NIH/NIBIB R01 EB001973 JSim: A Simulation Analysis Platform, 3/1/02-2/28/07.