单片机怎么处理数据平均问题
工程里面需要做一个数据平均,本人没有系统学习过单片机。如果是上位机上可以用队列,数据先进先出,队列里面数据相加除以个数就是平均值,数据不会有太大延迟性。最终算的是最新一秒数据的平均值,每秒大概100组数据。
单片机这样处理是不是不太好,大家一般怎样处理的
单片机求平均值同样可以使用相加除以个数。
最好计算2的n次方个数据的平均值,这样就可以用右移的方法来代替除法提高计算速度。
相加结果右移一次等于除以2,右移2次等于除以4...右移n次等于除以2的n次方。 乘风飞扬 发表于 2024-5-29 09:09
单片机求平均值同样可以使用相加除以个数。
最好计算2的n次方个数据的平均值,这样就可以用右移的方法来代 ...
好滴谢谢,求平均值现在了解了。
还有就是怎么收集最新一段时间的数据,一直要抛弃旧数据,写入新数据。类似队列的先进先出 如果数据小做个数组,把数据写进去 上位机你都知道是队列,,下位机也一样啊,,上位机队列怎么实现的 下位机也可以类比的去做啊,,,你这个需求就正好是滑动平均滤波算法,,你也可以搜一搜这个词 soma 发表于 2024-5-29 09:17
如果数据小做个数组,把数据写进去
数组不太合适,因为要求最新一秒的数据。比如是A-A
每次来一次新数据,需要删掉A的值,然后A放入A,A放入A......A放最新数据 _奶咖君_ 发表于 2024-5-29 09:25
上位机你都知道是队列,,下位机也一样啊,,上位机队列怎么实现的 下位机也可以类比的去做啊,,,你这个 ...
好的我试试,我是想来问问,看看单片机有没有啥巧方法,不影响性能 houyawei 发表于 2024-5-29 09:27
好的我试试,我是想来问问,看看单片机有没有啥巧方法,不影响性能
不影响性能的也有,,,就是交给上位机来计算,,下位机只采集和传输数据。。考虑一下? houyawei 发表于 2024-5-29 09:25
数组不太合适,因为要求最新一秒的数据。比如是A-A
每次来一次新数据,需要删掉A的值,然后A ...
使用数组是可以的,循环覆盖。
数据保存到数组结尾后又从头开始,这样就可以用新数据替代最老数据。 houyawei 发表于 2024-5-29 09:25
数组不太合适,因为要求最新一秒的数据。比如是A-A
每次来一次新数据,需要删掉A的值,然后A ...
删除 你可以换一个概念,,覆盖,,用新的数据覆盖老的数据
页:
[1]