Robust Basis Pursuit Wavelet Denoising

DESCRIPTION:

Robust signal denoising with a robust version of basis pursuit.

USAGE:

bp.robust.L1(s, lambda, ..., analysis.name="nd.dwt", 
                x="mof", max.iter=20, opt.tol=0.01, fea.tol=0.01, 
                cg.tol=0.01, cg.max.iter=length(s), verbose=T) 

REQUIRED ARGUMENTS:

s
numeric vector. Complex signals not allowed.
lambda
strictly positive real number proportional to the amount of denoising to perform. Meta parameter penalizing the L1 loss by the L1 norm of the wavelet coefficients.
...
additional argument such as wavelet or n.levels used by analysis.
analysis.name
character string indicating which wavelet transform to use, such as dwt, nd.dwt or wp.table, cp.table and their 2-D versions.
x
object of type obtained from analysis or a character string: "mof" (method of frame estimate) is available. Initial guess of the wavelet coefficients for the iterative interior point algorithm.
max.iter
real number giving the upper bound on the number of interior point iterations to perform.
opt.tol
convergence threshold for the duality gap.
fea.tol
primal and dual feasibility convergence threshold.
cg.tol
convergence treshold for the conjugate gradient solver.
cg.max.iter
real number giving the upper bound on the number of iterations to perform by the conjugate gradient solver.
verbose
logical flag indicating whether or not information should be printed on the screen at each interior point interation.

VALUE:

coef.hat
estimated wavelet coefficients. Minimizes the basis pursuit objective function

s.hat
real vector of estimated signal.
iter.history
real array of saved iteration information.
converged
logical flag indicating whether or not the algorithm converged before stopping the iterations.

REFERENCES:

Sardy, S. (1988). Regularization Techniques for Linear Regression with a Large Set of Carriers. Ph.D. Thesis. Department of Statistics. University of Washington, Seattle.

Chen S., Donoho, D.L., and Saunders, M. (1996). Atomic decomposition by basis pursuit. Technical report, Department of Statistics, Stanford University.

Huber, P.J. (1981). Robust Statistics. New York: Wiley.

SEE ALSO:

, , , , .

EXAMPLES:

# please be patient - convergence might take several minutes 
par(mfrow=c(2,2)) 
snr <- 7 
n <- 512 
lambda <- 2.048 
s.true <- as.vector(make.signal("heavisine", n)) 
s.true <- s.true*snr/sqrt(var(s.true)) 
noise <- rnorm(n) 
where <- sample(c(1:n), 0.1*n) 
noise[where] <- rnorm(length(where), sd=4) 
s <- s.true + noise 
plot(s.true, ylim=range(s), type="l") 
title("Underlying signal") 
plot(s, ylim=range(s)) 
title("Contaminated data") 
robust.est <- bp.robust.L1(s, lambda=lambda, 
                              n.levels=6, wavelet="s8", 
                              analysis.name="nd.dwt", x="mof", 
                              max.iter=20, opt.tol=0.05, fea.tol=0.05, 
                              cg.tol=0.01, cg.max.iter=length(s), verbose=T) 
plot(robust.est$s.hat, ylim=range(s), type="l") 
title("Robust basis pursuit estimation") 
L2.est <- bp.by.ip(s, lambda=lambda, 
                   n.levels=6, wavelet="s8", 
                   analysis.name="nd.dwt", x="mof", 
                   max.iter=20, opt.tol=0.05, fea.tol=0.05, cg.tol=0.01, 
                   cg.max.iter=length(s), verbose=T) 
plot(L2.est$s.hat, ylim=range(s), type="l") 
title("Non-robust basis pursuit estimation")