Learn R Programming

adlift (version 0.8-2)

denoise: denoise

Description

Denoises the inputted signal using artificial levels noise variance estimation and bayesian thresholding.

Usage

denoise(x, f, pred, neigh, int, clo, keep, rule = "median")

Arguments

x
A vector of grid values. Can be of any length, not necessarily equally spaced.
f
A vector of function values corresponding to x. Must be of the same length as x.
pred
The type of regression to be performed. Possible options are LinearPred, QuadPred, CubicPred
neigh
The number of neighbours over which the regression is performed at each step. If clo is false, then this in fact denotes the number of neighbours on each side of the removed point.
int
Indicates whether or not the regression curve includes an intercept.
clo
Refers to the configuration of the chosen neighbours. If clo is false, the neighbours will be chosen symmetrically around the removed point. Otherwise, the closest neighbours will be chosen.
keep
The number of scaling coefficients to be kept in the final representation of the initial signal. This must be at least two.
rule
The type of bayesian thresholding used in the procedure. Possible values are "mean", "median" (posterior mean or median thresholding) or "hard or "soft" (hard or soft thresholding).

Value

  • outthe output from the forward transform.
  • wthe matrix associated to the wavelet transform.
  • indsdthe individual coefficient variances introduced by the transform.
  • althe artificial levels used to estimate the noise variance.
  • sdthe standard deviation of the noise.
  • fhatthe estimate of the function after denoising.

Details

The function uses the transform matrix to normalise the detail coefficients produced from the forward transform according to the correlation structure, so that they can be used in the bayesian thresholding procedure EbayesThresh. The coefficients are divided into artificial levels, and the first (largest)level is used to estimate the noise variance of the coefficients. EbayesThresh is then used to threshold the coefficients. The resulting new coefficients are then unnormalised and the transform inverted to obtain an estimate of the true (unnoisy) signal.

See Also

denoisehetero

Examples

Run this code
x1<-runif(256)
y1<-make.signal2("doppler",x=x1)
n1<-rnorm(256,0,.1)
z1<-y1+n1
#
est1<-denoise(x1,z1,AdaptNeigh,1,TRUE,TRUE,2)
sum(abs(y1-est1$fhat$coeff))
#
#the error between the true signal and the denoised version.

Run the code above in your browser using DataLab