"S+Wavelets" is the name of a computer program that implements a suite of mathematical "tools" for wavelet analysis of signals (including two-dimensional signals that represent images.) Wavelets, being localized in both time and frequency (or space and wave number), serve as means for transforming and extracting information from signals that have temporally or spatially varying properties. In a sense, wavelet methods combine the best features of time and frequency methods (e.g., Fourier-transform methods). Modern wavelet research began in the mid-1980s, but until now, there has been no commercially available, general-purpose software to support rapid prototyping for research on, and application of, wavelets. S+Wavelets satisfies the need for such a computer code.
S+Wavelets provides a variety of transform objects for one- and two-dimensional sets of data, including the following:
- The discrete wavelet transform with orthogonal and biorthogonal wavelets;
- Multiresolution analysis and decompositions;
- Wavelet-packet and cosine-packet transforms with best-basis selection;
- Matching pursuits decompositions;
- Robust and outlier-resistant wavelet transforms;
- Translation-invariant (nondecimated) wavelet transforms;
- Decompositions of signals into atomic waveforms; and
- Estimates of signals through wavelet shrinkage
S+Wavelets is available as part of a software system called "S-PLUS." S+Wavelets supports such basic S-PLUS functions as print, plot, and summary, specializing these features and functions for wavelet objects. Other basic S-PLUS generic functions supported in S+Wavelets include subscript and assignment operators, arithmetic and logical operators, mathematical functions, and a suite of "tools" that assist in visualization of data. The visualization tools include autocorrelation-function plots, box plots, bar plots, dot charts, histograms, and quantile-quantile plots. All of these functions are specialized for wavelet objects; for example, in the case of a discrete wavelet transform, side-by-side box plots would depict wavelet coefficients grouped by resolution levels.
S+Wavelets introduces several new functions that are especially useful for wavelet analysis. These include provisions for displaying a palate of "interesting" views, time-scale and time-vs.-frequency plots, transfer-function plots, evaluation of Fourier transforms of wavelets, plots of energy-concentration efficiencies of waveforms, and plots for visualizing the type of transform basis selected for analysis.
S+Wavelets offers the following other capabilities and features that are important for wavelet analysis:
- Perfect Reconstruction — All transform objects can be inverted to recover original signals to within round-off errors.
- Dual Implementation in S-PLUS and C — Most of the algorithms in S+Wavelets are implemented in both the S-PLUS and C languages for flexibility and efficiency. The S-PLUS versions are used to make modifications and extensions, while the C versions are ordinarily used to perform computations.
- Ability to Create New Wavelet Filters — Users can create their own wavelets and wavelet filters for use in addition to, or in place of, built-in wavelets and filters.
- Support for Arbitrarily Sized Signals — Most transforms can be applied to a signal or image of any size, and are not restricted to sample sizes divisible by integer powers of 2.
- Variety of Boundary Conditions — Boundary-treatment rules and boundary conditions accommodated in S+Wavelets include periodic, reflection, zero, polynomial extension, and internal wavelets.
- Wavelet Matrix Filter Operations — Matrix filter operations can be created for wavelet transforms. This is useful for education and research.
This work was done by Andrew Bruce and Hong-Ye Gao of MathSoft, Inc., for Stennis Space Center.
In accordance with Public Law 96-517, the contractor has elected to retain title to this invention. Inquiries concerning rights for its commercial use should be addressed to
STATSCI Division MathSoft
1700 Westlake Ave. North, Suite 500
Seattle, WA 98109
Refer to SSC-00076, volume and number of this NASA Tech Briefs issue, and the page number.