【问题标题】:butterworth low-pass filter for android安卓的巴特沃斯低通滤波器
【发布时间】:2012-05-03 22:54:10
【问题描述】:

我目前正在尝试制作一个粗略的计步器。 它已经到了我正在读取信号并将它们绘制在 Excel 上进行分析的阶段...... 由于步进反弹和其他各种原因,数据非常嘈杂。我正在采用单个加速度矢量,并尝试使用我通过 york cs 部门找到的以下 DSP 滤波器设计工具来设计巴特沃斯低通滤波器:

http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html

可能是我为必要的字段输入了错误的值,但同时我在将 Ansi“C”代码转换为 Java 时遇到了麻烦!

有人能伸出援手吗?

【问题讨论】:

  • 我不确定在不理解的情况下盲目地将C翻译成Java是正确的方法。无论如何,对于行人定位,请参阅Android accelerometer accuracy (Inertial navigation)。特别是,“Enhancing the Pedometers of Pingometers Using a Single Accelerometer”给出了一个简单的计步器算法。

标签: java android filtering accelerometer


【解决方案1】:

感谢回复,其实我已经实现了一个非常基础的移动检测版本,基于:http://www.vogella.com/articles/AndroidSensor/article.htm

if (event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION) { // check sensor type
    float x = event.values[0];
    float y = event.values[1];
    float z = event.values[2];

    float accelationSquareRoot = (x * x + y * y + z * z) / (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
    _SR.setText("accelationSquareRoot" + String.valueOf(accelationSquareRoot)); // display 3D acceleration vector
    long actualTime = System.currentTimeMillis();
    if (accelationSquareRoot >= progressDouble) {
        if (actualTime - lastUpdate < 15) { 
            return;
        }
        lastUpdate = actualTime;
        ++count;
    } 
}

过滤器更多的是显示对加速度计工作原理的一些分析,并找出我是否可以使其更准确。

【讨论】:

    猜你喜欢
    • 2019-10-09
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 2018-09-24
    相关资源
    最近更新 更多