【发布时间】:2017-06-03 22:16:38
【问题描述】:
我有一些信号(准确地说是 sEMG 信号的预处理试验),每个信号都存储在一个向量中。我的目标是从这些信号集中检测并删除任何可能的信号异常值。
此外,我不知道任何模型可以代表该集合的精确趋势。我只能根据自己的试验来计算。
现在考虑一个 6 次试验的例子(见下图):
我会将橙色的试验标记为异常值。
到目前为止,我一直在使用 Matlab 来实现我的目标,使用所有试验的中值加上或减去平均绝对偏差:基本上,我使用 Matlab 函数逐点计算信号之间的中值 median,然后是使用 matlab 函数 mad 的平均绝对偏差。在这种情况下,如果超过 50% 的信号超出了所谓的安全区,即由中值加或减平均绝对偏差或两倍的平均绝对偏差形成,则该信号被视为异常值(见下图)。
您知道解决此类任务的最佳方法吗?
编辑:
上述相同主题的进一步实现是使用Matlab函数alignsignals来对齐6个试验,以提高上述方法的精度(下图示例):
【问题讨论】:
-
您可能对“高斯过程”感兴趣。因此,您可以确定 X 上每个点的置信区间。重要提示:您的变量需要服从正态分布。