使用24位ADC差分测量多次,如何计算平均值

2019-12-16 22:37发布

24位ADC输出是2进制补码。当负端电平高于正端时,ADC输出的最高位是1,此时如何计算多次测量结果的平均值?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
66条回答
lgc150
1楼-- · 2019-12-19 15:18
gamalot 发表于 2016-1-31 23:23
或者先向左移8位,再除以256

这样不需要判断,看上去很有技巧的样子,逼格略高

( ఠൠఠ )啊  不对  左移已经补零了
ersha4877
2楼-- · 2019-12-19 17:07
gamalot 发表于 2016-2-1 14:48
一般就是窗口平滑滤波,取最后N个读取值的平均,稍微复杂一点的可以去掉一个最高值和一个最低值

一般来 ...

谢谢了,最近在弄20位的CS5513和楼主同样的问题,负数正数相加求平均的问题,谢谢你的方法了
PCBBOY1991
3楼-- · 2019-12-19 19:34
gamalot 发表于 2016-2-1 14:33
不转换肯定是不行的,因为从ADC读回的是24位的补码,不能直接拿来用

区别只是大家转换的方法,俺的比较 ...

补码不就是可以直接计算去平均的么?
转换后还能知道AD输入的正负?
gamalot
4楼-- · 2019-12-19 22:20
PCBBOY1991 发表于 2016-2-1 20:27
补码不就是可以直接计算去平均的么?
转换后还能知道AD输入的正负?

ADC返回的是24位补码,但是C语言里是没有这个数据类型的,要先转换成32位才能进行其他运算
PCBBOY1991
5楼-- · 2019-12-19 22:35
 精彩回答 2  元偷偷看……
PCBBOY1991
6楼-- · 2019-12-20 02:48
gamalot 发表于 2016-2-1 14:48
一般就是窗口平滑滤波,取最后N个读取值的平均,稍微复杂一点的可以去掉一个最高值和一个最低值

一般来 ...

可以用滑动滤波,这样速度基本不变的。

一周热门 更多>