Hi,
Trying to understand gsl wavelet, but comparison with snd transform options
doesn't show the same results. I believe my confusion may be about
transform->float-vector vs. gsl_wavelet_transform_forward. Maybe they're not
supposed to return the same data? Wondering if I have it all wrong here?
regards,
Jim
;snd transform options:
;type-wavelet
;size - 4096
;window - blackman2
;wavelet - daub4
;display: single transform, normalize, selection
(begin
(open-sound "oboe.snd")
(make-selection 22050 26145 0 0)
;transform options
(set! *transform-type* wavelet-transform)
(set! *transform-size* 4096)
(set! *fft-window* blackman2-window)
(set! *wavelet-type* 1) ;daub4
;transform display options
(set! *transform-graph-type* graph-once) ;single transform
(set! *transform-normalization* 1) ;normalize true
(set! *show-selection-transform* #t) ;selection true
(set! (transform-graph?) #t) ;show 'f' window
)
;snd transform->float-vector
(let* ((data (channel->float-vector 22050 26136 0 0))
(myvals (transform->float-vector 0 0 data))
)
(do ((i 0 (+ i 1)))
((= i 10))
(format #t "~A " (float-vector-ref myvals i))
))
;compare with gsl
(let* ((mysize 4096)
(data (channel->float-vector 22050 26145 0 0))
(w (gsl_wavelet_alloc gsl_wavelet_daubechies 4))
(work (gsl_wavelet_workspace_alloc mysize))
)
(gsl_wavelet_transform_forward w (wrap-double* data) 1 mysize work)
(do ((i 0 (+ i 1)))
((= i 10))
(format #t "~A " (float-vector-ref data i))
)
(gsl_wavelet_free w)
(gsl_wavelet_workspace_free work)
)
_______________________________________________
Cmdist mailing list
[email protected]
https://cm-mail.stanford.edu/mailman/listinfo/cmdist