Main Content


Kingsbury Q-shift 1-D inverse dual-tree complex wavelet transform

Since R2020a


xrec = idualtree(A,D) returns the inverse 1-D complex dual-tree transform of the final-level approximation coefficients, A, and cell array of wavelet coefficients, D. A and D are outputs of dualtree. For the reconstruction, idualtree uses two sets of filters:

  • Orthogonal Q-shift filter of length 10

  • Near-symmetric biorthogonal filter pair with lengths 7 (scaling synthesis filter) and 5 (wavelet synthesis filter)


xrec = idualtree(___,Name,Value) specifies additional options using name-value pair arguments. For example, 'LowpassGain',0.1 applies a gain of 0.1 to the final-level approximation coefficients.


collapse all

Load a signal, and obtain its dual-tree transform.

load noisdopp
[a,d] = dualtree(noisdopp);

Reconstruct an approximation using all but the two finest-detail wavelet subbands.

dgain = ones(numel(d),1);
dgain(1:2) = 0;
xrec = idualtree(a,d,'DetailGain',dgain);
hold on

Input Arguments

collapse all

Final-level approximation coefficients, specified as a real-valued vector or real-valued matrix. The approximation coefficients are the output of dualtree.

Data Types: double | single

Approximation coefficients, specified as a cell array. The wavelet coefficients are the output of dualtree.

Data Types: double | single

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'LevelOneFilter','antonini','LowpassGain',0.5

Biorthogonal filter to use in the first-level synthesis, specified by one of the values listed here. For perfect reconstruction, the first-level synthesis filters must match the first-level analysis filters used in dualtree.

  • 'legall' — LeGall 5/3 filter

  • 'nearsym13_19' — (13,19)-tap near-orthogonal filter

  • 'nearsym5_7' — (5,7)-tap near-orthogonal filter

  • 'antonini' — (9,7)-tap Antonini filter

Orthogonal Hilbert Q-shift synthesis filter pair length to use for levels 2 and higher, specified as one of the listed values. For perfect reconstruction, the filter length must match the filter length used in dualtree.

Wavelet coefficients subband gains, specified as a real-valued vector of length L, where L is the number of elements in D. The elements of DetailGain are real numbers in the interval [0, 1]. The kth element of DetailGain is the gain (weighting) applied to the kth wavelet subband. By default, DetailGain is a vector of L ones.

Gain to apply to final-level approximation (lowpass, scaling) coefficients, specified as a real number in the interval [0, 1].


[1] Antonini, M., M. Barlaud, P. Mathieu, and I. Daubechies. “Image Coding Using Wavelet Transform.” IEEE Transactions on Image Processing 1, no. 2 (April 1992): 205–20.

[2] Kingsbury, Nick. “Complex Wavelets for Shift Invariant Analysis and Filtering of Signals.” Applied and Computational Harmonic Analysis 10, no. 3 (May 2001): 234–53.

[3] Le Gall, D., and A. Tabatabai. “Sub-Band Coding of Digital Images Using Symmetric Short Kernel Filters and Arithmetic Coding Techniques.” In ICASSP-88., International Conference on Acoustics, Speech, and Signal Processing, 761–64. New York, NY, USA: IEEE, 1988.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2020a