OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13787|回复: 13

请问ADC采集的数据希望平滑一些用什么滤波方法?

[复制链接]

27

主题

89

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1382
注册时间
2017-9-5
在线时间
151 小时
发表于 2017-11-26 17:55:49 | 显示全部楼层 |阅读模式
10金钱
对于滤波不是太懂,希望指点一下。
采集的是加速度信息和磁场信息。
谢谢

最佳答案

查看完整内容[请看2#楼]

还是用一阶卡尔曼了,主要是没滞后
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

89

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1382
注册时间
2017-9-5
在线时间
151 小时
 楼主| 发表于 2017-11-26 17:55:50 | 显示全部楼层
lushp88 发表于 2017-11-27 00:57
一阶软件低通滤波器,我们采集电机电流就是用这个滤波得,当然硬件也要加一个rc滤波

还是用一阶卡尔曼了,主要是没滞后
回复

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4370
金钱
4370
注册时间
2017-5-30
在线时间
579 小时
发表于 2017-11-26 18:07:49 | 显示全部楼层
我正好拿到别人的一块裸板,自己一个一个焊上去。我就冒昧的说两句,首先是运放做电压跟随器,输入引脚接100K的电阻,输入电阻高静态电流小差模放大倍数高,抑制零点漂移和共模干扰。然后通过运放做一个滤波器(本科的模电书就有),就可以输出电压了。但是这个电压你还可以适当的抬高或者拉低,然后在接入MCU直接再考虑一下要不要再分压。以上。
回复

使用道具 举报

27

主题

89

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1382
注册时间
2017-9-5
在线时间
151 小时
 楼主| 发表于 2017-11-26 19:00:37 | 显示全部楼层
whj467467274672 发表于 2017-11-26 18:07
我正好拿到别人的一块裸板,自己一个一个焊上去。我就冒昧的说两句,首先是运放做电压跟随器,输入引脚接10 ...

额。希望编个程序滤波,不知道用哪种滤波方法比较好?
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8024
金钱
8024
注册时间
2014-8-13
在线时间
1595 小时
发表于 2017-11-26 19:40:20 | 显示全部楼层
低通就可以。还有论坛里有人介绍的卡尔曼滤波也不错。

最好实验一下,你这个还要考虑动态响应。
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2017-11-26 22:13:27 | 显示全部楼层
最简单的,采集十次取平均。
或者实用一点儿,建立一个循环队列,每采集一次数据加进队列,同时丢弃最老数据,取平均。
十六进制带我飞。
回复

使用道具 举报

13

主题

49

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
315
金钱
315
注册时间
2012-8-28
在线时间
22 小时
发表于 2017-11-27 00:55:51 来自手机 | 显示全部楼层
低通滤波器就好了
回复

使用道具 举报

13

主题

49

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
315
金钱
315
注册时间
2012-8-28
在线时间
22 小时
发表于 2017-11-27 00:57:26 来自手机 | 显示全部楼层
一阶软件低通滤波器,我们采集电机电流就是用这个滤波得,当然硬件也要加一个rc滤波
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8024
金钱
8024
注册时间
2014-8-13
在线时间
1595 小时
发表于 2017-11-27 01:17:47 | 显示全部楼层
DreamWaterPro 发表于 2017-11-26 22:13
最简单的,采集十次取平均。
或者实用一点儿,建立一个循环队列,每采集一次数据加进队列,同时丢弃最老数 ...

均值滤波有一定滞后,实时要求较高的地方,均值样本数量不宜太多,若是干扰和有效波形频率分离不是很明显的话,滤波效果会比较差。
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-11-27 12:18:50 | 显示全部楼层
本帖最后由 操作系统 于 2017-11-27 12:19 编辑

先用DMA采集数据到内存,保存在一个数组当中. 如果电压本身不会很抖动.可以使用直接求取平均值的办法.如果干扰很大.或者采用 排序大小.去掉两个最高分,去掉两个最低分.再求取平均值.如果你的处理时间不够快.那就麻烦了..要采用其它的更加先进的.原理复杂一点的方法 .微分,积分等 算法.用到一些高等数学知识..我就不懂了.
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2017-9-7
在线时间
4 小时
发表于 2017-12-25 11:35:05 | 显示全部楼层
焊个二阶低通有源滤波电路能解决问题不?
回复

使用道具 举报

27

主题

89

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
金钱
1382
注册时间
2017-9-5
在线时间
151 小时
 楼主| 发表于 2017-12-25 13:16:51 | 显示全部楼层
任之初 发表于 2017-12-25 11:35
焊个二阶低通有源滤波电路能解决问题不?

我没在硬件上改动,也不清楚是否可行。
这个还是要看你滤波到底要干嘛,我起初是想把曲线平滑一下,后来又觉得可能滤掉了一些数据,索性把滤波去掉了。
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2021-11-3
在线时间
5 小时
发表于 2021-11-5 16:01:28 | 显示全部楼层
有消抖法和限幅消抖法
回复

使用道具 举报

3

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2018-8-5
在线时间
11 小时
发表于 2021-11-5 16:13:24 | 显示全部楼层
小范围变化的时候用1阶低通滤波,瞬间拉大时就直接更新数值。这样数据又平滑,又不会在突变的时候响应严重滞后。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 22:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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