算法问题求解:环形变量如何求平均值

2019-03-24 10:54发布

本帖最后由 qiushenghua 于 2014-9-9 18:04 编辑

在工程中遇到了这么个问题:
传感器传递过来的数据误差比较大,为了提高测量精度,需要对传值求平均值。
初步计划对连续采得的5个数求平均值并认为其是这个变量的近似值。
但是,尴尬的问题来了:
需要计算的变量是一个角度量,取值范围在0-359之间,在0度附近的时候,获得的数据可能是0-5到355-359之间的任意一个数。
举个栗子:采样的数据是1,2,359,358,0,比较容易的可以看出,正确的平均值应该是0才对,可是,按照(1+2+359+358+0)/5计算,结果是144,与正确值0相差甚远。有没有什么好的算法可以对这样的环形值域变量求取平均值? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
sint27
1楼-- · 2019-03-25 06:22
提个问题,难道在测量359°附近时不会出现0、1、2之类的数值
qiushenghua
2楼-- · 2019-03-25 08:18
 精彩回答 2  元偷偷看……
sint27
3楼-- · 2019-03-25 08:39
qiushenghua 发表于 2014-9-10 09:45
当然会啊,提出的问题就是解决这个的。
平均值是359和0相差不大,都可以认为是准确值,但是如果直接算的 ...

我以为0和359是区别很大的,那样的话以第一个数据为基准的话就不太合理了
既然0和359对于你来说没有太大区别,那是我多虑了
tianshuihu
4楼-- · 2019-03-25 10:55
sint27 发表于 2014-9-10 10:51
我以为0和359是区别很大的,那样的话以第一个数据为基准的话就不太合理了
既然0和359对于你来说没有太大 ...

为什么说"以第一个数据为基准的话就不太合理了"

对于下面两个等效序列,分别以第一个数据为基准进行变换
思路如下
原始数据         ——> 预处理                     —— > 求平均值 —— >周期变换
358 1 357 0 2  ——> 358 361 357 360 362 —— > 359.6     ——> 359.6
1 357 0 2 358  ——> 1 -3 0 2 -2                —— > -0.4        ——> 359.6

效果是一样的啊

sint27
5楼-- · 2019-03-25 16:26
 精彩回答 2  元偷偷看……
sint27
6楼-- · 2019-03-25 19:12
本帖最后由 sint27 于 2014-9-10 13:47 编辑
tianshuihu 发表于 2014-9-10 11:54
为什么说"以第一个数据为基准的话就不太合理了"

对于下面两个等效序列,分别以第一个数据为基准进行变 ...

就像你举的两个例子,结果都是359,是不是有可能实际上角度是0°或者1°然后通过测量计算出来是359°呢
这在数值上差别非常大,但是楼主一旦说对于项目应用来说0°和359°没什么区别,那你的方法就可行了

一周热门 更多>

相关问题

    相关文章