• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

基于Numpy.convolve使用Python实现滑动平均滤波的思路详解

python 搞代码 4年前 (2022-01-09) 73次浏览 已收录 0个评论

1.滑动平均概念

滑动平均滤波法(又称递推平均滤波法),时把连续取N个采样值看成一个队列%20,队列的长度固定为N%20,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) %20把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4

优点: %20对周期性干扰有良好的抑制作用,平滑度高 %20适用于高频振荡的系统 

缺点: %20灵敏度低 %20对偶然出现的脉冲性干扰的抑制作用较差 %20不易消除由于脉冲干扰所引起的采样值偏差 %20不适用于脉冲干扰比较严重的场合 %20比较浪费RAM 

2.解决思路

可以发现滑动平均滤波法计算很类似与一维卷积的工作原理,滑动平均的N就对应一维卷积核大小(长度)。

步长会有些区别,滑动平均滤波法滑动步长为1,而一维卷积步长可以自定义。还有区别就是一维卷积的核参数是需要更新迭代的,而滑动平均滤波法核参数都是一。

我们应该怎么利用这个相似性呢?其实也很简单,只需要把一维卷积核大小(长度)和N相等,步长设置为1,核参数都初始为1就可以了。由于一维卷积具备速度快,然后我们就可以使用一维卷积来实现这个功能了,快速高效。

使用深度学习框架实现这个功能是否有些大材小用了?是有些大材小用了,因为这里使用卷积的核参数不用更新,其实没必要使用复杂的深度学习框架,如果Numpy中本文来源gaodai$ma#com搞$$代**码)网@可以实现这些功能就更简单方便了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:基于Numpy.convolve使用Python实现滑动平均滤波的思路详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址