尝试使用加速器LPF的android开发人员文档进行调整,但它似乎不适用于压力
float pressure_value = 0.0f;
float height = 0.0f;
float height2 = (float) 964.98;
final float alpha = (float) 0.8;
if( Sensor.TYPE_PRESSURE == event.sensor.getType() ) {
pressure_value = event.values[0];
event.values[0] = alpha * event.values[0] + (1 - alpha) * event.values[0];
event.values[1] = alpha * event.values[1] + (1 - alpha) * event.values[1];
event.values[2] = alpha * event.values[2] + (1 - alpha) * event.values[2];
有没有人有一些见解?
答案 0 :(得分:0)
压力传感器只有一个值,即event.values [0]。一个简单的低通滤波器看起来像:
pressure = alpha*event.values[0] + (1 - alpha)*pressure
极度 过度简化的解释:
对于alpha = 0.8,“新”压力值是传感器提供的实际当前压力的80%+“旧”压力值的20%。增加alpha值会使其对压力波动更敏感,较低的alpha值会降低噪音(更多过滤)。
更多解释性代码:
private float alpha = 0.8f;
private float filteredPressure = 0.0f;
@Override
public final void onSensorChanged(SensorEvent event) {
if (Sensor.TYPE_PRESSURE == event.sensor.getType()) {
float currentPressure = event.values[0];
filteredPressure = (alpha*currentPressure) + (1 - alpha)*filteredPressure;
}
}