| 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 | ![]() |