【发布时间】:2018-06-26 16:16:47
【问题描述】:
我正在使用 3 轴加速度计和 Arduino 进行惯性测量项目。我希望 Arduino 接收 x、y 和 z g 值并输出大小。由于 |a| = sqrt(x^2 + y^2 + z^2) 计算量很大,我想研究是否有另一种算法可以用来加速它(我愿意牺牲一点准确性)。
我读到了Alpha-max, Beta-min method,但这似乎只适用于二维向量。 3D 向量有什么类似的吗?
编辑:程序语言是 C++
【问题讨论】:
-
如果您标记您正在使用的编程语言会很有帮助,因为性能影响会因此而有所不同。如果您使用 Python numpy 通常是计算的高性能选项。 This answer 展示了如何使用它来计算矢量幅度的示例。
-
它是用 C++ 编写的,将其添加到原始帖子中。谢谢!
-
微控制器上的 sqrt 计算可能很昂贵,但您需要它有多快?你愿意牺牲多少精度?关于您的输入,您是否知道任何可以利用的信息(例如,它们是浮点数还是整数,它们在什么范围内?)
-
我正在拍摄 100Hz 采样。鉴于它必须完成的其他任务,我还没有机会看看这是否可能,但由于我仍处于计划阶段,我认为最好现在就开始优化效率。
标签: c++ algorithm vector magnitude