This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: discrete wavelet transform


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Monday 08 March 2004 06:22 pm, you wrote:
> Ivo Alxneit writes:
>  > is this something that could be included in gsl? if yes i would
>  > still need to write some tests (suggestions welcome) and
>  > documentation.
>
> Wavelets are something that could be included in GSL.  From a brief
> look there are a few recommendations I would make:
sounds good
>
> - to use plain arrays internally rather than vectors, this would be
>   simpler and avoid unnecessary copying of elements into the vectors
>   from arrays.  Similarly use an api with (pointer,stride,length) as
>   in the FFTs, to remove the dependency on gsl_vector.
>
> - the coefficients c are constant so it should be possible to create
>   them as static const objects and pass only pointers around,
>   preserving constness correctly.  The definition of h in the wavelet
>   struct is not const, for example.
>
> - avoid allocating workspace internally, this should be passed in as a
>   parameter for efficiency (as in the ffts).
>
> - obtain the coefficients from the original papers as an independent
>   check, and to avoid any hassle from the authors of Wavekit.
>
ok i will look into those points. the daubechies constans i initially had from 
the original paper but i used wavekit's output because it gives more 
significant digits.

in the near future i am quite busy but i suspect to have more time next month 
to go over the wavelts again. (if somebody likes to step in...)

one point that i realized recently. i would be relative easy to also include 
wavelet packets in the same framework. in contrast to a wavlet analysis 
(returning 2^N wavelet coefficients from a 2^N vector) the wavelet packet 
analysis returns a N x 2^N matrix of coefficients. so would it be better to 
turn dwt_1D into a function like

wc=dwt_1d(w, a, isign)

(both, wc and a being arrays of length 2^N) for consistency with the wavelet 
packet case (at the expense of needing space for both a and wc)?

>
> - Omit the 2d case initially.
>

ok (this was my motivation for wavelets, though. i am doing image denoising)

> Those are a few areas that I noticed in the code itself, but I'm not
> familiar with practical use of wavelets myself so I can't comment on
> things like Th, Tv.  If there is a normal convention we should follow
> it though.

i tried to find out myself what is the normal convention. with not much 
success yet (again, somebody could help here?)
- -- 
Dr. Ivo Alxneit
Laboratory for Solar Technology   phone: +41 56 310 4092
CH-5232 Villigen                    fax: +41 56 310 2624
Paul Scherrer Institute          http://solar.web.psi.ch
Switzerland                        gnupg key: 0x515E30C7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFATsXNAd7CE1FeMMcRAnD6AJ4gbt5cuBwutjYpJETR94fNLqhPOACghg6j
USgsf9E2wUTg78B2TusUNLA=
=sDcy
-----END PGP SIGNATURE-----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]