APP_Framework/Framework/: complete one order RC low pass filter.
This commit is contained in:
parent
e9af33ca78
commit
6664b23234
|
@ -1 +1,22 @@
|
||||||
#include<one_order_rc_lpf.h>
|
#include<one_order_rc_lpf.h>
|
||||||
|
void OneOrderRcLpfInit(OneOrderRcLpfHander* hander,float cutoff_fre,float sampling)
|
||||||
|
{
|
||||||
|
hander->vi = 0;
|
||||||
|
hander->fcutoff = cutoff_fre; // low pass filter cutoff frequency
|
||||||
|
hander->vo = 0;
|
||||||
|
hander->vo_prev = 0;
|
||||||
|
hander->fs = sampling; //sampling rate
|
||||||
|
}
|
||||||
|
|
||||||
|
float OneOrderRcLpfFun(OneOrderRcLpfHander *hander)
|
||||||
|
{
|
||||||
|
float rc;
|
||||||
|
float alpha1;
|
||||||
|
float alpha2;
|
||||||
|
rc = (float) 1.0/2.0/3.1415926/hander->fcutoff;
|
||||||
|
alpha1 = 1/(1+rc*hander->fs);
|
||||||
|
alpha2 = rc*hander->fs/(1+rc*hander->fs);
|
||||||
|
hander->vo = alpha1*hander->vi + alpha2 *hander->vo_prev;
|
||||||
|
hander->vo_prev = hander ->vo;
|
||||||
|
return hander->vo;
|
||||||
|
}
|
||||||
|
|
|
@ -2,4 +2,15 @@
|
||||||
#define _ONE_ORDER_RC_LPF_H
|
#define _ONE_ORDER_RC_LPF_H
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
float vi;
|
||||||
|
float vo_prev;
|
||||||
|
float vo;
|
||||||
|
float fcutoff;
|
||||||
|
float fs;
|
||||||
|
} OneOrderRcLpfHander;
|
||||||
|
|
||||||
|
void OneOrderRcLpfInit(OneOrderRcLpfHander* hander,float cutoff_fre,float sample);
|
||||||
|
float OneOrderRcLpfFun(OneOrderRcLpfHander *hander);
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue