Wavelet Toolbox |
Continuous 1-D wavelet coefficients
Syntax
COEFS = cwt(S,SCALES,'wname
') COEFS = cwt(S,SCALES,'wname
','plot')COEFS = cwt(S,SCALES,
'wname
',PLOTMODE)
COEFS = cwt(S,SCALES,
'wname
',PLOTMODE,XLIM)
Description
cwt
is a one-dimensional wavelet analysis function.
COEFS = cwt(S,SCALES,
'wname
')
computes the continuous wavelet coefficients of the vector S
at real, positive SCALES
, using the wavelet whose name is 'wname
' (see waveinfo
for more information).
The signal S is real, the wavelet can be real or complex.
COEFS = cwt(S,SCALES,
'wname
','plot')
computes and, in addition, plots the continuous wavelet transform coefficients.
COEFS = cwt(S,SCALES,
'wname
',PLOTMODE)
computes and plots the continuous wavelet transform coefficients.
Coefficients are colored using PLOTMODE
. Valid values for the string PLOTMODE
are listed in the table below.
COEFS = cwt(...,'plot')
is equivalent to COEFS = cwt(...,'absglb')
Note
You can get 3-D plots (surfaces) using the same keywords listed above for the PLOTMODE parameter, preceded by '3D' . For example: COEFS = cwt(...,'3Dplot') or COEFS = cwt(...,'3Dlvl') ...
|
COEFS = cwt(S,SCALES,
'wname
',PLOTMODE,XLIM)
computes and plots the continuous wavelet transform coefficients.
Coefficients are colored using PLOTMODE
and XLIM.
XLIM =
[x1 x2] with 1 x1 < x2 length
(S
)
Let s be the signal and the wavelet. The wavelet coefficient of s at scale a and position b is defined by
Since s(t) is a discrete signal, we use a piecewise constant interpolation of the s(k) values, k = 1 to length
(s).
For each given scale a within the vector SCALES
, the wavelet coefficients Ca,b are computed for b = 1 to ls = length(s), and are stored in COEFS
(i,:) if a = SCALES
(i).
Output argument COEFS
is a la-by-ls matrix where la is the length of SCALES
. COEFS
is a real or complex matrix depending on the wavelet type.
t = linspace(-1,1,512);
s = 1-abs(t);
c = cwt(s,1:32,'cgau4');
c = cwt(s,[64 32 16:-2:2],'morl');
c = cwt(s,[3 18 12.9 7 1.5],'db2');
c = cwt(s,1:64,'sym4','abslvl
',[100 400]);
Examples
This example demonstrates the difference between discrete and continuous wavelet transforms.
% Load a fractal signal. load vonkoch vonkoch=vonkoch(1:510); lv = length(vonkoch); subplot(311), plot(vonkoch);title('Analyzed signal.'); set(gca,'Xlim',[0 510]) % Perform discrete wavelet transform at level 5 by sym2. % Levels 1 to 5 correspond to scales 2, 4, 8, 16 and 32. [c,l] = wavedec(vonkoch,5,'sym2'); % Expand discrete wavelet coefficients for plot. % Levels 1 to 5 correspond to scales 2, 4, 8, 16 and 32. cfd = zeros(5,lv); for k = 1:5 d = detcoef(c,l,k); d = d(ones(1,2^k),:); cfd(k,:) = wkeep(d(:)',lv); end cfd = cfd(:); I = find(abs(cfd)<sqrt(eps)); cfd(I)=zeros(size(I)); cfd = reshape(cfd,5,lv); % Plot discrete coefficients. subplot(312), colormap(pink(64)); img = image(flipud(wcodemat(cfd,64,'row'))); set(get(img,'parent'),'YtickLabel',[]); title('Discrete Transform, absolute coefficients.') ylabel('level') % Perform continuous wavelet transform by sym2 at all integer % scales from 1 to 32. subplot(313) ccfs = cwt(vonkoch,1:32,'sym2','plot'); title('Continuous Transform, absolute coefficients.') colormap(pink(64)); ylabel('Scale') % Editing some graphical properties, % the following figure is generated.
Algorithm
So at any scale a, the wavelet coefficients Ca,b for b = 1 to length
(s) can be obtained by convolving the signal s and a dilated and translated version of the
integrals of the form
(given by intwave
), and taking the finite difference using diff
.
See Also
wavedec
, wavefun
, waveinfo
, wcodemat
coifwavf | dbaux |
© 1994-2005 The MathWorks, Inc.