denoisepermC {CNLTreg} | R Documentation |
Denoises a signal using the complex-valued lifting transform and multivariate soft thresholding
Description
Denoises an input signal contaminated by noise. First the signal is decomposed using the complex-valued lifting
scheme (see fwtnppermC
) using an order of point removal. The resulting complex-valued wavelet
coefficients are then thresholded using a soft thresholding rule on the details' magnitude.
The transform is inverted and an estimate of the noisy signal is obtained.
Usage
denoisepermC(x, f, returnall = FALSE, sdtype = "adlift", verbose = FALSE, ...)
Arguments
x |
Vector of any length (not necessarily equally spaced) that gives the grid on which the signal is observed. |
f |
Vector of the same length as |
returnall |
Indicates whether the function returns useful variables or just the denoised datapoints. |
sdtype |
Options are either |
verbose |
Indicates whether useful messages should be printed to the console during the procedure. |
... |
Any other arguments to be passed to |
Details
After the complex lifting transform is applied, the wavelet coeficients are divided into artificial levels. The details from the lifting scheme have different variances, and will therefore be normalized to have the same variance as the noise, by using the lifting matrix. Those normalized details falling into the finest artificial level will be used for estimating the standard deviation of the noise that contaminated the signal. The variable sdtype is used for this estimate, see Appendix B of Hamilton et al. (2018) for more details. Using this estimate, the normalized details can then be thresholded and un-normalized. The transform is then inverted to give an estimate of the signal.
Value
If returnall=FALSE, the estimate of the function after denoising. If returnall=TRUE,
a list with components:
fhat |
Estimated signal after removing the noise. |
w |
This is the matrix associated to the modified lifting transform. |
indsd |
Vector giving the standard deviations of the detail and scaling coefficients. |
al |
List giving the split of points between the artificial levels. |
sd |
Estimated standard deviation of the noise. |
Author(s)
Matt Nunes, Marina Knight
References
Hamilton, J., Nunes, M. A., Knight, M. I. and Fryzlewicz, P. (2018) Complex-valued wavelet lifting and applications. Technometrics, 60 (1), 48-60, DOI 10.1080/00401706.2017.1281846.
See Also
denoisepermCh
,
fwtnppermC
,
mthreshC
,
cnlt.reg
Examples
library(adlift)
# construct an (irregular) observation grid
x<-runif(256)
#construct the true, normally unknown, signal
g<-make.signal2("blocks",x=x)
#generate noise with mean 0 and signal-to-noise ratio 5
noise<-rnorm(256,mean=0,sd=sqrt(var(g))/5)
#generate a noisy version of g
f<-g+noise
# perform the complex-valued denoising procedure to the noisy signal (x,f):
est<-denoisepermC(x,f,LocalPred=AdaptPred,neigh=1,returnall=FALSE)