Wavelet Viewer

The Wavelet Viewer is accessible from the Visualize menu or button, and can also be started from the IDL> command prompt using the WV_CW_WAVELET function:

wId = WV_CW_WAVELET() 

For more information, see WV_CW_WAVELET.

The Wavelet Viewer consists of a graph of the currently-selected wavelet function, a selection area for the wavelet function, and an information area, shown in the following figure:

Figure 2-2: The Wavelet Viewer.

waveuse2.gif

Wavelet and Scaling Functions

The wavelet consists of two components, the scaling function which describes the low-pass filter for the wavelet transform, and the wavelet function which describes the band-pass filter for the transform.

Changing Wavelets

The droplist contains the names of all currently-available wavelets. The Family refers to the overall properties of the wavelet, while the Order determines the particular wavelet within each family.

Wavelet Information

After you select a wavelet family and order, the following information will be displayed:

Discrete/Continuous

Discrete wavelet functions are used with the discrete wavelet transform, which provides the most compact representation of the data. The discrete transform is very fast and is best suited for image processing, filtering, and large arrays.

Continuous wavelet functions are used to approximate the continuous wavelet transform, which provides a highly-redundant transformation of the data. The continuous wavelet transform is much smoother than the discrete transform and is better suited for time-series analysis on small arrays (less than 20000 data points).

Orthogonal/Nonorthogonal

Orthogonal wavelet functions will have no overlap with each other (zero correlation) when computing the wavelet transform, while nonorthogonal wavelets will have some overlap (nonzero correlation). Using an orthogonal wavelet, you can transform to wavelet space and back with no loss of information.

Nonorthogonal wavelet functions tend to artificially add in energy (due to the overlap) and require renormalization to conserve the information.

In general, discrete wavelets are orthogonal while continuous wavelets are nonorthogonal.

Symmetry

This flag describes the symmetry of the wavelet function about the midpoint. Symmetric wavelets show no preferred direction in "time," while asymmetric wavelets give unequal weighting to different directions.

Compact Support

This value measures the effective width of the wavelet function. A narrow wavelet function such as the Daubechies order 2 (compact support=3) is fast to compute, but the narrowness in "time" implies a very large width in "frequency." Conversely, wavelets with large compact support such as the Daubechies order 24 (compact support=47) are smoother, have finer frequency resolution and are usually more efficient at denoising.

Vanishing Moments

An important property of a wavelet function is the number of vanishing moments, which describes the effect of the wavelet on various signals. A wavelet such as the Daubechies 2 with vanishing moment=2 has zero mean and zero linear trend. When the Daubechies 2 wavelet is used to transform a data series, both the mean and any linear trend are filtered out of the series. A higher vanishing moment implies that more moments (quadratic, cubic, etc.) will be removed from the signal.

Regularity

The regularity gives an approximate measure of the number of continuous derivatives that the wavelet function possesses. The regularity therefore gives a measure of the smoothness of the wavelet function with higher regularity implying a smoother wavelet.

e-Folding Time (Continuous Wavelets Only)

The e-folding time is a measure of the wavelet width, relative to the wavelet scale s. Using the wavelet transform of a spike, the e-folding time is defined as the distance at which the wavelet power falls to 1/e^2, where e = 2.71828. Larger e-folding time implies more spreading of the wavelet power.

User-Defined Wavelets

You can easily extend the IDL Wavelet Toolkit by adding more wavelet functions. These wavelet functions should follow the same calling mechanism as the built-in wavelet functions such as WV_FN_DAUBECHIES. In addition, your wavelet function should begin with the prefix 'wv_fn_'.

  1. Let's say you would like to add a wavelet function called "Spline" giving the Daubechies "Spline" wavelets. To do this, first create a wavelet function to return the wavelet coefficients and the information structure:
  2. FUNCTION wv_fn_spline, Order, Scaling, Wavelet, Ioff, Joff 
    ; compute coefficients here... 
       ... 
    ; find support, moments, and regularity 
       ... 
      info = {family:'Spline', $ 
        order_name:'Order', $ 
        order_range:[1,5,1], $ 
        order:order, $ 
        discrete:1, $ 
        orthogonal:1, $ 
        symmetric:0, $ 
        support:support, $ 
        moments:moments, $ 
        regularity:regularity} 
      RETURN, info 
    END 
    
  3. Save this function in a file 'wv_fn_spline.pro' that is accessible from your current IDL path.
  4. Now start the Wavelet Toolkit with your new wavelet function:
  5.      WV_APPLET, WAVELETS='Spline' 
     

    Or, if you are already running the Wavelet Toolkit:

         WV_IMPORT_WAVELET, 'Spline'

Your new wavelet function should appear in the list of current wavelet functions, and should be accessible from any of the wavelet tools.