| Wavelet Toolbox | ![]() |
Single-level discrete 1-D wavelet transform
Syntax
[cA,cD] = dwt(X,'wname') [cA,cD] = dwt(X,'wname','mode',MODE) [cA,cD] = dwt(X,Lo_D,Hi_D) [cA,cD] = dwt(X,Lo_D,Hi_D,'mode',MODE)
Description
The dwt command performs a single-level one-dimensional wavelet decomposition with respect to either a particular wavelet ('wname', see wfilters for more information) or particular wavelet decomposition filters (Lo_D and Hi_D) that you specify.
[cA,cD] = dwt(X,'wname') computes the approximation coefficients vector cA and detail coefficients vector cD, obtained by a wavelet decomposition of the vector X. The string 'wname' contains the wavelet name.
[cA,cD] = dwt(X,Lo_D,Hi_D) computes the wavelet decomposition as above, given these filters as input:
Lo_D and Hi_D must be the same length.
Let lx = the length of X and lf = the length of the filters Lo_D and Hi_D; then length(cA) = length(cD) = la where la = ceil(lx/2), if the DWT extension mode is set to periodization. For the other extension modes, la = floor(lx+lf-1)/2).
For more information about the different Discrete Wavelet Transform extension modes, see dwtmode.
[cA,cD] = dwt(...,'mode',MODE) computes the wavelet decomposition with the extension mode MODE that you specify. MODE is a string containing the desired extension mode.
Examples
% The current extension mode is zero-padding (see dwtmode).
% Construct elementary original one-dimensional signal.
randn('seed',531316785)
s = 2 + kron(ones(1,8),[1 -1]) + ...
((1:16).^2)/32 + 0.2*randn(1,16);
% Perform single-level discrete wavelet transform of s by haar.
[ca1,cd1] = dwt(s,'haar');
subplot(311); plot(s); title('Original signal');
subplot(323); plot(ca1); title('Approx. coef. for haar');
subplot(324); plot(cd1); title('Detail coef. for haar');
% For a given wavelet, compute the two associated decomposition
% filters and compute approximation and detail coefficients
% using directly the filters.
[Lo_D,Hi_D] = wfilters('haar','d');
[ca1,cd1] = dwt(s,Lo_D,Hi_D);
% Perform single-level discrete wavelet transform of s by db2
% and observe edge effects for last coefficients.
% These extra coefficients are only used to ensure exact
% global reconstruction.
[ca2,cd2] = dwt(s,'db2');
subplot(325); plot(ca2); title('Approx. coef. for db2');
subplot(326); plot(cd2); title('Detail coef. for db2');
% Editing some graphical properties,
% the following figure is generated.
Algorithm
Starting from a signal s, two sets of coefficients are computed: approximation coefficients CA1, and detail coefficients CD1. These vectors are obtained by convolving s with the low-pass filter Lo_D for approximation and with the high-pass filter Hi_D for detail, followed by dyadic decimation.
More precisely, the first step is
The length of each filter is equal to 2N. If n = length(s), the signals F and G are of length n + 2N - 1, and then the coefficients CA1 and CD1 are of length
To deal with signal-end effects involved by a convolution-based algorithm, a global variable managed by dwtmode is used. This variable defines the kind of signal extension mode used. The possible options include zero-padding (used in the previous example) and symmetric extension, which is the default mode.
See Also
dwtmode, idwt, wavedec, waveinfo
References
Daubechies, I. (1992), Ten lectures on wavelets, CBMS-NSF conference series in applied mathematics. SIAM Ed.
Mallat, S. (1989), "A theory for multiresolution signal decomposition: the wavelet representation," IEEE Pattern Anal. and Machine Intell., vol. 11,
no. 7, pp. 674-693.
Meyer, Y. (1990), Ondelettes et opérateurs, Tome 1, Hermann Ed. (English translation: Wavelets and operators, Cambridge Univ. Press. 1993.)
| dtree | dwt2 | ![]() |
© 1994-2005 The MathWorks, Inc.