Filtre passe bas simple
Diff: FiltrePB.cpp
- Revision:
- 2:46a658fe2f70
- Parent:
- 1:999ae031e7c1
- Child:
- 3:79a6e3d33887
--- a/FiltrePB.cpp Mon Feb 15 15:16:59 2016 +0000 +++ b/FiltrePB.cpp Mon Feb 15 17:19:56 2016 +0000 @@ -3,17 +3,17 @@ FiltrePB::FiltrePB(){ } -FiltrePB::FiltrePB(float fc, float Ts){ - vep=vsp=0.0; - tau=1.0/(fc*2*3.1415); //calcul de la constante de temps - a=1.0/(1+(2*tau/Ts)); //calcul du coefficient a du filtre - b=(1-(2*tau/Ts))*a; //calcul du coefficient b du filtre +FiltrePB::FiltrePB(float fc, float Ts) : Ts_m(Ts), fc_m(fc){ + vep_m=vsp_m=vs_m=0.0; + tau_m=1.0/(fc_m*2*3.1415); //calcul de la constante de temps + a_m=1.0/(1+(2*tau_m/Ts_m)); //calcul du coefficient a du filtre + b_m=(1-(2*tau_m/Ts_m))*a_m; //calcul du coefficient b du filtre } -float FiltrePB::FiltreExe(float ve){ - vs=a*ve+a*vep+b*vsp; - vep=ve; - vsp=vs; - return vs; +float FiltrePB::compute(float ve){ + vs_m=a_m*ve+a_m*vep_m+b_m*vsp_m; + vep_m=ve; + vsp_m=vs_m; + return vs_m; }