extrapolate {MIMSunit} | R Documentation |
Extrapolate input multi-channel accelerometer data
Description
extrapolate
applies the extrapolation algorithm to a multi-channel
accelerometer data, trying to reconstruct the true movement from the
maxed-out samples.
Usage
extrapolate(df, ...)
extrapolate_single_col(
t,
value,
range,
noise_level = 0.03,
k = 0.05,
spar = 0.6
)
Arguments
df |
dataframe. Input multi-channel accelerometer data. Used in
|
... |
see following parameter list. |
t |
POSIXct or numeric vector. Input index or timestamp sequence Used in
|
value |
numeric vector. Value vector used in
|
range |
numeric vector. The dynamic ranges of the input signal. Should
be a 2-element numeric vector. |
noise_level |
number. The tolerable noise level in |
k |
number. Duration of neighborhood to be used in local spline regression for each side, in seconds. Default is 0.05, as optimized by MIMS-unit algorithm. |
spar |
number. Between 0 and 1, to control how smooth we want to fit local spline regression, 0 is linear and 1 matches all local points. Default is 0.6, as optimized by MIMS-unit algorithm. |
Details
This function first linearly interpolates the input signal to 100Hz, and then applies the extrapolation algorithm (see the manuscript) to recover the maxed-out samples. Maxed-out samples are samples that are cut off because the intensity of the underlying movement exceeds the dynamic range of the device.
extrapolate
processes a dataframe of a multi-channel accelerometer
signal. extrapolate_single_col
processes a single-channel signal with
its timestamps and values specified in the first and second arguments.
Value
extraplate
returns a dataframe with extrapolated multi-channel
signal. extrapolate_single_col
returns a dataframe with extrapolated
single-channel signal, the timestamp col is in numeric values instead of
POSIXct format.
How is it used in MIMS-unit algorithm?
This function is the first step during MIMS-unit algorithm, applied before filtering.
See Also
Other extrapolation related functions:
extrapolate_rate()
Examples
# Use the maxed-out data for the conceptual diagram
df = conceptual_diagram_data[
conceptual_diagram_data['GRANGE'] == 4,
c("HEADER_TIME_STAMP", "X")]
# Plot input
illustrate_signal(df, range=c(-4, 4))
# Use the default parameter settings as in MIMunit algorithms
# The dynamic range of the input data is -4g to 4g.
output = extrapolate(df, range=c(-4, 4))
# Plot output
illustrate_signal(output, range=c(-4, 4))