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

时间:2017-10-25 09:27:45

标签: algorithm

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

我想确定在信号中添加偏移量时的确切点。

方法我尝试过

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

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

必须实时检测偏移。我目前正在用C编码。

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

1 个答案:

答案 0 :(得分:1)

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

https://en.wikipedia.org/wiki/Step_detection

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