This is the mail archive of the
gsl-discuss@sources.redhat.com
mailing list for the GSL project.
Re: revised version of wavelet transform
Ivo Alxneit writes:
> i dont think that this is really usefull. maybe your thought comes
> from the fact that the "size_t n" in gsl_wavelet_alloc() is really
> the member selected. this CAN BE the number of coefficients (haar,
> daubechies) or just an acronym (bspline, 204 means 2,4 spline of
> the original publication). i did implement all members of those
> families that were given in the original publication. so it is not
> like e.g. in some special functions where the implementation only
> works for a certain sub-range of an argument.
Ok sounds like it is not useful. Also the FFT doesn't have it either.
> the current implementation results in h_ping.ps because the
> wavelets are not centered i.e. the position on the wavelet is
> associated with its trailing (left) edge. this is the way all
> implementations i checked work. if you center the wavelet i.e. its
> position is associated with its center and you will obtain the
> easier-to-read heisenberg box plot (h_ping-c.ps). leaving the
> choice (centered/not centered) to the user is easy to implement: 1)
> add a boolean to the gsl_wavelet structure. 2) allocate according
> to gsl_wavelet_allocate (family, member, centered/not-centered).
> 3) add if(centered) nmod -= (w->nc >>1) in gsl_dwt_step().
> or (instead of 1 and 2 above) add a parameter to the different calls
> gsl_dwt_....(..., centered/not centered)
> should i add this ? i prefer the second solution
Is it possible to do it using the gsl_wavelet_type struct?
e.g. gsl_wavelet_bspline and gsl_wavelet_bspline_centered
That seems quite natural.
--
Brian Gough