所以我有一个由25个样本组成的数组,我希望能够注意到它是从这25个样本时间间隔开始减少n还是增加(基本上25个样本数组是我的缓冲区,每1 ms填充一次)。
请注意,这是我正在寻找的总趋势,而不是个人导数(正如我将使用有限差分或其他数值微分技术获得的那样)。
基本上,我希望我的数据是嘈杂的,所以即使在做了过滤等操作之后,也可能会有起伏。但我正在寻找的是行为增加或减少的总体趋势。
我想在每个ms中集成增加/减少的行为来触发一些事件,这更像是一个用户界面事件(闪烁LED),所以只要我能检测到总的趋势,它就不需要非常延迟的处理。
提前感谢!
发布于 2012-12-01 23:03:26
您肯定需要一个平滑过滤器(移动平均过滤器就可以了--有关这一部分,请参阅Bjorn's answer )。
但是,除了平滑过滤器之外,您还需要一个决策标准或阈值选择器,超过这一条件后,您将决定过滤后的更改是否显著。
如果时间序列的基础统计数据是稳定的(平稳时间序列),则可以使用固定统计阈值,即平均值的标准差。例如,如果你想要一个相当强的“警报”阈值,你可能会选择2个标准差(想一想,只在最强的5%的回报上发出警报)。
然后,您可以选择检测所有通过信噪比测试的“有意义的”元素。
发布于 2012-10-13 22:49:18
在我看来,你根本不想要导数。听起来你想要一个低通滤波器。低通滤波器只是简单地删除快速变化的数据,并在其位置上留下较长,较慢变化的趋势。最直观的低通滤波器是移动平均滤波器,其中取最后n个输入的平均值,其中n是根据噪声与您正在寻找的趋势的大小确定的。这被广泛用于从音频数据到图像处理再到失业数据(广泛引用了四周移动平均失业数据)。
如果你觉得有必要的话,可以使用递归技术开发更有效的/选择性更好的过滤器。您可以使用本教程创建低通滤波器。它是为音频编写的,但它可以在几乎任何数据上工作。它向您展示了如何编写钟形滤波器,但低通滤波器更简单。
http://blog.bjornroche.com/2012/08/basic-audio-eqs.html
发布于 2012-10-12 12:03:01
如果您知道信号统计信息,并将其用作n步超前预测器,则可以使用wiener filter。然后,您的趋势决策可以很容易地基于维纳滤波器的预测。如果信号不是广义平稳的,并且您认为预测不能线性完成(非线性/非平稳过程),那么您可以使用自适应维纳滤波器,如LMS滤波器。
https://stackoverflow.com/questions/12851208
复制相似问题