找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2679|回复: 5
打印 上一主题 下一主题
收起左侧

加权递推平均滤波程序 请问一下各位大佬,这个加权滤波为什么要加权啊?

[复制链接]
跳转到指定楼层
楼主
ID:586048 发表于 2020-5-29 19:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. /*
  2. A、名称:加权递推平均滤波法
  3. B、方法:
  4.     是对递推平均滤波法的改进,即不同时刻的数据加以不同的权;
  5.     通常是,越接近现时刻的数据,权取得越大。
  6.     给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。
  7. C、优点:
  8.     适用于有较大纯滞后时间常数的对象,和采样周期较短的系统。
  9. D、缺点:
  10.     对于纯滞后时间常数较小、采样周期较长、变化缓慢的信号;
  11.     不能迅速反应系统当前所受干扰的严重程度,滤波效果差。
  12. E、整理:shenhaiyu 2013-11-01
  13. */

  14. int Filter_Value;

  15. void setup() {
  16.   Serial.begin(9600);       // 初始化串口通信
  17.   randomSeed(analogRead(0)); // 产生随机种子
  18. }

  19. void loop() {
  20.   Filter_Value = Filter();       // 获得滤波器输出值
  21.   Serial.println(Filter_Value); // 串口输出
  22.   delay(50);
  23. }

  24. // 用于随机产生一个300左右的当前值
  25. int Get_AD() {
  26.   return random(295, 305);
  27. }

  28. // 加权递推平均滤波法
  29. #define FILTER_N 12
  30. int coe[FILTER_N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};    // 加权系数表
  31. int sum_coe = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12; // 加权系数和
  32. int filter_buf[FILTER_N + 1];
  33. int Filter() {
  34.   int i;
  35.   int filter_sum = 0;
  36.   filter_buf[FILTER_N] = Get_AD();
  37.   for(i = 0; i < FILTER_N; i++) {
  38.     filter_buf[i] = filter_buf[i + 1]; // 所有数据左移,低位仍掉
  39.     filter_sum += filter_buf[i] * coe[i];
  40.   }
  41.   filter_sum /= sum_coe;
  42.   return filter_sum;
  43. }
复制代码

对比滑动平均滤波(递推平均滤波)它的优势是什么,看上去好像就灵敏度高了一些

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:586048 发表于 2020-5-29 20:07 | 只看该作者
本帖最后由 hzw854025403 于 2020-5-29 20:08 编辑

下面是我对灵敏度和滞后时间的理解,对不对
2.灵敏度高是什么意思:
        灵敏度是指 ADC采集到的值实际反映到输出结果的时间,不会被之前的数据所拖累,
        说白了就是采集数据实时反映的速度,灵敏度越高,对ADC采集的值反映更快

3.滞后时间:
被控对象的被控变量的变化落后于干扰的现象叫滞后
滞后时间与灵敏度成反比,灵敏度越高,滞后时间就越短,
但是,在10个滤波算法中,灵敏度越低的滤波效果就越平滑,对于偶然的脉冲干扰越差
回复

使用道具 举报

板凳
ID:586048 发表于 2020-5-29 20:12 | 只看该作者
加权的实际意义在于那?如果我不加权,就单单递推平均滤波好像也差不多。
回复

使用道具 举报

地板
ID:162664 发表于 2020-5-30 22:29 | 只看该作者
建议看看《匠人手记》。毕竟你发的这段程序是出自该书作者n多年前的帖子。书中有详细注明。
怎么理解我觉得用过的人或者有足够深刻理解的人讲的相对好些,我没用过这种方式不好评论。
回复

使用道具 举报

5#
ID:586048 发表于 2020-6-1 09:54 | 只看该作者
gxslxxm 发表于 2020-5-30 22:29
建议看看《匠人手记》。毕竟你发的这段程序是出自该书作者n多年前的帖子。书中有详细注明。
怎么理解我觉 ...

谢谢!我已经知道为什么了
回复

使用道具 举报

6#
ID:586048 发表于 2020-6-1 10:02 | 只看该作者
链接: https://pan.baidu.com/s/1WZqy6oCJsQ9ph_OtyXV5YA 提取码: 3dy1
这个是楼上说的匠人笔记以及我对加权递推平均滤波的一些看法,有兴趣的可以看一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表