C语言 滤波 去掉一个最大值,去掉一个最小值,求平均值

//去掉一个最大值,去掉一个最小值,求平均值
#define BUF_DEEP 3
#define CHX_NUM 3
static uint32_t ValueFiltrate(uint8_t chx,uint32_t Value)
{
	static uint32_t ValueTempBuf[CHX_NUM][BUF_DEEP];
	static uint8_t point[CHX_NUM] = {0};
	uint32_t Max = 0;
	uint32_t Min = 0xffffffff;
	uint32_t Sum = 0;
	if(chx >= CHX_NUM)
		return 0;
	
	ValueTempBuf[chx][point[chx]] = Value;
	point[chx] ++;
	if(point[chx] == BUF_DEEP)
		point[chx] = 0;
	
	for(uint8_t i = 0;i<BUF_DEEP;i++)
	{
		if(ValueTempBuf[chx][i] >= Max)
			Max = ValueTempBuf[chx][i];
		if(ValueTempBuf[chx][i] <= Min)
			Min = ValueTempBuf[chx][i];
		
		Sum += ValueTempBuf[chx][i];
	}
	return (Sum - Max - Min)/(BUF_DEEP-2);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值