Wavelet Toolbox Release Notes


New Features, Bug Fixes, Compatibility Considerations

Maximal Overlap Discrete Wavelet Packet Transform: Perform nondecimated wavelet packet analysis on arbitrary-length signals

This release adds support for the maximal overlap discrete wavelet packet transform (MODWPT) for 1-D signals. You can decompose signals using modwpt and invert the transform using imodwpt. Also, you can obtain MODWPT details using modwptdetails. For an example of using wavelet packets, see Wavelet Packets: Decomposing the Details.

​Wavelet Synchrosqueezing: Sharpen time-frequency estimates and extract signal modes

This release adds support for the wavelet synchrosqueezed transform and mode extraction for 1-D signals. Wavelet synchrosqueezing is a time-frequency reassignment technique that enables you to reconstruct the signal from the reassigned transform. This technique enables you to extract and visualize oscillatory modes in the signal. To obtain the synchrosqueezed transform of a signal, use wsst. To invert the transform, use iwsst. You can determine or extract time-frequency ridges in the synchrosqueezed transform with wsstridge. For an example of synchrosqueezing, see Time-Frequency Reassignment and Mode Extraction with Synchrosqueezing.

Wavelet Coherence: Compare time-varying frequency content between signals

This release adds the wcoherence function, which computes the magnitude-squared wavelet coherence of two input signals. The wcoherence function also computes the wavelet cross spectrum. Wavelet coherence is useful for detecting common time-localized oscillations in nonstationary, bivariate signals. wcoherence also provides visualizations that show the magnitude-squared coherence, cross-spectrum phase, and the cone of influence. The phase plot is helpful in determining the lead-lag relationships between the signals. The cone of influence demonstrates where edge effects become significant. For an example of using wcoherence, see Compare Time-Frequency Content in Signals with Wavelet Coherence.

Compatibility Considerations

wcoher is not recommended. Update code that uses wcoher to use wcoherence instead.

​Fejer-Korovkin filter with 18 coefficients

This release adds support for Fejer-Korovkin (fejerkorovkin) scaling and wavelet filters with 18 coefficients. The valid short name is 'fk18'.

Maximum derivative output of gauswavf and cgauwavf

As of R2016a, the highest order derivative supported for the Gaussian (gauswavf) and complex Gaussian wavelet (cgauwavf) is 8.

Compatibility Considerations

Specifying a derivative order greater than 8 produces an error. In code that uses gauswavf or cgauwavf, update these functions to use a derivative value from 1 to 8. The requirement to have Symbolic Math Toolbox™ has been removed.

Functionality being removed or changed

FunctionalityWhat Happens When You Use This Functionality?Use This InsteadCompatibility Considerations
wcoherStill runswcoherence

Replace all instances of wcoher with wcoherence.

gauswavf and cgauwavfErrors when the order of the derivative is greater than 8 

Update instances of gauswavf and cgauwavf to use a maximum derivative value of 8.


New Features, Bug Fixes

​Maximal Overlap Discrete Wavelet Transform: Perform nondecimated analysis on arbitrary-length signals and obtain multiscale variance and correlation​​ estimates

This release adds support for the maximal overlap discrete wavelet transform (MODWT) for 1-D signals. You can decompose signals using modwt and invert the transform using imodwt. Additionally, you can obtain a MODWT-based multiresolution analysis using modwtmra. You can also obtain wavelet variance, correlation, and cross-correlation sequence estimates with confidence intervals using modwtvar, modwtcorr, and modwtxcorr.

Frequency-Localized Wavelets: Perform more frequency-localized discrete and continuous wavelet analysis

This release adds new frequency-localized wavelets for continuous and discrete wavelet analysis. The bump wavelet is a frequency-localized wavelet with an adjustable center frequency and bandwidth.

