金牌会员
 
- 积分
- 2097
- 金钱
- 2097
- 注册时间
- 2014-3-7
- 在线时间
- 491 小时
|
发表于 2018-9-6 11:29:48
|
显示全部楼层
本帖最后由 ssssssssssss 于 2018-9-6 11:32 编辑
[mw_shl_code=c,true]static void sensorsCalculateVarianceAndMean(BiasObj*bias,Axis3f*varOut,Axis3f*meanOut)
{
u32 i;
int64_t sum[3]={0};
int64_t sumsq[3]={0};
for (i=0;i<SENSORS_NBR_OF_BIAS_SAMPLES;i++)
{
sum[0]+=bias->buffer.x;
sum[01]+=bias->buffer.y;
sum[02]+=bias->buffer.z;
sumsq[0]+=bias->buffer.x*bias->buffer.x;
sumsq[01]+=bias->buffer.y*bias->buffer.y;
sumsq[02]+=bias->buffer.z*bias->buffer.z;
}
varOut->x=(sumsq[0]-((int64_t)sum[0]*sum[0])/SENSORS_NBR_OF_BIAS_SAMPLES);
varOut->y=(sumsq[01]-((int64_t)sum[01]*sum[01])/SENSORS_NBR_OF_BIAS_SAMPLES);
varOut->z=(sumsq[02]-((int64_t)sum[02]*sum[02])/SENSORS_NBR_OF_BIAS_SAMPLES);
meanOut->x=(float)sum[0]/SENSORS_NBR_OF_BIAS_SAMPLES;
meanOut->y=(float)sum[1]/SENSORS_NBR_OF_BIAS_SAMPLES;
meanOut->z=(float)sum[2]/SENSORS_NBR_OF_BIAS_SAMPLES;
}[/mw_shl_code]
|
|