home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Education
/
collectionofeducationcarat1997.iso
/
SCIENCE
/
DAUBWAVE.ZIP
/
DAUBWAVE.DOC
< prev
next >
Wrap
Text File
|
1993-01-15
|
36KB
|
974 lines
DAUBWAVE.DOC - This file contains the documentation for the program
DAUBWAVE.EXE.
Written by Steven Gollmer, October 28, 1992
Introduction.............................................2
DAUBWAVE.................................................3
I. Options........................................3
A. Default....................................3
B. Output, -o <filename>......................4
C. Wavelet Function, -d#......................4
D. Normalization, -n#.........................4
E. Actions....................................4
1) Transform, -t#........................4
2) Inverse, -i#..........................4
3) Series, -s#...........................4
4) Low Pass Filter, -l#..................5
5) High Pass Filter, -h#.................5
6) Band Pass Filter, -b#.................5
7) Notch Filter, -k#.....................5
F. Other......................................5
1) Rotate, -r............................5
2) Shift by 1, -1........................5
3) Unix Redirection, -u..................5
4) Compression, -c.......................5
II. Examples.......................................6
A. Default....................................6
B. Output, -o <filename>......................6
C. Wavelet Function, -d#......................6
D. Normalization, -n#.........................7
E. Actions...............................8
1) Transform, -t#........................8
2) Inverse, -i#..........................9
3) Series, -s#...........................9
4) Low Pass Filter, -l#..................10
5) High Pass Filter, -h#.................10
6) Band Pass Filter, -b#.................11
7) Notch Filter, -k#.....................12
F. Other......................................12
1) Rotate, -r............................12
2) Shift by 1, -1........................13
3) Unix Redirection, -u..................13
4) Compression, -c.......................13
III. Program Cautions...............................13
A. Round Off Error............................13
B. Zero Padding...............................14
C. Wrap Around................................14
D. Option Usage...............................14
Conclusion...............................................14
1
Introduction
This program is made available as is. The author is not liable for any
damage to hardware or data due to the use of this program. If there are
problems, I would like to help you, but I can not be responsible for problems
that may occur on machines that I have not tested this program nor for uses
of this program in combination with other programs. This program may be
modified and used for personal use, but any distribution of original code or
modifications of original code can not be made without the author's consent.
Money may not be collected for distributing this code apart from the amount
needed to provide the media, shipping and a modest processing fee.
Files included in this release of DAUBWAVE are as follows.
DAUBWAVE.EXE - Program to run under MSDOS
DAUBWAVE.DOC - Documentation on program's options
DAUBWAVE.C - Code for this program. ANSI C version is also available
The purpose of this program is to perform wavelet based operations on a
data set. It should be useful in learning orthogonal wavelet analysis as
well as data analysis using orthogonal wavelets. This program uses
orthogonal wavelet analysis based on Daubechies' derived coefficients.
References which may be useful in understanding my code would be as follows.
Daubechies, I., 1988: Commun. Pure and Appl. Math., vol. 41, pp. 909-996.
Mallat, S.G., 1989: IEEE Trans. on Pattern Analysis and Machine
Intelligence, vol. 11, pp. 674-693.
Press, William H., 1992: 'Numerical Recipes for Fortran, 2nd Ed. New York:
Cambridge University Press.
Strang, G. 1989: SIAM Review, vol. 31, pp. 614-627.
I do not want to give a thorough discussion of orthogonal wavelets here,
but I do need to clarify a few concepts. The orthogonal wavelet transform
decomposes a data set onto an orthogonal basis set. This orthogonal basis
set consists of a fundamental wavelet which is translated by steps of 2 and
scaled by factors of 2. A single coefficient is calculated as an inner
product of a wavelet vector with a data vector. A series of coefficients are
generated by applying the inner product N/2 times, shifting the wavelet
vector by 2 positions each time. N is the number of points within the data
set. The wavelet function extracts information about differences between
adjacent positions within the data. A companion function which retains
information about the averages between adjacent points is the scale function
and it is applied in the afore mentioned way to generate a second series of
coefficients. These two series of coefficients are each half as long as the
original data set. The one series corresponds to the coefficients generated
from inner products with the scale function which will be designated the
'smoothed' data. The second series corresponds to the coefficients generated
from the inner products with the wavelet function which will be designated
the 'detail' of the data. Therefore, an original data set of 1024 values
will be decomposed into two series of 512 values. When the results are saved
to a file, the smoothed data is saved first followed by the detail of the
data. This transform will be called a first level transform and it only
applies the wavelet function at the smallest scale. If the above analysis is
done along with an analysis using the function expanded by a factor of two,
the results will be called a second level transform. From multiresolution
2
analysis, the transform using a wavelet expanded by a factor of 2 is the same
as applying the original wavelet transform to the smoothed data of the first
level transform. When a second level transform is performed there are three
series of results. The following diagram illustrates the notation and the
relationship of levels of the analysis to the transformed data.
o0 o1 o2 o3 o4 o5 o6 o7 (original)
s0 s1 s2 s3 d0 d1 d2 d3 (level 1)
ss0 ss1 sd0 sd1 d0 d1 d2 d3 (level 2)
sss0 ssd0 sd0 sd1 d0 d1 d2 d3 (level 3)
d - detail of the data
s - smoothed data
# - indicates the position within a particular series of results
The order of the 's's and 'd's indicates the processes that have been applied
to the original data to get the corresponding coefficient. For ssd the data
has been transformed three times. The first time the scaling
function(smoothing) was applied, next the 2X scaling function(smoothing at
larger scale) was applied and finally the four times wavelet function(detail
at the largest scale) was applied. Notice that once the detail of the data
has been calculated no further transform is performed on it. The transform
can be taken to some maximum level, Y, as long as the original data has a
length of 2 to the Yth power. The advantage of the orthogonal wavelet
transform is that all of the information of the original data set is retained
and can be used to reconstruct the original data set.
DAUBWAVE
This program performs a number of different functions which are all based on
the wavelet transform. The first section su