首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中值滤波器的输出是错误的。什么是正确的中值滤波算法?

中值滤波器的输出是错误的。什么是正确的中值滤波算法?
EN

Stack Overflow用户
提问于 2016-06-25 20:33:36
回答 1查看 211关注 0票数 1

我想写一个一维中值滤波器来消除信号中的毛刺。我写了我的中值滤波器代码在matlab和ı上,比较它与medfilt1函数输出。我的中值滤波器不工作了。

--我的中值滤波器阶数是8。

在我的实现中,当数据到来时,我填充数组(数组的大小是8)。当输入数据计数为8时,我取中间值并将该中间值写入中值滤波器输出数组。然后我等待下一个8个数据。当ı获取8个数据时,ı获取中间值,并将该中间值写入中值滤波器输出数组。诸若此类。(我实现了排序算法,并对其进行了ı测试。它运行良好)。

这是我的截图,

我的传入数据的颜色是红色。matlab的medfilt1的输出是绿色的。我的中值滤波器是蓝色的。

Overall picture

blown-up image

我想我的算法是错的,但是我不知道什么是正确的算法?

EN

回答 1

Stack Overflow用户

发布于 2016-06-25 22:45:58

您的实现是错误的,可能在两个方面(很难说,因为您没有向我们展示您的代码)。

  1. 您应该一次滚动一个元素,而不是一次滚动8个元素。也就是说,在取中值之前,您应该只删除最旧的元素,而只添加最新的元素。(请注意,您的输出频率是原来的8倍,因为您要替换所有8个元素。)
  2. 您说您取中间值。中间值不是中间值。但也许你忘了告诉我们,你是先排序的?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38028575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档