搜索
bottom↓
回复: 23

小学水平的滤波算法不能用,请大牛指点一个水平高点的。

[复制链接]

出0入0汤圆

发表于 2017-5-24 14:50:13 | 显示全部楼层 |阅读模式
图片中红色的是原始信号,绿色的是滤波后的结果,我的目的是在检测信号的下降和上升两个事件,
我目前用的方法是把缓冲区里面的数据分成两部分,新的部分和旧的部分分别平均后相减,
如果信号像图一那样的话能凑合用,但其他图片的情况就不行了,请问实现这样的目的有什么专用的算法的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入93汤圆

发表于 2017-5-24 14:53:57 来自手机 | 显示全部楼层
我靠,果然不是小学的滤波,而是大学的微分。

出0入0汤圆

发表于 2017-5-24 15:43:00 | 显示全部楼层
先在3500的值附近作个施密特比较器再说

出0入0汤圆

 楼主| 发表于 2017-5-24 15:48:20 | 显示全部楼层
lcw_swust 发表于 2017-5-24 15:43
先在3500的值附近作个施密特比较器再说

你这个方法应该可以, 我现在准备把低于3800的区间找出来, 把这个区间的值平均了,这样应该会好很多。

出0入0汤圆

发表于 2017-5-24 15:58:30 | 显示全部楼层
这是微分啊。

算平均值作为阙值,再结合微分结果判定上升沿下降沿。

出0入0汤圆

发表于 2017-5-24 16:08:38 | 显示全部楼层
用延时去抖原理,只不过一个是按键数字,一个是AD采集的模拟量

出0入0汤圆

 楼主| 发表于 2017-5-24 16:25:45 | 显示全部楼层
TBG3 发表于 2017-5-24 15:58
这是微分啊。

算平均值作为阙值,再结合微分结果判定上升沿下降沿。

这种方法对CPU来说是很大的负荷,我现在还是想一些比较简单的方法, 目前是想办法把那些尖峰平滑了。

出0入0汤圆

发表于 2017-5-24 16:29:36 | 显示全部楼层
cemi 发表于 2017-5-24 16:25
这种方法对CPU来说是很大的负荷,我现在还是想一些比较简单的方法, 目前是想办法把那些尖峰平滑了。 ...

你这毫秒级别的信号,基本上是个MCU,就算的过来了。

出0入0汤圆

发表于 2017-5-24 16:33:53 | 显示全部楼层
比如说判断下降沿,采集到的是高电平,然后采集到一个低电平后不立即认为有下降沿了,接着采集6个点,当有4个点为低时,认为下降沿来了。这举个例子,具体多少合适需要根据你脉冲宽度进行设置。原因是这个波形就是和那个按键按下去采集到的一样,所以去抖动是最合理有效的,窃以为。

出0入0汤圆

发表于 2017-5-24 16:37:56 | 显示全部楼层
软件上实现麻烦的话,可以考虑挂个RC滤波上去。

出0入0汤圆

发表于 2017-5-24 17:21:19 | 显示全部楼层
从图上看信号很好啊,你把门槛设定为3500(上升沿门槛),3000(下降沿门槛),看不出有问题

出0入0汤圆

发表于 2017-5-24 17:58:28 来自手机 | 显示全部楼层
有个想法,有点像图像中的边缘检测,各种算子

出0入0汤圆

 楼主| 发表于 2017-5-24 18:19:46 | 显示全部楼层
wswh2o 发表于 2017-5-24 17:21
从图上看信号很好啊,你把门槛设定为3500(上升沿门槛),3000(下降沿门槛),看不出有问题 ...

我后来想到, 这个门槛是变化的,另外会有尖峰,必须要对尖峰进行处理。

出0入0汤圆

发表于 2017-5-24 18:20:08 | 显示全部楼层
IIR 或者 FIR 搭个高通滤波器...

出0入0汤圆

发表于 2017-5-24 18:25:44 | 显示全部楼层
或者用 SFFT 来分析, 但只能判断有突变, 上升还是下降还是要你自己来判断.

出0入0汤圆

发表于 2017-5-24 19:53:40 | 显示全部楼层
首先你需要一个合适滤波器频带的高阶低通滤波,因为后续处理是微分特性对毛刺很敏感。然后你再用个高阶的希尔伯特滤波器,输出峰值就是你的信号边沿

出0入22汤圆

发表于 2017-5-24 20:30:33 来自手机 | 显示全部楼层
算加速度吧

出0入0汤圆

发表于 2017-5-24 21:42:29 | 显示全部楼层
cemi 发表于 2017-5-24 18:19
我后来想到, 这个门槛是变化的,另外会有尖峰,必须要对尖峰进行处理。 ...

down=max*0.85
up=max*0.9

出0入4汤圆

发表于 2017-5-24 22:09:36 | 显示全部楼层
算信号斜率  用斜率判断

出0入0汤圆

发表于 2017-5-24 22:42:19 | 显示全部楼层
kayatsl 发表于 2017-5-24 18:20
IIR 或者 FIR 搭个高通滤波器...

哎,兄弟,这里应该要用低通吧,一高通毛刺尖峰啥的全都纤毫毕现了吧

出0入0汤圆

 楼主| 发表于 2017-5-24 22:49:56 | 显示全部楼层
yirenonege 发表于 2017-5-24 16:33
比如说判断下降沿,采集到的是高电平,然后采集到一个低电平后不立即认为有下降沿了,接着采集6个点,当有4 ...

你说的靠谱, 我用了跟你差不多的方法, 去除了那些尖峰,剩下的就跟阀值比较,出来的结果不错, 就是牺牲了一些响应的时间。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-5-25 15:23:35 来自手机 | 显示全部楼层
两段均值再求差值,本来就是差分方程。lz求滤波,最简单的还是移动平均法最好。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 02:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表