【问题标题】:Methods to remove outliers signals from a number of trials从大量试验中去除异常值信号的方法
【发布时间】:2017-06-03 22:16:38
【问题描述】:

我有一些信号(准确地说是 sEMG 信号的预处理试验),每个信号都存储在一个向量中。我的目标是从这些信号集中检测并删除任何可能的信号异常值。

此外,我不知道任何模型可以代表该集合的精确趋势。我只能根据自己的试验来计算。

现在考虑一个 6 次试验的例子(见下图):

我会将橙色的试验标记为异常值。

到目前为止,我一直在使用 Matlab 来实现我的目标,使用所有试验的中值加上或减去平均绝对偏差:基本上,我使用 Matlab 函数逐点计算信号之间的中值 median,然后是使用 matlab 函数 mad 的平均绝对偏差。在这种情况下,如果超过 50% 的信号超出了所谓的安全区,即由中值加或减平均绝对偏差或两倍的平均绝对偏差形成,则该信号被视为异常值(见下图)。

您知道解决此类任务的最佳方法吗?

编辑:

上述相同主题的进一步实现是使用Matlab函数alignsignals来对齐6个试验,以提高上述方法的精度(下图示例):

【问题讨论】:

  • 您可能对“高斯过程”感兴趣。因此,您可以确定 X 上每个点的置信区间。重要提示:您的变量需要服从正态分布。

标签: matlab signal-processing


【解决方案1】:

我不知道确切的方法,但我可能有一些建议作为起点:

1 - 异常值下方的区域似乎明显更大。您可以使用信号的积分对其进行排序。

2 - 如果你 fft 他们。我期望异常值的峰值与内部值不同,然后您可以将它们分开。

3 - 您可以获取信号对之间的相关系数。平均而言,异常值的相关系数较小。

【讨论】:

    猜你喜欢
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2012-10-22
    • 2021-05-03
    • 2015-01-23
    • 2016-10-04
    • 2012-05-21
    相关资源
    最近更新 更多