我试图在过去的几秒钟内存储平均光照水平(使用光线传感器)以在比较中使用以调用另一个功能,如果当前光照水平约为平均。Android:获取平均传感器值
我的问题是我不完全确定如何去存储平均值。
我假设你将沿着
while(sensorUpdateTime + sampleTime < CurrentTime)
average += currentValue/updatesSampleRate;
我就如何储存平均损失是正中下怀的线做一些事情。
我试图在过去的几秒钟内存储平均光照水平(使用光线传感器)以在比较中使用以调用另一个功能,如果当前光照水平约为平均。Android:获取平均传感器值
我的问题是我不完全确定如何去存储平均值。
我假设你将沿着
while(sensorUpdateTime + sampleTime < CurrentTime)
average += currentValue/updatesSampleRate;
我就如何储存平均损失是正中下怀的线做一些事情。
如果采样率是相当恒定的,你可以将值存储在数组中,并做“圆”的更新(使用数组[将SampleNumber%array.length]找到删掉最早的值。
然后你只。减去删掉值超出保持总和,并增加新的价值
这种方式你平均值过去array.length传感器读数而且你还可以得到方差 - 只是不停平方传感器值的总和,然后:。
sigma = sqr(MX2-MX)
平均值只是低通滤波器的一个特例。它会引入延迟,但如果没有问题,您可以使用它。您有一个低通滤波器实现的伪代码。您只需修改alfa
参数。您可以将其应用于最后的N个值。
昨晚我在附近玩耍,我发现我可以创建一个天文台,并用它来每秒钟打勾。 但是我也认为,由于传感器只需要短时间工作,所以我不需要平均值,只需将值设置为最初打开所有内容时的值即可。 – Nexion
看完这个评论后,我不明白你真正想要什么 – jap1968