单片机处理ADC采样数据的方法

电子说

1.3w人已加入

描述

  单片机如何处理ADC采样数据?首先一定有小伙伴有疑问,为什么还要对采样的数据进行处理呢?直接拿来用不行吗?对于这个问题,我的回答是不建议这样做,因为任何系统都会存在干扰,不进行处理就会有数据存在一定的误差。那么我进行数据处理就是要尽量避免因外界干扰引起的误差。

  在这里作者推荐两种方法,第一种方法是多次采样加权取平均,我相信很多朋友都可以想到这种方法,但在写程序的时候可以运用一些技巧,作者分享给你。首先我们ADC采集8次数据并且对这8次数据累加(可以每1ms调用该函数),累加完成后将累加结果右移3位得到最后的采样结果。当然这个方法还可以进一步改善,比如取样10次,然后去掉最大值和最小值,再对剩下的8次进行取平均。下面贴出参考程序供小伙伴参考。

adc

  当然,第一种取平均的方法能够有效抑制干扰,但因为需要多次采样,更新数据的时间会很长,比如取样8次,每1ms取样一次,那么更新数据就需要8ms时间,所以对采样的数据实时性要求不是很高的系统才可以用这种方法。所以我们第二种方法就是用在实时性比较高的系统。作者推荐的是中值滤波的方法,实现思想就是取5个数据,每次采样的新数据替换掉最老的数据,然后把中间的那个数据当做是采样数据,这样不仅可以有效抑制干扰,而且响应速度快。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
Kim123KIM 2020-11-23
0 回复 举报
你好 怎样查看你发布的全部文章啊 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分