cnlt.reg {CNLTreg} | R Documentation |
Performs 'nondecimated' complex-valued wavelet lifting for signal denoising
Description
The transform-threshold-invert procedure for signal denoising is dependent on the trajectory (lifting order) used in the forward lifting transform. This procedure uses trajectory bootstrapping and averaging of estimates to gain denoising performance
Usage
cnlt.reg(x, f, P, returnall = FALSE, nkeep = 2, ...)
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 |
P |
Number of trajectories to be used by the nondecimated lifting algorithm. |
returnall |
Indicates whether the function returns useful variables or just the denoised datapoints. |
nkeep |
Number of scaling points we want at the end of the transform. The usual choice is |
... |
Any other arguments to be passed to |
Details
Essentially, this function applies the complex wavelet lifting
denoising procedure denoisepermC
P times, each with a different random lifting trajectory.
This results in P estimates of the (unknown) true
signal. The average of these estimators is the proposed estimator.
Value
If returnall=FALSE, the estimate of the function after denoising. If returnall=TRUE,
a list with components:
vec |
A matrix of dimension |
aveghat |
Estimated signal after removing the noise. |
Warning
Using a large number of trajectories for long datasets could take a long time!
Author(s)
Matt Nunes
References
Hamilton, J., Nunes, M. A., Knight, M. I. and Fryzlewicz, P. (2018) Complex-valued wavelet lifting and applicati$
Technometrics, bold60 (1), 48-60, DOI 10.1080/00401706.2017.1281846.
For the real-valued equivalent procedure, see also
Knight, M. I. and Nason, G. P. (2009) A 'nondecimated' wavelet transform. Stat. Comput.
19 (1), 1–16.
See Also
denoisepermCh
,
fwtnppermC
,
mthreshC
,
nlt
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
#decide on a number of random trajectories to be used (e.g. J=5 below), and apply
# the nondecimated lifting transform to the noisy signal (x,f):
## Not run:
est<-cnlt.reg(x,f,P=50,LocalPred=AdaptPred,neighbours=1,returnall=FALSE)
## End(Not run)