关于递推平均滤波的计算

/*********************************************************************\
*  Function:求数组平均值
*  Parameters: 
*  input:	 无
*  Returns: 平均值
*  Description: entertemp :作用类似于指针,指向新加入数据的下一位
* 						tempaddnum :十个数据的和
\********************************************************************/
int16_t filter_outputtemp(void)
{
	static uint8_t entertemp = 0 ;
	static int16_t TempArray[10] = 0 ;
	static int16_t tempaddnum = 0 ;
	int16_t returntemp = 0 ;
	
	tempaddnum -= TempArray[entertemp] ;  //  将数组中最先进入的数据从数据和中删除
	tempaddnum += temp ;							  //  将数组中最新的数据加到数据和中
	TempArray[entertemp] = temp ;				  //  将老的数据替换为新的数据
	entertemp++ ;											  //  指向下一个老的数据
	if(9 < entertemp)										  // 判断指向是否超出数组范围 
	{
		entertemp = 0 ;
	}
	else
	{}
 
	returntemp = tempaddnum/10;				//  计算平均值
	
	return returntemp ;
}

/************************* End Function ******************************/

取十个数据的平均值,一个新的数据进来,需要将数组中最老的数据替换掉。函数进来后,先将最先进入数组的元素删除,再将新的数据存放到刚删除数据的位置并计算累加和,entertemp后移一位。
优点是不需要循环求和、不需要数组排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值