gpt4 book ai didi

python - 去除非周期信号

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:49 25 4
gpt4 key购买 nike

我正在处理一组来自仪器的数据 (x={time},y={measure}),但有时源会导致数据出现峰值,这会导致一个不正确的图,并可能导致在计算最大值和最小值等特征时出错。

所以我需要从我的数据中删除这些尖峰,例如图像中被红色圆圈包围的尖峰:

image link

我找到了 this example用于去尖峰但我不知道如何反转信号(如果它在非对称信号上是正确的)并且我认为它只是用于检测尖峰并且我需要通过拟合等操作移除它们......

我需要帮助来了解是否有更好的方法来完成我的任务,或者我是否只需根据我的情况调整上面的示例(在那种情况下我需要帮助,因为我不知道如何去做)。

最佳答案

您可以按照以下一组步骤来估计峰值位置:

  1. 平滑数据。为此可以使用任意数量的过滤器。 scipy cookbook 中描述的 smooth 函数是一个很好的起点。 .您可以选择合适的参数,例如窗口大小:

    baseline = smooth(data, ...)
  2. 将平滑后的数据视为基线,有点像在没有已知拟合函数的情况下的最佳拟合线。从数据中减去基线:

    noise = data - baseline
  3. 结果基本上是对伪拟合噪声的粗略估计。设置阈值并截断噪声过多的部分:

    threshold = 3.0 * np.std(noise)
    mask = np.abs(noise) > threshold

这里有很多配置选项可供选择:平滑滤波器类型和窗口大小、阈值因子甚至指标。例如,您可以使用 IQR 或完全不同的东西来代替标准偏差。您如何处理屏蔽点也完全取决于您。常见的选项是完全丢弃或替换为基线值。

关于python - 去除非周期信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48752282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com