

#ifndef __FILTER_H__
#define	__FILTER_H__

#include "config.h"

//----------------------------------------------------------

// 中位值平均滤波器
int MAFilter(int * pBuff, int len);

//----------------------------------------------------------

// 加权递推平均滤波器(线性权值)
int WRAFilter(int * pBuff, int len);

//----------------------------------------------------------

// 一阶低通滤波
typedef struct
{
	float f1value;
	float lowpassxs;
}LPF1stData;

#ifdef _IN_FILTER_C
// 参考默认值
const LPF1stData defaultLPF1st =
{
	-1,
	0.5f,
};
#else
extern const LPF1stData defaultLPF1st;
#endif

int LPF1st(LPF1stData * pLpf1st, int newData);

//----------------------------------------------------------
// 二阶滤波
typedef struct
{
	float f2value;
	//
	float b0;
	float a1;
	float a2;

	float preout;
	float lastout;
}LPF2ndData;

#ifdef _IN_FILTER_C
// 参考默认值
// 截止频率(中心频率f0):30Hz 采样频率fs:500Hz
const LPF2ndData defaultLPF2nd =
{
	-1,
	0.1883633f,
	1.023694f,
	0.2120577f,
	0,
	0,
};
#else
extern const LPF2ndData defaultLPF2nd;
#endif

int LPF2nd(LPF2ndData * pLpf2nd, int newData);

//----------------------------------------------------------





#endif

