恭喜,你发布的帖子
发布于 2020-08-09 21:24:10
16楼
滤波系数选多少合适?这得看实际信号与期望值有关。结合曲线图来分析更有效率。
发一个一阶滤波的曲线图,你可以根据期望值连选择系数范围。
一阶滤波就是低通滤波,衰减高频通过低频,如果模拟电子计数过关的话,应该能够理解低通滤波。
计算周期?这个要看你需要的信号的频率来决定了。
比如你说的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。
消除干扰脉冲,最常用的就是平均值滤波+去掉最大、最小值。
很多场合,滤波是采用多种滤波算法结合来得到期望的信号的,而不是仅采用单一滤波算法。
其实,对于模拟量滤波,在输入端并联一个合适的滤波电容比什么算法都要简单高效稳定。
感谢楼上。我也是用Excel,不过我是用0和100的跳变观察滤波性能。发现有个问题,中间过程中10个100之后10个0不能回到原值。这个影响要?好考虑,因为我要做位置控制。
平均值滤波连加100个值也不用保存1个值啊。不是递推平均喔,是算术平均。加到第100个值就除以100就是了。网上10个文章10个都是一样的文字。真没好好考虑一下吗?
请填写推广理由:
分享
只看
楼主