我正在一个项目中,我们在其中测量组件的可焊性。测得的信号有噪声。我们需要实时处理信号,以便能够识别从5000毫秒开始的变化。

我的系统每10毫秒采样一次真实值-但可以调整以降低采样速度。


如何在5000毫秒处检测到这种下降?
您如何看待信噪比?我们应该集中精力并尝试获得更好的信号吗?
每个问题都有不同的结果,有时跌幅甚至比这个例子小。



链接到数据文件(它们与用于绘图的文件不同,但它们显示最新的系统状态)


https://docs.google.com/open ?id = 0B3wRYK5WB4afV0NEMlZNRHJzVkk
https://docs.google.com/open?id=0B3wRYK5WB4afZ3lIVzhubl9iV0E
https://docs.google.com/open?id=0B3wRYK5WB4afUktnMmxfNHJsQ docs.google.com/open?id=0B3wRYK5WB4afRmxVYjItQ09PbE0
https://docs.google.com/open?id=0B3wRYK5WB4afU3RhYUxBQzNzVDQ


评论

您似乎具有相对较小的信噪比。与大多数检测问题一样,您需要考虑正确检测到所指示功能的概率与错误地声明存在该特征的概率之间的平衡。哪个对您的应用更重要?您对检测延迟有任何要求吗?

“噪声”看起来更像是特定频率的干扰。如果是这种情况(频谱图会有所帮助),那么适当的过滤将完成大部分工作。

实际上,检测此功能非常重要。但是我可以忍受一些延迟,但是我需要调整最终停止位置,因为我不知道确切的位置该零件接触焊料的位置,而且我需要控制浸入深度。因此,例如,如果我知道浸入度应为0.5 mm,则根据理想的焊球尺寸计算理论位置,但随后需要对通过触摸检测到的焊球实际尺寸进行校正-它显示为改变力量。

整个测量工具都位于弹簧上,因此可以自由移动,但也会产生噪音,而且我们在整个测量范围内都有固定的弹簧,当然,在使用最高灵敏度的情况下,出现这些问题时,所测力会非常大小。

Juancho-也许这会有所帮助,但是我如何解决不同重量的零件,导致频率不同呢?同样,当零件浸入焊料中时,该成分也会发生变化,因为润湿过程降低了噪音水平,但这仅适用于较大的零件,在进出时几乎相同。

#1 楼

关于此问题的经典参考是Basseville和Nikiforov的《突变的检测-理论与应用》。整本书都可以通过PDF下载获得。

我的建议是您阅读有关CUSUM(累积和)算法的第2.2章。

#2 楼

我通常将此问题归结为斜率检测之一。如果您在移动窗口上计算线性回归,则所示的下降将显示为斜率符号和/或幅度的显着变化。这种方法提供了许多需要“调整”的因素:例如,采样频率,窗口大小等将影响斜率符号检测器的鲁棒性(抗噪声性)。这就是上面的某些注释可以应用的地方。在装配线之前可以进行任何滤波或噪声抑制将改善您的结果。

#3 楼

我通过计算数据左半部分与数据右半部分的均值的T统计量来完成这种事情。假设您知道转换点在哪里,那您当然不知道。

因此,您要做的是沿时间轴尝试数百个分割点,并找到T-值最高的分割点统计信息。

u_left, u_right : mean of left and right portion
s_left, s_right : SD of left and right portion
n_left, n_right : number of samples on left and right (subtract one from each for the one degree of freedom)

se = sqrt(s_left^2 / n_left^2 + s_right^2 / n_right^2)
T = (u_left - u_right) / se


您可以像执行二进制搜索一样执行此操作。尝试10个数据点,找到最大的两个点,然后在这些点之间尝试10个点。这样,您可以获得一个非常精确的过渡点。我不是在要求准确性。 :-)

让我们知道它的运行方式!

P.S.您可以将平均值和sd作为运行总和进行计算,从而降低了从N ^ 2到N的每个可能情况计算此分区函数的复杂性。这样做可能可以负担得起仅在每个可能的分区点计算T统计量。