Algorithm 如何检测数字信号中的偏移量?

Algorithm 如何检测数字信号中的偏移量?,algorithm,Algorithm,目前我正在编写一个算法来检测ADC值中的偏移量。典型信号的示例如下图所示。 由于外部条件,这种信号可能在任何时间点具有偏移。下图显示了一个示例。 我想在向信号添加偏移量时确定这个精确点 我尝试过的方法: 计算大约50个值的移动平均值,并将其与旧的平均值进行比较。如果差异太大,则得出有偏移的结论 这种方法的问题:它还将信号中的峰值视为偏移量,但实际情况并非如此 必须实时检测偏移量。我目前正在用C语言编写代码 我花了将近一个星期的时间试图找出解决办法,但作为最后的出路,我要问你们 这是信号处理中的

目前我正在编写一个算法来检测ADC值中的偏移量。典型信号的示例如下图所示。 由于外部条件,这种信号可能在任何时间点具有偏移。下图显示了一个示例。

我想在向信号添加偏移量时确定这个精确点

我尝试过的方法:

计算大约50个值的移动平均值,并将其与旧的平均值进行比较。如果差异太大,则得出有偏移的结论

这种方法的问题:它还将信号中的峰值视为偏移量,但实际情况并非如此

必须实时检测偏移量。我目前正在用C语言编写代码


我花了将近一个星期的时间试图找出解决办法,但作为最后的出路,我要问你们

这是信号处理中的一个已知问题,称为阶跃检测:

有很多算法可以解决这个问题,你必须做一些研究,无论你决定使用哪种算法,你都可能需要在它满足你的需求之前进行一些参数调整。我建议根据您的需要从滑动窗口算法开始,可以找到student t测试的示例实现,也许您可以在此基础上进行构建