zoukankan      html  css  js  c++  java
  • 一阶滤波算法

    1. 一阶滤波算法的原理 

      一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。 

      一阶低通滤波的算法公式为:

                  Y(n)=αX(n) + (1-α)Y(n-1) 

      式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。 一阶低通滤波法采用本次采样值与上次滤波输出值进行加权,得到有效滤波值,使得输出对输入有反馈作用。

    fL=a/2Pit pi为圆周率3.14… fL为采样频率

       式中 a——滤波系数;

    , t——采样间隔时间;

    例如:当t=0.5s(即每秒2次),a=1/32时;

    fL=(1/32)/(2*3.14*0.5)=0.01Hz

    2. 一阶滤波算法的程序(适用于单个采样)

     
    #define a   0.01                // 滤波系数a(0-1) 
    
    char filter(void)
    {
        baroOffset  = get_ad(); 
        baro = a * baroOffset  + (1.0f - a) * baroAlt;
        baroAlt = baro;
        return baro;  
    }
     

    3. 一阶滤波算法的不足 

       滤波系数越小,滤波结果越平稳,但是灵敏度越低;滤波系数越大,灵敏度越高,但是滤波结果越不稳定。

      一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算法。即:当数据快速变化时,滤波结果能及时跟进(灵敏度优先);当数据趋于稳定,在一个固定的点上下振荡时,滤波结果能趋于平稳(平稳度优先)。

  • 相关阅读:
    读《被绑架的中国经济》有感
    互联网世界观
    了解360 ~~《我的互联网方法论》
    了解腾讯~~《马化腾的商业帝国》
    nginx 动静分离 以及 负载均衡配置
    linux 常用命令
    solr 配置中文分词器
    solr搜索配置权重
    JDK8集合类源码解析
    JDK8集合类源码解析
  • 原文地址:https://www.cnblogs.com/huangyangquan/p/10942838.html
Copyright © 2011-2022 走看看