首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android低通滤波器和高通滤波器

Android低通滤波器和高通滤波器
EN

Stack Overflow用户
提问于 2014-06-09 19:49:39
回答 2查看 27.4K关注 0票数 23

我有一个非常基本的问题。什么是Android加速度计的低通滤波器和高通滤波器?

当我看到加速度传感器的输出时,我会查看是否没有使用任何过滤器(例如:我将手机空闲在桌子上),我得到的是z轴+ve值。现在,如果我考虑使用基础物理,它给出了精确的值(9.8Approx),小g,即由于重力引起的加速度。

为了得到线性加速度,如果我给手机添加任何力,它会改变加速度计的值,但它将是我应用的g + a。所以要得到a,为什么不能直接从加速度计得到的值中减去呢?

这有什么用呢?

我对低通的基本定义是:允许低值,高通:允许高值。

EN

回答 2

Stack Overflow用户

发布于 2016-06-19 11:16:37

如果直接从包含噪声的这些值中减去,则加速度计的输出将包含噪声。为了消除噪声,需要实现高通和低通滤波器。

票数 0
EN

Stack Overflow用户

发布于 2017-02-14 23:17:20

我通常使用这个公式从加速计传感器数据中过滤出线性传感器(如陀螺仪)数据。如果您不确定是否有内置陀螺仪传感器,请使用它。

代码语言:javascript
复制
private float[] values;
private float[] valuesN;
private float[] prev;
private float[] prevHF;
private boolean doHPF = false;

// ind - index of three dimensions (x, y, z)
private void makeHPFf() {
    for (int ind = 0; ind < 3; ind++) {
        valuesN[ind] = values[ind] * 0.002f * 9.8f;
        if (doHPF)
            values[ind] = valuesN[ind] - prev[ind] + (prevHF[ind] * 0.8f);
        prev[ind] = valuesN[ind];
        prevHF[ind] = values[ind];
    }

    if (!doHPF)
        doHPF = true;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24119672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档