This archive contains the code of the YAWtb toolbox. The purpose of this toolbox is to implement in Matlab:
This toolbox was under active development till about 2010 but it is no longer developed. The onlly purpose of this GitHub repository is to keep an accessible archive of the YAWtb, for instance, for possible analysis, forks, or porting into another numerical programming language (such as Python or Julia).
If you want to know more about the content and purpose of this Matlab toolbox, you can have a look to the following documents:
This toolbox should ideally be ported to Python, which is more flexible than Matlab and interfaces more naturally with the C files required for instance by the spherical wavelet transform. However, none of the toolbox's authors have time anymore to make this transfer. If you want to help, feel free to contact Laurent Jacques for more information.
This toolbox and all its files are provided under the "GNU GENERAL PUBLIC LICENSE, Version 2, June 1991". See this file for more information.
This repository contains the version 0.1.1 of the YAWtb. It was still an unstable version and a lot of work had to be done especially on the documentation (use YAWtb at your own, rather limited, risk).
The YAWtb worked for Matlab versions greater than 5 and was developped onto the 6th. It's not sure that this toolbox still works with recent version of Matlab.
In the sequel, the >>
symbols represents the Matlab prompt.
Follow these steps to install the YAWtb Matlab toolbox,
Unpack YAWtb where you want (say the <YAWTBDIR>
directory for simplicity);
Compile all the YAWtb mexfiles (provided that your mex
matlab script is well configured) with the yamake
utility:
>> cd <YAWTBDIR>
>> yamake
(and for a more explicit compilation >> yamake debug
)
Remark: If you have Microsoft Windows (9x, 2000, XP, ...), it seems that the native Matlab compiler, and also this of Windows, are not able to compile correctly the yawtb C code (e.g. cwtsph stuff). Use instead the free compiler of Borland available at http://www.borland.com (need a simple registration) and configure Matlab in function (run 'mex -setup' and read the Borland compiler FAQ and doc).
Run yaload
in Matlab to load the whole YAWtb path:
>> cd <YAWTBDIR>
>> yaload
Add the following lines to a matlab startup file, either the general one (matlabrc.m) located in MATLABDIR/toolbox/local, or the local startup file (startup.m) somewhere in your home dir (see matlab doc):
%% YAWtb installation
olddir=pwd;
cd <YAWTBDIR>
yaload;
cd(olddir);
clear olddir;
Enjoy of YAWtb !
Here is the TODO list of things to improve, create, delete inside the YAWtb project:
Using signal instead of their Fourier transform in various mfiles
(cwt<n>d
, cwtsph
, ...) and allowing the use of the fft with a special keyword
(e.g. fft
);
Setting sampling period in cwt1d.m
improve the documentation of morletsph.m
and dogsph.c
is really
poor.
check the documentation of cwt1dt.m
and the associated spatio
temporal Morlet wavelet.
use k_0
(or a_0
) and c_0
to control the 1dt Morlet wavelet instead
of k_0
and w_0
.
yademo
fails with cwt1dt
or movgauss
: Comments are
inserted directly in the code environment. Note that in cwt1d
comments were outside of this environment. We probably need to
move them outside of this environment.
The norm $L^1$ or $L^2$ is not taken into account in cwt1dt.
>> mat = movgauss;
>> wave = cwt1dt(fft2(mat),'mexican',[4 5 6],[1],'order',4,'sigma',1,'sigmax',1,'sigmat',8);
>> yashow(wave,'filter');
The plot is not correct because we expect an anisotropic wavelet.
The filter option does not exist with cwt1d
.
Here is the current explanation of the yawtb tree
===
yawtb (=>:directories, ->:files)
|
|-> AUTHORS /* GPL file */
|-> COPYING /* GPL file */
|-> yaload.m /* yawtb startup file (addpath, etc ...) */
|-> yamake.m /* compilations of the yawtb mexfiles */
|
|=> doc /* Documentation */
| |=> html
| |=> ps
| |=> ascii
| `=> tex
|
|=> continuous /* All the continuous transfrom */
| |=> 1d /* 1D CWT */
| |=> 2d /* 2D CWT */
| |=> 1dt /* 1D+T CWT (spatio-temporal) */
| `=> sphere /* Spherical CWT */
|
|=> discrete
| |=> packet /* Wavelet Packets in 1d and 2d */
| | |=> 1d
| | `=> 2d
| |=> matchp /* matching pursuit */
| |=> laplacian
| `=> ortho /* orthogonal wavelet */
|
|=> frames /* Wavelet Frames */
| |=> 1d
| |=> 2d
| `=> sphere
|
|=> include /* Directories for storing general usage
| C-File that may be useful for many
|=> interfaces /* Various interfaces to external (GPL) program
| `=> spharmonickit /* Interface to the SpharmonicKit */
|
|=> lib /* MEX-File */
|
|=> src
|
|=> tools
| |=> display /* universal display function (yashow.m) */
| |=> misc /* various utils (vect, noising, thresholding, ...) */
| |=> cmap /* various colormap needed by som yawtb functions (e.g. rgray, ...) */
| |=> devel /* The developper corner (see README inside) */
| `=> io /* Input/Output scripts (like pgm read & write) */
|
|=> demos /* some demo of yawtb */
| `=> denoising
| |=> 1d /* Various techniques related to signal denoising */
| |=> 2d /* Various techniques related to image denoising */
| `=> sphere /* Various techniques related to spherical denoising */
|
`=> samples /* samples for the different WT */
|=> 1d
|=> 2d
|=> 1dt
`=> sphere
The YAWtb team want to thank you the following persons for their kind contributions to the toolbox :