Simulink学习笔记之:一阶低通滤波算法

一、概述

  一阶低通滤波算法是一种比较常用的滤波算法,又称一阶惯性滤波,或一阶低通滤波。算法公式如下:

       Y(n)=k*X(n)+ (1-k)Y(n-1);        ( Y(n)为本次输出,k为滤波系数,Y(n-1)为上次输出)

  从公式即可看出结果是对本次输出和上次输出进行加权后输出。

  网上对该滤波算法的优缺点总结的优缺点如下:

       优点:

  -采用数字滤波算法来实现动态的RC滤波,则能很好的克服模拟滤波器的缺点; 
  -在模拟常数要求较大的场合这种算法显得更为实用; 
  -其对于周期干扰有良好的抑制作用; 
  -比较节省RAM空间;

  缺点

  -不足之处是带来了相位滞后,导致灵敏度低; 
  -同时它不能滤除频率高于采样频率的二分之一(称为奈奎斯特频率)的干扰(例如采样频率为100Hz,则它不能滤除50Hz以上的干扰信号)对于高于奈奎斯特频率的干扰信号,应该采用模拟滤波器;
  -对没有乘、除法运算指令的单片机来说,程序运算工作量较大;

  关于滤波系数k的总结如下:

  1、滤波系数越小,滤波结果越平稳,但是灵敏度越低;

       2、滤波系数越大,灵敏度越高,但是滤波结果越不稳定;

    3、当数据快速变化时,滤波结果能及时跟进(灵敏度优先);

      4、当数据趋于稳定,在一个固定的点上下振荡时,滤波结果能趋于平稳(平稳度优先);

二、模型的搭建

  模型的搭建如下图。

  

  引入一个带噪声的正弦波,k=0.5时的滤波效果如图。通过不断调整k系数即可得到较好的滤波效果了。

  

       在模型定点化的时候,经常需要根据上下限以及精度进行取舍,此时还需要注意滤波后的结果与实际结果的误差是否满足需求。

  如,本次输入信号为15,上次输入信号为14,滤波系数为0.85,按照公式本次输出信号=15*0.85+14*(1-0.85)=14.85。若此时取整则实际输出为15。

猜你喜欢

转载自www.cnblogs.com/azhiaut/p/9263587.html
今日推荐