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.
fwtnpmp(input, f, nkeep = 2, intercept = TRUE,
initboundhandl = "reflect", neighbours = 1,
closest = FALSE, LocalPred = LinearPredmp, mpdet="ave")
data vector of the grid used in the transform.
vector of detail and scaling coefficients in the wavelet decomposition of the signal.
list of detail and scaling coefficients. Should be the same as coeff
, apart from possible multiple points at the scaling function values.
vector of initial interval lengths corresponding to the gridpoints.
vector of (updated) interval lengths at the end of the transform. This is of length nkeep
.
vector of interval lengths corresponding to the points removed during the transform (in removelist
).
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
.
a vector of indices into X
of the lifted coefficients during the transform (in the order of removal).
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.
the user-specified number of neighbours used in the prediction step of the transform.
a list of all the prediction weights used at each step of the transform.
a list of the update coefficients used in the update step of the decomposition.
a vector of character strings indicating the type of regression used at each step of the transform.
a boolean vector indicating whether or not an intercept was used in the regression curve at each step.
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
.
a list desscribing the group structure (indices) of the initial function values.
a boolean vector of which of the groups are actually multiple points.
A vector of grid values. Can be of any length, not necessarily equally spaced.
A vector of function values corresponding to input
. Must be of the same length as input
.
The number of scaling coefficients to be kept in the final representation of the initial signal. This must be at least two.
Indicates whether or not the regression curve includes an intercept.
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.
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.
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.
The type of regression to be performed. Possible options are LinearPredmp
, QuadPredmp
, CubicPredmp
, AdaptPredmp
and AdaptNeighmp
.
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.
Matt Nunes (nunesrpackages@gmail.com), Marina.Knight
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.
AdaptNeighmp
, AdaptPredmp
, CubicPredmp
, fwtnp
, invtnpmp
, LinearPredmp
, QuadPredmp
#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