You can use the bump wavelet with cwtft. For discrete decimated and nondecimated wavelet or wavelet packet analysis, use the new Fejer-Korovkin family of frequency-localized orthogonal wavelets. To obtain information on the Fejer-Korovkin wavelets, enter waveinfo('fk') at the MATLAB® command prompt. To obtain the Fejer-Korovkin filters, use wfilters or fejerkorovkin. You can specify the Fejer-Korovkin filters in all discrete wavelet and wavelet packet command line and interactive applications using the short name, 'fk' with a valid filter number. For example, wavedec(data,N,'fk8') or modwt(data,'fk8').

Time-Frequency Analysis: Convert scale to frequency to interpret the continuous wavelet transform as a time-frequency transform

This release adds scale-to-frequency conversion for cwtft and cwt. cwtft returns the scale-to-frequency conversions as a field in the structure array output. cwt accepts an optional sampling interval input, which enables you to output scale-to-frequency conversions. This release also adds a featured example, Time-Frequency Analysis with the Continuous Wavelet Transform.

Application examples: Analyze financial data and physiologic signals using wavelets

This release introduces new examples for analyzing financial data and physiologic signals using wavelets. The financial example, Wavelet Analysis of Financial Data, shows how you can use wavelets to analyze multiscale volatility in financial time series data and explore multiscale correlation in bivariate time series data. The physiologic signal analysis example, Wavelet Analysis of Physiologic Signals, showcases QRS detection in the electrocardiogram using wavelets, wavelet coherence, and time-frequency analysis.


Bug Fixes, Compatibility Considerations

Functionality being removed or changed

FunctionalityWhat Happens When You Use This Functionality?Use This InsteadCompatibility Considerations
ndwt, indwt, ndwt2, indwt2Errorsswt, iswt, swt2, iswt2Replace all instances of ndwt, indwt, ndwt2, and indwt2 with the corresponding function for the stationary wavelet transform.


Bug Fixes


New Features, Bug Fixes

Dual-Tree Wavelet Transforms

This release introduces a new example, Dual-Tree Wavelet Transforms, which demonstrates the advantages of the dual-tree discrete wavelet transform (DWT) over the critically sampled DWT. The example illustrates the approximate shift invariance and directional selectivity of the complex dual-tree wavelet transform. These properties enable the dual-tree wavelet transform to outperform the critically sampled DWT in a number of applications.


New Features, Bug Fixes

Two-Dimensional Continuous Wavelet Transform (2-D CWT)

This release introduces the 2-D continuous wavelet transform (CWT) for images. The 2-D CWT provides information about images at specified scales, rotation angles, and positions in the plane. Applications of the 2-D CWT include:

  • Fault detection in images

  • Object recognition

  • Fringe pattern profilometry

For information on how to implement the 2-D CWT at the MATLAB command line, see cwtft2.

To use cwtft2 in the Wavelet Toolbox™ interactive tool, enter

>> wavemenu
Then, from the Two-dimensional tools section, select Continuous Wavelet Transform 2-D. See 2-D Continuous Wavelet Transform App for more information on the 2-D CWT app.

cwtft2 supports both isotropic and anisotropic 2-D wavelets. Use isotropic wavelets to perform pointwise analysis in images or when oriented features are not relevant. Use anisotropic wavelets when your goal is to detect oriented features.

cwtft2 implements the 2-D CWT using the 2-D discrete Fourier transform. Use cwtftinfo2 to obtain the 2-D Fourier transforms of the supported analyzing wavelets.

Dual-Tree Transforms and Double-Density Transforms

This release introduces two types of 1-D and 2-D oversampled (frame) wavelet perfect reconstruction filter banks. For 1-D wavelet analysis, use dddtree to obtain the following wavelet transforms:

  • Complex dual-tree

  • Double-density

  • Complex dual-tree double-density

For 2-D wavelet analysis, use dddtree2 to obtain the following wavelet transforms:

  • Double-density

  • Real oriented dual-tree

  • Complex oriented dual-tree

  • Real oriented double-density dual-tree

  • Complex oriented double-density dual-tree

The dual-tree and double-density transforms mitigate a number of shortcomings of the critically sampled discrete wavelet transform. The double-density and dual-tree transforms achieve directional selectivity and approximate shift invariance with significantly less computational cost than the undecimated discrete wavelet transform.


