|
@@ -171,5 +171,17 @@ static void normal_sincosf(float angle, float *sin, float *cos) {
|
|
|
/* 后向差分离散化 */
|
|
/* 后向差分离散化 */
|
|
|
#define do_lpf(value, sample, filter_constant) ((sample * filter_constant + value)/(1.0f + filter_constant))
|
|
#define do_lpf(value, sample, filter_constant) ((sample * filter_constant + value)/(1.0f + filter_constant))
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * A simple avarage filter
|
|
|
|
|
+*/
|
|
|
|
|
+typedef struct {
|
|
|
|
|
+ int len;
|
|
|
|
|
+ float *buff;
|
|
|
|
|
+ int idx;
|
|
|
|
|
+ int sum;
|
|
|
|
|
+}avg_filter_t;
|
|
|
|
|
+void avg_filter_init(avg_filter_t *f, int len);
|
|
|
|
|
+float avg_filter_do(avg_filter_t *f, float sample);
|
|
|
|
|
+
|
|
|
#endif /* _Fast_Math_H__ */
|
|
#endif /* _Fast_Math_H__ */
|
|
|
|
|
|