tidyfun / tf

S3 classes and methods for tidy functional data
https://tidyfun.github.io/tf/
GNU Affero General Public License v3.0
5 stars 2 forks source link

wavelet bases #12

Open fabian-s opened 6 years ago

fabian-s commented 6 years ago

... using wavethresh?

do read up on wavelets first. also check out matt wand's code for wavelet stuff? (https://projecteuclid.org/download/pdfview_1/euclid.ejs/1323785605)

fabian-s commented 5 years ago

Ideally,

Constructors for:

fabian-s commented 4 years ago

umbrella issue for tidyfun/tidyfun#88 tidyfun/tidyfun#89 tidyfun/tidyfun#90 tidyfun/tidyfun#91 tidyfun/tidyfun#92

SvenLorenz commented 4 years ago

Choice of wavelet smoothness, primary resolution and threshold in wavelet shrinkage (Nason (2002)):

SvenLorenz commented 4 years ago

I also probably found the best resource for padding: https://pywavelets.readthedocs.io/en/latest/ref/signal-extension-modes.html#modes. The implemention for wavelets in Python and it's built-in padding method.

In R it's apparently not called padding, but signal extension. The wavelets-package has a function extend.series which offers these padding methods: periodic, reflection, zeros (misspelled "zero" in the documentation), mean, and reflection.inverse.

y_nd <- c(2, 1, 4, 7, 5)
extend.series(y_nd, method = "zeros", length = "powerof2", j=3)
[1] 2 1 4 7 5 0 0 0
extend.series(y_nd, method = "periodic", length = "powerof2", j=3)
[1] 2 1 4 7 5 2 1 4
extend.series(y_nd, method = "periodic", length = "double")
 [1] 2 1 4 7 5 2 1 4 7 
extend.series(y_nd, method = "reflection", length = "powerof2", j=3)
[1] 2 1 4 7 5 5 7 4
extend.series(y_nd, method = "mean", length = "powerof2", j=3)
[1] 2.0 1.0 4.0 7.0 5.0 3.8 3.8 3.8
extend.series(y_nd, method = "reflection.inverse", length = "powerof2", j=3)
[1] 2 1 4 7 5 5 3 6
fabian-s commented 4 years ago

Choice of wavelet smoothness, primary resolution and threshold in wavelet shrinkage (Nason (2002)):

link goes to "Non-Dyadic Wavelet Analysis" -- intended? @SvenLorenz you showed me some other references on padding and non-dyadic data -- can you post these in the respective issues please?

The wavelets-package has a function extend.series which offers these padding methods: periodic, reflection, zeros (misspelled "zero" in the documentation), mean, and reflection.inverse.

seems easy enough to implement to avoid a dependency on another package, but sure, use that in the mean time if it fits our purpose.

SvenLorenz commented 4 years ago

Oh, my bad. The correct link is: https://link.springer.com/article/10.1023/A:1020746709500