回复:滤波程序的一些参数怎么确定好?

已锁定

Zaxife

  • 帖子

    2450
  • 精华

    31
  • 被关注

    78

论坛等级:至圣

注册时间:2008-07-24

普通 普通 如何晋级?

发布于 2020-08-10 13:00:52

19楼

展开查看
以下是引用芳季在2020-08-09 21:24:10的发言 >16楼

感谢楼上。我也是用Excel,不过我是用0和100的跳变观察滤波性能。发现有个问题,中间过程中10个100之后10个0不能回到原值。这个影响要?好考虑,因为我要做位置控制。

平均值滤波连加100个值也不用保存1个值啊。不是递推平均喔,是算术平均。加到第100个值就除以100就是了。网上10个文章10个都是一样的文字。真没好好考虑一下吗?

以下是引用Zaxife在2020-08-09 09:14:29的发言 >:滤波系数选多少合适...

引用详细内容:

滤波系数选多少合适?这得看实际信号与期望值有关。结合曲线图来分析更有效率。

发一个一阶滤波的曲线图,你可以根据期望值连选择系数范围。

一阶滤波就是低通滤波,衰减高频通过低频,如果模拟电子计数过关的话,应该能够理解低通滤波。


计算周期?这个要看你需要的信号的频率来决定了。

比如你说的400Hz(2.5ms)/50%的方波,那么根据检测测量原理中的推荐1/10滤波对0.25ms及更高频的信号进行RC滤波,那么得到的是边角圆滑的矩形波而不是实际的边角尖峰波(比如开关电源MOS管驱动波形整形)。

又比如要从AM调制广播中检波出音频信号这种也可以算是低通滤波。只取调制波的音频轮廓,过滤高频调制信号。


平均值滤波消耗RAM?很明显吧,平均值滤波需要保存很多个历史值到表中的,这些历史值都是一直保存在RAM中的。越多的模拟量使用平均值滤波,就需要越多个表,对于单片机只有1KB RAM来说,这真是太奢侈了。哪怕是PLC也是12KB RAM,如果一个表要保存16个AI就消耗32个BYTE,12KB的RAM也就300多个模拟量滤波表。而一阶滤波根本不需要历史值,所以根本就不会大量啃噬RAM,哪怕1000个滤波也不怎么占用RAM。


消除干扰脉冲,最常用的就是平均值滤波+去掉最大、最小值。


很多场合,滤波是采用多种滤波算法结合来得到期望的信号的,而不是仅采用单一滤波算法。


其实,对于模拟量滤波,在输入端并联一个合适的滤波电容比什么算法都要简单高效稳定。


1、连续10个100之后10个0不能回到原值?这个你要修改滤波系数啊,把滤波系数改到0.9试试?或者缩短计算周期。反正必须要根据实际情况来调节滤波系数。系数的意义是当前采集的值占输出值的比例,系数越大实际输出值越接近采集的值。


2、关于100个求平均值,我的想法就是每次计算的平均值都是有效值,而不是每采集完100个才计算一次平均值。比如采集1个,那么平均值肯定就是采集的值,采集到2个就是两个数的平均值,采集到99个就是这99个数的平均值。采集满100个了就先进先出,计算100个数的平均值。

就像采集温度,每100ms采集一次,然后100次周期就是10秒,我不可能每10s才更新一次温度显示值吧?我肯定每100ms都更新显示值啊。如果每10s才更新一次显示,这种***程序员会被用户打死的。

所以,这些大量的RAM是省不了的。网上的那些忽悠初学者的垃.圾文不建议参考。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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