APP_Framework/Framework/: complete one order RC low pass filter.

This commit is contained in:
chunyexixiaoyu 2021-08-17 16:25:24 +08:00
parent e9af33ca78
commit 6664b23234
2 changed files with 33 additions and 1 deletions

View File

@ -1 +1,22 @@
#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;
}

View File

@ -2,4 +2,15 @@
#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