Basis Pursuit Wavelet Denoising (solved by block coordinate relaxation)

DESCRIPTION:

Signal denoising by L1 penalized least squares.

USAGE:

bp.by.bcr(s, lambda ..., analysis.name="nd.dwt", x="mof", 
          block.selection=NULL, criterion.target=NA, max.iter=10000, 
          rel.conv=1e-06, verbose=T, best.basis.fct=best.basis)   

REQUIRED ARGUMENTS:

s
numeric or complex vector. Signal to be denoised.
lambda
strictly positive real number proportional to the amount of denoising to perform. Meta parameter penalizing the residual sum of squares by the L1 norm of the wavelet coefficients.

OPTIONAL ARGUMENTS:

...
additional argument such as wavelet, n.levels used by the wavelet transform.
analysis.name
character string indicating which wavelet transform to use, such as dwt, nd.dwt, wp.table, cp.table, chirp.table or bp.table as long as the corresponding matrix is the union of orthonormal matrices.
x
object of type obtained from analysis or a character string: "mof" (method of frame estimate) or "zero" (zero constant vector) are available. Initial guess of the wavelet coefficients for the iterative block coordinate relaxation algorithm.
block.selection
character string indicating the block selection scheme: "systematic" or "optimal" proposed by Bruce, Sardy and Tseng (1998).
criterion.target
real number giving the convergence threshold. Value of the basis pursuit objective function to reach to stop iterations.
max.iter
real number giving the upper bound on the number of iterations to perform.
rel.conv
real number giving the convergence threshold. Value of the relative change in the signal estimate to reach to stop iterations.
verbose
logical flag indicating whether or not information should be printed on the screen at each iteration.
best.basis.fct
function applied to the gradient object to determine the next block, such as best.basis or best.chirp.rate.

VALUE:

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

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

REFERENCES:

Bruce, A.G., Sardy, S., and Tseng P. (1998). Block coordinate relaxation methods for nonparametric signal de-noising. Wavelet Applications, Proceedings of the SPIE, Orlando, FL, April, 1998.

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.

SEE ALSO:

, , .

EXAMPLES:

par(mfrow=c(1,2)) 
xx <- as.vector(make.signal("blocks", n=512, snr=5)) 
plot(xx, type="l", xlab="noisy blocks", ylab="") 
bp.hat <- bp.by.bcr(xx, lambda=sqrt(2*log(512)), 
                analysis.name = "wp.table", 
                x = "mof", block.selection = "optimal", 
                criterion.target = NA, max.iter = 10000, 
                rel.conv = 5.e-3, verbose = T, 
                best.basis.fct=best.basis, 
                n.levels=4, wavelet="s8", 
                cost.fun="lp", p=2) 
plot(bp.hat$s.hat, type="l", xlab="smoothed blocks", 
     ylab="", ylim=range(xx)) 
par(mfrow=c(1,1)) 
plot(bp.hat$coef.hat)