目前我正在编写一种算法来检测ADC值的偏移量。典型信号的示例如下图所示。 由于外部条件,这种信号可能在任何时间点都具有偏移。一个例子如下图所示。
我想确定在信号中添加偏移量时的确切点。
方法我尝试过:
计算大约50个值的移动平均值,并将其与旧的平均值进行比较。如果差异太大,则得出结论是存在偏移。
这种方法的问题:它还将信号中的峰值视为偏移,而实际情况并非如此。
必须实时检测偏移。我目前正在用C编码。
我花了将近一个星期的时间试图找出解决方案,但作为最后一条出路,我问你们。
答案 0 :(得分:1)
这是信号处理中的一个已知问题,称为步检测:
https://en.wikipedia.org/wiki/Step_detection
有许多算法可以解决这个问题,你必须做一些研究,无论你决定采用哪种算法,你可能需要在适合你的需要之前做一些参数调整。我建议您根据需要从滑动窗口算法开始,可以找到学生测试的示例实现here,也许您可以在此基础上进行构建。