1234567891011121314151617181920212223242526 |
- /*
- * lowpass.c
- *
- * Created on: 2023Äê4ÔÂ3ÈÕ
- * Author: wangd
- */
- #include "lowpass.h"
- // cutoff khz ,Ts ms
- //cutoff Ts Q12
- long lowpassfilter(long sample_1,long sample,long cutoff,long Ts)
- {
- //1.0f/(M_2PI*cutoff) rc = 1.0f/(M_2PI*cutoff)
- //alpha = Ts/(Ts + rc) = 1/(1 + Ts*2*pi*f)
- long t = Ts*cutoff>>12;
- long rcf = (25736*t)>>12;// M_2PI 25736
- long Hg = _IQ12div(4096,rcf);
- long alpha = _IQ12div(4096,4096+Hg);
- long result = (4096-alpha)*sample_1+alpha*sample;
- return result>>12;
- }
|