Learn R Programming

adlift (version 1.4-5)

fwtnpmp: fwtnpmp

Description

Performs the lifting transform on a signal with grid input and corresponding function values f, where f has multiple points, that is, more than one function value for (some of) the grid values.

Usage

fwtnpmp(input, f,  nkeep = 2, intercept = TRUE,
 initboundhandl = "reflect", neighbours = 1,
 closest = FALSE, LocalPred = LinearPredmp, mpdet="ave")

Value

x

data vector of the grid used in the transform.

coeff

vector of detail and scaling coefficients in the wavelet decomposition of the signal.

coefflist

list of detail and scaling coefficients. Should be the same as coeff, apart from possible multiple points at the scaling function values.

origlengths

vector of initial interval lengths corresponding to the gridpoints.

lengths

vector of (updated) interval lengths at the end of the transform. This is of length nkeep.

lengthsremove

vector of interval lengths corresponding to the points removed during the transform (in removelist).

pointsin

indices into X of the scaling coefficients in the wavelet decomposition. These are the indices of the X values which remain after all points in removelist have been predicted and removed. This has length nkeep.

removelist

a vector of indices into X of the lifted coefficients during the transform (in the order of removal).

neighbrs

a list of indices into X. Each list entry gives the indices of the neighbours of the removed point used at that particular step of the transform.

neighbours

the user-specified number of neighbours used in the prediction step of the transform.

gamlist

a list of all the prediction weights used at each step of the transform.

alphalist

a list of the update coefficients used in the update step of the decomposition.

schemehist

a vector of character strings indicating the type of regression used at each step of the transform.

interhist

a boolean vector indicating whether or not an intercept was used in the regression curve at each step.

clolist

a boolean vector showing whether or not the neighbours were symmetrical
(FALSE) about the removed point during the transform. This is NULL except when LocalPred=AdaptNeigh.

g

a list desscribing the group structure (indices) of the initial function values.

mp

a boolean vector of which of the groups are actually multiple points.

Arguments

input

A vector of grid values. Can be of any length, not necessarily equally spaced.

f

A vector of function values corresponding to input. Must be of the same length as input.

nkeep

The number of scaling coefficients to be kept in the final representation of the initial signal. This must be at least two.

intercept

Indicates whether or not the regression curve includes an intercept.

initboundhandl

variable specifying how to handle the boundary at the start of the transform. Possible values are "reflect" - the intervals corresponding to the first and last datapoints are taken to have the respective grid values as midpoints; and "stop" - the first and last intervals have the first and last grid values (respectively) as outer endpoints.

neighbours

The number of neighbours over which the regression is performed at each step. If closest is false, then this in fact denotes the number of neighbours on each side of the removed point.

closest

Refers to the configuration of the chosen neighbours. If closest is false, the neighbours will be chosen symmetrically around the removed point. Otherwise, the closest neighbours will be chosen.

LocalPred

The type of regression to be performed. Possible options are LinearPredmp, QuadPredmp, CubicPredmp, AdaptPredmp and AdaptNeighmp.

mpdet

how the mutiple point detail coefficients are computed. Possible values are "ave", in which the multiple detail coefficients produced when performing the multiple predictions are averaged, or "min", where the overall minimum detail coefficient is taken.

Author

Matt Nunes (nunesrpackages@gmail.com), Marina.Knight

Details

Given \(n\) points on a line, input, with multiple f values, this algorithm computes a lifting transform of the (input,f) data.

Step One. Order the grid values so that corresponding intervals can be constructed, using the average function value at multiple points.

Step Two. Compute "integrals" for each point. For each point its integral is the length of the interval associated to the gridpoint.

Step Three. Identify the point to remove as that with the smallest integral. Generally, we remove points in order of smallest to largest integral. The integrals of neighbours of removed points change at each step.

Step Four(a). The neighbours of the removed point are identified using the specified neighbour configuration. The values of f at the removed point are predicted using the specified regression curve over the neighbours, unless an adaptive procedure is chosen. In this case, the algorithm adjusts itself. If the removed point has multiple point neighbours, the extra points are used in the regression. The difference between the removed point(s) f value and the prediction is computed: these are the wavelet coefficient for the removed point. When the removed point is itself a multiple point, this will produce multiple detail coefficients at that point. mpdet says how the final detail coefficient for that point is recorded (either averaged or the minimum). The detail replaces the function value in the vector coeff at the removed point's location. In this way wavelet coefficients gradually overwrite (scaling) function values in coeff.

Step Four(b). The integrals and the scaling function values (other coeff and coefflist values) of neighbours of the removed point are updated. The values of the rest of the scaling coefficients are unaffected.

Step Five. Return to step 3 but in the identification of a point to remove the updated integrals are used.

The algorithm continues until as many points as desired are removed.

See Also

AdaptNeighmp, AdaptPredmp, CubicPredmp, fwtnp, invtnpmp, LinearPredmp, QuadPredmp

Examples

Run this code
#read in multiple point data...

data(motorcycledata)
times<-motorcycledata$time
accel<-motorcycledata$accel

out<-fwtnpmp(times,accel,LocalPred=AdaptPredmp,neighbours=2)
out$coeff

#these are the detail coefficients of the transform.

Run the code above in your browser using DataLab