【发布时间】:2011-04-15 04:49:48
【问题描述】:
我正在编写一些东西,我正在从硬件罗盘中获取大量值。这个指南针非常准确并且经常更新,因此如果它轻微晃动,我最终会得到与其邻居大相径庭的奇数值。我想平滑这些值。
在阅读了一些资料后,看来我想要的是高通滤波器、低通滤波器或移动平均线。我可以使用移动平均线,只需保留最后 5 个值或其他值的历史记录,然后在我的代码下游使用这些值的平均值,而我曾经只是使用最近的值。
我认为,这应该可以很好地消除这些抖动,但令我震惊的是,它可能效率很低,这可能是适合程序员的已知问题之一,有一个非常简洁的 Clever Math 解决方案。
然而,我是那些糟糕的自学成才的程序员之一,在任何与 CompSci 或数学模糊相关的方面都没有接受过任何正规教育。仔细阅读表明这可能是一个高通或低通滤波器,但我找不到任何可以用像我这样的黑客可以理解的术语来解释这些算法对一组值的影响,更不用说如何数学有效。例如,here 给出的答案在技术上确实回答了我的问题,但只是用那些可能已经知道如何解决问题的人可以理解的术语。
这将是一个非常可爱和聪明的人,他可以用文科毕业生可以理解的方式来解释这种问题,以及解决方案的工作原理。
【问题讨论】:
标签: algorithm theory moving-average