liba 0.1.15
An algorithm library based on C/C++
 
Loading...
Searching...
No Matches
Low Pass Filter
Collaboration diagram for Low Pass Filter:

Data Structures

struct  a_lpf
 instance structure for Low Pass Filter More...
 

Macros

#define A_LPF_1(alpha)
 
#define A_LPF_2(fc, ts)
 
#define A_LPF_GEN(fc, ts)
 

Typedefs

typedef struct a_lpf a_lpf
 instance structure for Low Pass Filter
 

Functions

a_float a_lpf_gen (a_float fc, a_float ts)
 generate for Low Pass Filter
 
void a_lpf_init (a_lpf *ctx, a_float alpha)
 initialize for Low Pass Filter
 
a_float a_lpf_iter (a_lpf *ctx, a_float x)
 calculate for Low Pass Filter
 
void a_lpf_zero (a_lpf *ctx)
 zeroing for Low Pass Filter
 

Detailed Description

Macro Definition Documentation

◆ A_LPF_1

#define A_LPF_1 ( alpha)
Value:
{a_float_c(alpha), 0}
#define a_float_c(x)
static cast to floating-point number
Definition a.h:1000

◆ A_LPF_2

#define A_LPF_2 ( fc,
ts )
Value:
{A_LPF_GEN(fc, ts), 0}

◆ A_LPF_GEN

#define A_LPF_GEN ( fc,
ts )
Value:
#define A_FLOAT_1_TAU
Definition math.h:249

Function Documentation

◆ a_lpf_gen()

a_float a_lpf_gen ( a_float fc,
a_float ts )

generate for Low Pass Filter

\begin{cases} \alpha=\frac{T_s}{RC+T_s},&\alpha\in[0,1]\\ RC=\frac{1}{2\pi f_c}. \end{cases}

\[ \alpha=\frac{T_s}{\frac{1}{2\pi f_c}+T_s} \]

Parameters
[in]fccut-off frequency unit(hz)
[in]tssampling time unit(s)
Returns
filter coefficient [0,1]

◆ a_lpf_init()

void a_lpf_init ( a_lpf * ctx,
a_float alpha )

initialize for Low Pass Filter

Parameters
[in,out]ctxpoints to an instance of Low Pass Filter
[in]alphafilter coefficient [0,1]

◆ a_lpf_iter()

a_float a_lpf_iter ( a_lpf * ctx,
a_float x )

calculate for Low Pass Filter

\[ V_{\mathrm o}(n)=(1-\alpha)V_{\mathrm o}(n-1)+\alpha V_{\mathrm i}(n) \]

Parameters
[in,out]ctxpoints to an instance of Low Pass Filter
[in]xinput value
Returns
output value

◆ a_lpf_zero()

void a_lpf_zero ( a_lpf * ctx)

zeroing for Low Pass Filter

Parameters
[in,out]ctxpoints to an instance of Low Pass Filter