Bug Fixes


Bug Fixes


New Features

Matching Pursuit

In R2012a you can decompose a 1-D signal in a dictionary of time/frequency or time/scale atoms with matching pursuit.

Representing a signal in a union of time-frequency/time-scale bases can provide sparser signal representations than attainable with any single basis. Matching pursuit uses iterative greedy algorithms to reduce the computational complexity of searching through a redundant dictionary.

Wavelet Toolbox software supports basic matching pursuit, orthogonal matching pursuit, and weak orthogonal matching pursuit at the command line with wmpdictionary and wmpalg. You can also perform matching pursuit with the interactive wavemenu tool.

You can build dictionaries using several internally supported options or provide your own custom dictionaries. See Matching Pursuit for background information and examples.


New Features, Bug Fixes, Compatibility Considerations

Fourier Transform Based Continuous Wavelet Transform GUI

In R2011b, you can compute the Fourier transform based continuous wavelet transform (CWT) and inverse CWT using the Wavelet Toolbox graphical user interface wavemenu. To access these graphical tools, enter wavemenu at the command line, and select Continuous Wavelet 1-D (using FFT).

Inverse Continuous Wavelet Transform Using Linear Scales

In R2011b, you can compute the inverse continuous wavelet transform (CWT) for a wider class of analyzing wavelets using icwtlin. icwtlin returns the inverse for CWT coefficients obtained at linearly spaced scales. icwtlin supports the output of cwtft and the output of cwt for a select number of wavelets. See icwtlin for detailed information.

MATLAB Code Generation Support for Denoising and Compression GUIs

In R2011b, you can generate MATLAB code for 1-D and 2-D discrete wavelet transforms (DWT), stationary wavelet transforms (SWT), and wavelet packet transforms. You can denoise or compress a signal or image in the GUI and export the MATLAB code to implement that operation at the command line. This approach allows you to set denoising thresholds or compression ratios aided by visualization tools and save the commands to reproduce those operations at the command line. See Generating MATLAB Code from Wavelet Toolbox GUI for examples.

Signal Reconstruction from Continuous Wavelet Transform Coefficients Demo

R2011b includes a new demo illustrating signal reconstruction using the continuous wavelet transform (CWT). The demo emphasizes the use of the CWT to analyze a signal and reconstruct a time- and scale-based approximation with select coefficients using the inverse CWT. See Signal Reconstruction from Continuous Wavelet Transform Coefficients for details.

Changes in Fourier Transform Based Continuous Wavelet Transform Defaults for Derivative of Gaussian (DOG) and Paul Wavelets

In R2011b, the default values for the smallest scale, scale increment, and number of scales have changed in cwtft for the derivative of Gaussian (DOG) and Paul wavelets. The change in the defaults also affects the Mexican hat wavelet, which is a special case of the DOG wavelet. In R2011b, the default value of the smallest scale for the Paul and DOG wavelets is 2*dt, where dt is the sampling period. The default scale increment, ds, is 0.4875. The default number of scales is fix(log2(length(sig))/ds)+1 for the Paul wavelet and max([fix(log2(length(sig))/ds),1]) for the DOG wavelets, where sig is the input signal.

Compatibility Considerations

cwtft was introduced in R2011a. In that release, the default smallest scales for the DOG and Paul wavelets are dt/8 and dt respectively, where dt is the sampling interval. The default scale increment is 0.5. The default number of scales is fix(1.5*log2(length(sig))/ds)+1 for the Paul wavelet. For DOG wavelets, the default number of scales is fix(1.25*log2(length(sig))/ds)+1, where sig is the input signal. You can obtain results in R2011b using cwtft with the DOG and Paul wavelets identical to results in R2011a with the default values. To do so, specify the smallest scale, scale increment, and number of scales in a structure or cell array. See cwtft for details.


New Features, Bug Fixes

Inverse Continuous Wavelet Transform

