简介
ADC采集数据我们项目开发中经常用到,那么你是如何处理采集到的数据的呢?说实话我看到有部分同学直接拿来使用的,这样数据一旦飘逸那就是不稳定因素,有很大的潜在风险,下面介绍一下我用过的处理方式,欢迎各位坛友交流,相互学习。
一、中位值平均滤波
首先,采集一定量的数据,我一般设置数据个数为10个,采集到的10个数据存在数组中,每个采集数据间隔要有延时,无阻塞式的延时,如果一直采集速度太快的话,下一个周期的数据还没准备好,就有可能重复了。
算法的逻辑是采集的10个数据中掐头去尾,中间的值求平均,完美的过滤掉了不稳定因素。
具体算法如下图1,这个我用了很多年,存在了我的软件库中,需要的时候直接拿来使用。
二、两维数组处理数据
之前项目中用到过ADI的片外ADC采集数据24位的,采集速率很快,我们当时采集的数据量比较大,需要采集100个数据然后发给算法做分析,但是因为采集数据太快导致这100个还没处理完,就被新采集的数据覆盖了。
于是,当时采用了二维数组,把采集好的数据放到一个数组里面,正在实时采集的数据放到另一个数组里面,这样算法处理时就不会出现覆盖问题了。