multiThresh: Resolution level thresholds for hard thresholded wavelet...

Description Usage Arguments Details Value References Examples

View source: R/functions.R

Description

Computes the estimated resolution level thresholds for the hard-thresholding wavelet deconvolution estimate of the desired signal in the multichannel signals.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
multiThresh(
  Y,
  G = directBlur(nrow(as.matrix(Y)), ncol(as.matrix(Y))),
  alpha = rep(1, dim(as.matrix(Y))[2]),
  resolution = resolutionMethod(detectBlur(G)),
  j0 = 3L,
  j1 = NA_integer_,
  eta = NA_real_,
  deg = 3L
)

Arguments

Y

An input signal either an n by m matrix containing the multichannel signal to be analysed or single vector of n elements for the single channel. In the multichannel case, each of the m columns represents a channel of n observations.

G

The input multichannel blur matrix/vector (needs to be the same dimension/length as the signal input which is a matrix or vector for the multichannel or single channel case respectively). This argument dictates the form of blur present in each of the channels.

alpha

A numeric vector, with m elements, specifying the level of long memory for the noise process within each channel of the form alpha = 2 - 2H, where H is the Hurst parameter. If alpha is a single element, that same element is repeated across all required channels.

resolution

A character string describing which resolution selection method is to be applied.

  • 'smooth': Smooth stopping rule in Fourier domain applied piecewise in each channel and maximum selected which is appropriate if blurring kernel is of regular smooth blur type or direct model (no convolution).

  • 'block': Blockwise variance selection method is used which is appropriate for box car type.

The default choice uses the detectBlur function to identify what type of blur matrix, G, is input and then maps that identification to the resolution type via a simple switch statement in the hidden resolutionMethod function, whereby, identified 'smooth' and 'direct' blur use the smooth resolution selection while box.car uses the blockwise resolution selection method.

j0

The coarsest resolution level for the wavelet expansion.

j1

The finest resolution level for the wavelet expansion. If unspecified, the function will compute all thresholds up to the maximum possible resolution level at j1 = log2(n) - 1.

eta

The smoothing parameter. The default level is 2√(α^*) where α^* is an optimal level depending on the type of blur. (see Kulik, Sapatinas and Wishart (2014) for details and justification)

deg

The degree of the auxiliary polynomial used in the Meyer wavelet.

Details

Given an input matrix of a multichannel signal (n rows and n columns) with m channels and n observations per channel, the function returns the required thresholds for the hard-thresholding estimator of the underlying function, f.

Value

A numeric vector of the resolution level thresholds for the hard-thresholding nonlinear wavelet estimator from the multichannel model.

References

Kulik, R., Sapatinas, T. and Wishart, J.R. (2014) Multichannel wavelet deconvolution with long range dependence. Upper bounds on the L_p risk Appl. Comput. Harmon. Anal. (to appear in). doi: 10.1016/j.acha.2014.04.004

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
library(mwaved)
# Simulate the multichannel doppler signal.
m <- 3
n <- 2^10
signal <- makeDoppler(n)
# Noise levels per channel
e <- rnorm(m * n)
# Create Gamma blur
shape <- seq(from = 0.5, to = 1, length = m)
scale <- rep(0.25, m)
G <- gammaBlur(n, shape = shape, scale = scale)
# Convolve the signal
X <- blurSignal(signal, G)
# Create error with custom signal to noise ratio
SNR <- c(10, 15, 20)
sigma <- sigmaSNR(X, SNR)
alpha <- c(0.75, 0.8, 1)
E <- multiNoise(n, sigma, alpha)
# Create noisy & blurred multichannel signal
Y <- X + E
# Determine thresholds blur = 'smooth'
thresh <- multiThresh(Y, G)

mwaved documentation built on Oct. 28, 2021, 5:06 p.m.