In R2011a, you can compute the inverse continuous wavelet transform (CWT) using an FFT-based algorithm. The inverse CWT allows you to synthesize approximations to your 1D signal based on selected scales. The inverse CWT is only supported for coefficients obtained using the FFT-based CWT. See icwtft and cwtft for details.

FFT-based Continuous Wavelet Transform

In R2011a, you can compute the continuous wavelet transform (CWT) using an FFT-based algorithm with cwtft. The CWT computed using an FFT algorithm supports the computation of the inverse CWT. See cwtft and icwtft for details. Only select wavelets are valid for use with cwtft. See cwtftinfo for a list of supported wavelets.

Pattern-adapted Wavelets for Signal Detection Demo

In R2011a there is a new demo using pattern adapted wavelets for signal detection. You can view this demo here Pattern adapted wavelets for signal detection. The Wavelet Toolbox software enables you to design admissible wavelets based on the pattern you wish to detect. Designing a valid wavelet based on your desired pattern allows you to exploit the optimality of matched filtering in the framework of the CWT. The demo illustrates this process on simulated data and human EEG recordings.


New Features, Bug Fixes

Cone of Influence for Continuous Wavelet Transform

In R2010b, you can compute the cone of influence (COI) for the continuous wavelet transform (CWT) of a signal. At each scale, the COI determines the set of CWT coefficients influenced by the value of the signal at a specified position. The COI provides an important visual aid in interpreting the CWT. By overlaying the cone of influence on the CWT image, you can determine which CWT coefficients each value of the signal affects at every scale. See conofinf for details.

Wavelet Cross Spectrum and Coherence

In R2010b, you can estimate the wavelet cross spectrum and wavelet coherence of two time series. The wavelet cross spectrum and coherence provide wavelet-based alternatives for the Fourier-based cross spectrum and coherence. These wavelet estimators are suitable for nonstationary signals. Using a complex-valued analyzing wavelet, you can also examine intervals in the time-scale plane where the two time series exhibit common phase behavior. See wcoher and the new demo Wavelet Coherence for details.

Wavelet Packet Spectrum

In R2010b, you can compute the wavelet packet spectrum with wpspectrum. The wavelet packet spectrum provides a time-frequency analysis of a time series. The wavelet packet spectrum is useful as wavelet-based counterpart of the short-time Fourier transform.

Natural and Frequency Ordering of Wavelet Packet Terminal Nodes

In R2010b, you can order the wavelet packet transform terminal nodes by natural (Payley) or frequency (sequency) order. See otnodes for details.

Image and Signal Approximation Quality Metrics

In R2010b, you can measure the quality of your signal or image approximation using a number of widely-used quality metrics. These metrics include: the peak signal-to-noise ratio (PSNR), the mean square error (MSE), the maximum absolute error, and the energy ratio of the approximation to the original. See measerr for details.


New Features, Bug Fixes

3-D Discrete Wavelet Transform

This release adds new functions and a GUI to support the 3-D discrete wavelet transform. This new functionality lets you decompose, analyze, and display a 3-D object using a different wavelet for each dimension. The new functions are: dwt3, idwt3, wavedec3, and waverec3. A demo (wavelet3ddemo) is also included.

Nondecimated Wavelet Transform

New nondecimated wavelet transform functions support signals of arbitrary size and different extension modes. Previous functionality had two limitations: signal length had to equal a power of 2 and the only allowable extension mode was periodized. The new functions are: ndwt, indwt, ndwt2, and indwt2. A demo (ndwtdemo) is also included.

New Denoising Function

The new cmddenoise function uses interval-dependent denoising to compute the denoised signal and coefficients. This allows you to apply different denoising thresholds to different portions of the signal, which is typically nonuniform. You can also export thresholds from the GUI and use them in the cmddenoise function. The toolbox includes a denoising demo (cmddenoise).


Bug Fixes


New Features, Bug Fixes

New Demos


New Features, Bug Fixes

True Image Compression Support

The new wcompress functions lets you compress 2D image data. You can also interactively compress images using the new Two-Dimensional Images Compression GUI.

New Demo

