从许多试验中去除异常信号的方法

时间:2017-01-19 09:20:26

标签: matlab signal-processing

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

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

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

enter image description here

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

到目前为止,我已经与Matlab合作以达到我的目标,使用所有试验的中位数加上或减去平均绝对偏差:基本上,我使用Matlab函数逐点计算信号之间的中位数中位数然后使用matlab函数 mad 的平均绝对偏差。在这种情况下,如果超过(例如50%)信号超出,称为安全区,信号被认为是异常值,由中位数加上或减去或平均绝对偏差的两倍形成(见下图)。

enter image description here

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

编辑:

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

enter image description here

1 个答案:

答案 0 :(得分:0)

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

1 - 异常值似乎在它们下面有一个明显更大的区域。你可以使用信号的积分来命令它们。

2 - 如果你把他们甩了。我所期望的是,异常值会在不同的频率上出现峰值,然后你可以将它们分开。

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