回复:本人常用的滤波程序:去极值+递推平均。整理成独立的子程序

yanxiao

版主

  • 帖子

    12164
  • 精华

    47
  • 被关注

    186

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2025-12-21 17:54:16

12楼

便于阅读程序,补充一下编程时的几个考虑:


一、假设滤波长度(深度)Num=8。

1、初始化,滤波长度置0,新数据在队列中的指针置0,指向队首。

2、初始化后第一次调用,只有一个值(没有历史数据),直接输出。

3、第二次调用,1个新值+1个历史值,两值平均后输出。

4、第三次调用,1个新值+2个历史值,去掉最大、最小值,中位值输出。

5、第四次、直到第8次调用,去掉最大、最小值,余下的进行平均。

6、大于8次以上的调用,平均数长度不再增长。


二、动态调整滤波长度。

1、滤波数变大,比如从8个变为16个。

本次调用,历史数据7个,加上新数据1个,8个数据参与滤波。

新数据加到队尾,即队列第8个位置。

继续调用,列队再次逐渐增长,直到新的长度16(队列中的历史数据是15个)。

2、滤波数据变小,比如从16个变为8个。

本次调用,历史数据取队列前7个,加上新数据1个,8个数据参与滤波。

如果新数据位置指针在界外,修正到位置0。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9000条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。