RLSFilter 0.0.0
C++ RLS filter
Loading...
Searching...
No Matches
rls_filter::RLSFilter< T, N > Class Template Reference

#include <RLSFilter.h>

Public Types

using VectorXt = Matrix<T, N, 1>
using MatrixXt = Matrix<T, N, N>

Public Member Functions

template<int N1 = N, EnableIfB<(N1 > 0)> = 0>
 RLSFilter (T lam, T delta)
template<int N1 = N, EnableIfB<(N1==-1)> = 0>
 RLSFilter (unsigned int n, T lam, T delta)
void update (const VectorXt &x, T y)
predict (const VectorXt &x) const noexcept
void setEstimatedCoefficients (const VectorXt &w0)
void setForgettingFactor (double lam)
void setInitialCovarianceMatrixGain (double delta)
const VectorXtestimatedCoefficients () const noexcept
a_priori_err () const noexcept
const VectorXtgains () const noexcept
const MatrixXtP () const noexcept
unsigned long long count () const noexcept
void reset () noexcept
 Reset filter to initial values.

Private Attributes

unsigned int n_
lam_
lam_inv_
delta_
VectorXt w_
MatrixXt P_
MatrixXt P_supp_
VectorXt g_
err_
unsigned long long count_

Detailed Description

template<typename T, int N>
class rls_filter::RLSFilter< T, N >

Template class implementing a Recursive Least Square (RLS) filter, managing both static and dynamic implementation.

Template Parameters
Tfilter data values type
Nfilter order(Static) or -1 (Dynamic)

Member Typedef Documentation

◆ MatrixXt

template<typename T, int N>
using rls_filter::RLSFilter< T, N >::MatrixXt = Matrix<T, N, N>

◆ VectorXt

template<typename T, int N>
using rls_filter::RLSFilter< T, N >::VectorXt = Matrix<T, N, 1>

Constructor & Destructor Documentation

◆ RLSFilter() [1/2]

template<typename T, int N>
template<int N1 = N, EnableIfB<(N1 > 0)> = 0>
rls_filter::RLSFilter< T, N >::RLSFilter ( T lam,
T delta )
inline

Recursive least square filter static ctor

Parameters
lam- Forgetting factor
delta- Initial gain value of matrix P
Here is the call graph for this function:

◆ RLSFilter() [2/2]

template<typename T, int N>
template<int N1 = N, EnableIfB<(N1==-1)> = 0>
rls_filter::RLSFilter< T, N >::RLSFilter ( unsigned int n,
T lam,
T delta )
inline

Recursive least square filter dynamic ctor

Parameters
n- Filter order
lam- Forgetting factor
delta- Initial gain value of matrix P
Here is the call graph for this function:

Member Function Documentation

◆ a_priori_err()

template<typename T, int N>
T rls_filter::RLSFilter< T, N >::a_priori_err ( ) const
inlinenoexcept

Get a priori estimate error

Returns
a priori error

◆ count()

template<typename T, int N>
unsigned long long rls_filter::RLSFilter< T, N >::count ( ) const
inlinenoexcept

Get number of performed updates

Returns
update count

◆ estimatedCoefficients()

template<typename T, int N>
const VectorXt & rls_filter::RLSFilter< T, N >::estimatedCoefficients ( ) const
inlinenoexcept

Get estimated filter coefficients

Returns
vector of estimated filter coefficients

◆ gains()

template<typename T, int N>
const VectorXt & rls_filter::RLSFilter< T, N >::gains ( ) const
inlinenoexcept

Get filter gains vector

Returns
filter gains vector

◆ P()

template<typename T, int N>
const MatrixXt & rls_filter::RLSFilter< T, N >::P ( ) const
inlinenoexcept

Get filter covariance matrix

Returns
filter covariance matrix

◆ predict()

template<typename T, int N>
T rls_filter::RLSFilter< T, N >::predict ( const VectorXt & x) const
inlinenoexcept

Estimate filter output

Parameters
x
Returns
a priori output estimate
Here is the caller graph for this function:

◆ reset()

template<typename T, int N>
void rls_filter::RLSFilter< T, N >::reset ( )
inlinenoexcept

Reset filter to initial values.

◆ setEstimatedCoefficients()

template<typename T, int N>
void rls_filter::RLSFilter< T, N >::setEstimatedCoefficients ( const VectorXt & w0)
inline

Set filter coefficient values

Parameters
w0- Coefficient values

◆ setForgettingFactor()

template<typename T, int N>
void rls_filter::RLSFilter< T, N >::setForgettingFactor ( double lam)
inline

Set forgetting factor value

Parameters
lam- Forgetting factor value
Here is the caller graph for this function:

◆ setInitialCovarianceMatrixGain()

template<typename T, int N>
void rls_filter::RLSFilter< T, N >::setInitialCovarianceMatrixGain ( double delta)
inline

Set initial covariance matrix gain

Parameters
delta
Here is the caller graph for this function:

◆ update()

template<typename T, int N>
void rls_filter::RLSFilter< T, N >::update ( const VectorXt & x,
T y )
inline

Update filter with new data

Parameters
x- Input vector
y- Output value
Here is the call graph for this function:

Member Data Documentation

◆ count_

template<typename T, int N>
unsigned long long rls_filter::RLSFilter< T, N >::count_
private

Count of filter updates

◆ delta_

template<typename T, int N>
T rls_filter::RLSFilter< T, N >::delta_
private

Initial gain value of matrix P

◆ err_

template<typename T, int N>
T rls_filter::RLSFilter< T, N >::err_
private

A priori error

◆ g_

template<typename T, int N>
VectorXt rls_filter::RLSFilter< T, N >::g_
private

Filter gains

◆ lam_

template<typename T, int N>
T rls_filter::RLSFilter< T, N >::lam_
private

Forgetting factor

◆ lam_inv_

template<typename T, int N>
T rls_filter::RLSFilter< T, N >::lam_inv_
private

Inverse forgetting factor

◆ n_

template<typename T, int N>
unsigned int rls_filter::RLSFilter< T, N >::n_
private

Filter order

◆ P_

template<typename T, int N>
MatrixXt rls_filter::RLSFilter< T, N >::P_
private

Inverse covariance error matrix

◆ P_supp_

template<typename T, int N>
MatrixXt rls_filter::RLSFilter< T, N >::P_supp_
private

Inverse covariance error matrix

◆ w_

template<typename T, int N>
VectorXt rls_filter::RLSFilter< T, N >::w_
private

Filter coefficients vector


The documentation for this class was generated from the following file: