sablib
Loading...
Searching...
No Matches
beads.cpp File Reference

Baseline estimation and subtraction using Baseline Estimation And Denoising using Sparsity(BEADS)(implementation). More...

#include <algorithm>
#include <cmath>
#include <functional>
#include "../misc/convolve.h"
#include "../misc/diff.h"
#include "../misc/spdiags.h"
#include "beads.h"

Go to the source code of this file.

Functions

const std::tuple< std::vector< double >, std::vector< double > > sablib::BaselineBeads (const std::vector< double > &y, const unsigned int s, const double frequency, const double r, const double lambda0, const double lambda1, const double lambda2, const unsigned int loop=30, const double eps=1e-3, const BeadsPenalty penalty=BeadsPenalty::L1_v2)
 Performs baseline estimation and denoising using Sparsity (BEADS).
const std::vector< double > sablib::BeadsExpandBoundaries (const std::vector< double > &y, const unsigned int n=400)
 Expands the signal boundaries by padding with a tapered sequence.
const std::vector< double > sablib::BeadsTrimBoundaries (const std::vector< double > &y, const unsigned int n=400)
 Trims the expanded signal boundaries.

Detailed Description

Baseline estimation and subtraction using Baseline Estimation And Denoising using Sparsity(BEADS)(implementation).

Author
Izadori
Note
This file includes code derived from Duval's MATLAB implemetation. Original MATLAB code is licensed under BSD 3-Clause License.

Definition in file beads.cpp.

Macro Definition Documentation

◆ _USE_MATH_DEFINES

#define _USE_MATH_DEFINES

Definition at line 38 of file beads.cpp.

Function Documentation

◆ BaselineBeads()

const std::tuple< std::vector< double >, std::vector< double > > sablib::BaselineBeads ( const std::vector< double > & y,
const unsigned int s,
const double frequency,
const double r,
const double lambda0,
const double lambda1,
const double lambda2,
const unsigned int loop = 30,
const double eps = 1e-3,
const BeadsPenalty penalty = BeadsPenalty::L1_v2 )

Performs baseline estimation and denoising using Sparsity (BEADS).

Parameters
yThe input data.
sOrder of the derivative for baseline sparsity (typically 1 or 2).
frequencySampling frequency of the signal.
rHigh-pass filter parameter (cut-off frequency relative to sampling frequency).
lambda0Sparsity parameter for the baseline.
lambda1Sparsity parameter for the first-order derivative of the signal.
lambda2Sparsity parameter for the second-order derivative of the signal.
loopMaximum number of iterations.
epsConvergence threshold.
penaltyPenalty type (L1_v1 or L1_v2).
Returns
A tuple containing (baseline, denoised signal).
Exceptions
std::invalid_argumentOne or more parameters are wrong.

Definition at line 101 of file beads.cpp.

◆ BeadsExpandBoundaries()

const std::vector< double > sablib::BeadsExpandBoundaries ( const std::vector< double > & y,
const unsigned int n = 400 )

Expands the signal boundaries by padding with a tapered sequence.

Parameters
yThe input data vector.
nThe number of elements to add at each end.
Returns
A expanded vector.
Exceptions
std::invalid_argumentThe length of y is zero.

Definition at line 257 of file beads.cpp.

◆ BeadsTrimBoundaries()

const std::vector< double > sablib::BeadsTrimBoundaries ( const std::vector< double > & y,
const unsigned int n = 400 )

Trims the expanded signal boundaries.

Parameters
yThe input data vector (expanded signal).
nThe number of elements to trim from each end.
Returns
A trimmed vector.
Exceptions
std::invalid_argumentThe length of y is zero or less than `2 * n`.

Definition at line 282 of file beads.cpp.