denoisepermCh {CNLTreg} | R Documentation |
Denoises a signal using the complex-valued lifting transform and multivariate soft thresholding and heteroscedastic variance computation
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. A sliding window approach is then used
on these wavelet coefficients to estimate a local noise variance.
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
denoisepermCh(x, f, returnall = FALSE, 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. |
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. A sliding window is used to compute a local 'heteroscedastic' noise variance by taking the MAD of those normalized details falling into the window, see Nunes et al. (2006) for more details. Given the noise estimates for each observation, 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. |
al |
List giving the split of points between the artificial levels. |
sd |
Estimated heteroscedastic 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.
Nunes, M. A., Knight, M. I and Nason, G. P. (2006) Adaptive lifting for nonparametric regression.
Stat. Comput. 16 (2), 143–159.
Knight, M. I. and Nason, G. P. (2009) A 'nondecimated' wavelet transform. Stat. Comput.
19 (1), 1–16.
See Also
denoisepermC
,
fwtnppermC
,
fwtnpperm
,
heterovar
,
mthreshC
Examples
library(MASS) # where the motorcyle data lives
mcycleu<-mcycle[which(duplicated(mcycle$times)=='FALSE'),]
time<-mcycleu[,1]
accel<-mcycleu[,2]
set.seed(200)
est1<-denoisepermCh(time,accel)