The toolbox now includes a new codepad demo on image compression.


New Features, Bug Fixes

True Color Images Support

The toolbox can now process true color images. All major toolbox GUIs and all of the 2D-oriented command line functions have been also updated and support true color images.

New Extension Modes for Continuous Wavelets

The new cwtext function lets you calculate 1D continuious wavelet parameters using extension parameters.

New Norms Calculation

The Multisignal 1D GUI and other related GUIs now include 1-norm, 2-norm, and inf-norm calculations.

Wavelet Families Display

A new function, waveletfamilies, displays all the available wavelet families and their properties.

Single Data Type Support

The swt2 and iswt2 functions now support single data types.

New Demos

The toolbox now includes the following new codepad demos:

  • Multiscale Principal Component Analysis

  • Multivariate Denoising


New Features, Bug Fixes

Importing and Exporting between GUIs and Workspace

You can now import data from the workspace to all toolbox GUIs and export data from all toolbox GUIs to the workspace. Use Import from Workspace and Export to Workspace, respectively, on the GUI's File menu.

Scalograms for Continuous Wavelet Transforms

The ability to compute scalograms of the wavelet coefficients in continuous wavelet analysis has been added as an option to the cwt function. You can also pass the structure produced by cwt directly to the new wscalogram function. Scalograms show the percentage of energy in each wavelet coefficient.

Constructing Clusters from Hierarchical Cluster Trees

You can now construct clusters from hierarchical cluster trees in multisignal analysis using the new mdwtcluster function.


New Features, Bug Fixes

1D Multisignal Analysis, Compression, and Denoising Added

The following command-line functions for 1D multisignal analysis, compression, and denoising have been added to the toolbox:


Multisignal 1D compression using wavelets.


Multisignal 1D wavelet compression scores.


Multisignal 1D compression thresholds and perf.


Multisignal 1D denoising using wavelets.


Performs Multisignal 1D thresholding.

1D Multisignal Wavelet and Clustering Added

The following command-line functions for 1D multisignal wavelets and clustering have been added to the toolbox:


Change Multisignal 1D decomposition coeffs


Multisignal 1D wavelet decomposition


Multisignal 1D wavelet reconstruction.


Multisignal 1D decomposition energy repartition

    Note   Clustering analyses require that Statistics Toolbox™ is installed.

Wavelet 1D Multisignal Analysis GUI Added

A graphical user interface for 1-D multisignal analysis has been added. To start this GUI, select Multisignal Analysis 1D from the wavemenu dialog.


New Features, Bug Fixes

Multivariate De-noising Added

A new command-line function (wmulden) and a new GUI (Multivariate Denoising from the wavemenu initial window) for de-noising a matrix of signals have been added. Both the function and GUI take into account the signals themselves and the correlations between the signals. A two-step process is used. First, a change of basis is performed to deal with noise spatial correlation de-noising in the new basis. Then, a principal component analysis is performed to take advantage of the deterministic relationships between the signals, leading to an additional de-noising effect.

Multiscale Principal Component Analysis Added

A new command-line function (wmspca) and a new GUI (Multiscale Princ. Comp. Analysis from the wavemenu initial window) for simplifying a matrix of signals have been added. Both the function and GUI take into account the signals themselves and the correlations between the signals. The multiscale principal component analysis mixes wavelet decompositions and principal component analysis.

New Demos

The following new demos are added:

  • Continuous and Discrete Wavelet Analysis

  • Detecting Discontinuities and Breakdown Points

  • De-Noising Signals and Images

  • Data Compression using 2D Wavelet Analysis

  • Image Fusion

  • Detecting Self-Similarity

  • Wavelet Packets: Decomposing the Details


No New Features or Changes


No New Features or Changes


No New Features or Changes

Compatibility Summary

ReleaseFeatures or Changes with Compatibility Considerations
R2015aFunctionality being removed or changed
R2011bChanges in Fourier Transform Based Continuous Wavelet Transform Defaults for Derivative of Gaussian (DOG) and Paul Wavelets
Was this topic helpful?