如何将数据波形用数字滤波方法保留其直流部分

[复制链接]
5536|12
 楼主| gdoujia 发表于 2013-2-19 11:04 | 显示全部楼层 |阅读模式
如下图, 此波形的直流部分在200左右,但波形上上下下的,我想将它滤波成在一直线上面,但是用IIR滤波后,虽然在一直线上面,但波形的直流部分就跑到0左右去了,请问各位有没有好的方法可以解决.

本帖子中包含更多资源

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

×
千里风123 发表于 2013-2-19 11:25 | 显示全部楼层
滤波器能滤直流吗?硬件或软件上有隔直的处理?
 楼主| gdoujia 发表于 2013-2-19 11:48 | 显示全部楼层
可以,我用IIR滤波后波形确实在一直线上了,只不过是在0这条直线上,而我想它滤完波后在200这条直线上。
luohui5003 发表于 2013-2-19 12:00 | 显示全部楼层
IIR滤波都已经实现了,那就得到了直流和交流信号了,将直流信号求平均值再加上滤波之后的交流信号不就ok了嘛!
acgean 发表于 2013-2-19 12:24 | 显示全部楼层
是的,求平均值就可以得到 200 了
千里风123 发表于 2013-2-19 14:11 | 显示全部楼层
你这个IIR明显应该是低通滤波器来着,按常理,滤波后只剩下直流信号(交流剩下多少,和你的滤波器参数有关),至于为什么滤波前后直流电平发生变化,可能是你的硬件或软件做了隔直处理。
 楼主| gdoujia 发表于 2013-2-19 14:13 | 显示全部楼层
现在不知道直流信号啊,原始信号经滤波后得到交流信号。也就是说原始信号可能在200,300或400等左右,但是经过滤波后全部都是0左右。
千里风123 发表于 2013-2-19 14:20 | 显示全部楼层
用IIR可能不好解决这个问题,对原曲线求均值的方法应该可以直接得到比较平的新曲线,如果你不存在延时的问题的话,每个点都可以用N个采样点之和/N来得到,N越大,曲线越平,但延时越大,N越小,曲线越不平(滤波效果差),但延时小,试下这个方法。
 楼主| gdoujia 发表于 2013-2-19 14:29 | 显示全部楼层
千里风123 发表于 2013-2-19 14:20
用IIR可能不好解决这个问题,对原曲线求均值的方法应该可以直接得到比较平的新曲线,如果你不存在延时的问 ...

好的,谢谢,我试试,延时倒没关系,就是可能没那么多RAM来存。
大道至简 发表于 2013-2-19 22:38 | 显示全部楼层
直接累加求平均值,这样最简单
大道至简 发表于 2013-2-19 22:45 | 显示全部楼层
滤波器都是针对交流的,你IIR之后直流会归零,太正常太正常太正常太正常太正常太正常太正常太正常了
huangxz 发表于 2013-2-19 22:47 | 显示全部楼层
数字滤波用FIR的简单一点吧,如果阶数高运算会比较慢啊
cool_coder 发表于 2013-2-20 13:15 | 显示全部楼层
把你设计的滤波器幅频曲线发上来看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

212

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部