将平滑后的信号与输入信号进行比较

时间:2010-11-29 10:50:02

标签: numpy signal-processing scipy

我使用此处描述的算法平滑了一系列数据点:http://www.scipy.org/Cookbook/SignalSmooth

如何将平滑后的信号与输入信号进行比较?我希望我能得到一个标量来描述输出是如何“接近”输出的。有没有标准的方法来做到这一点?我可以找一些术语吗?

我不知道该找什么。谢谢!

3 个答案:

答案 0 :(得分:3)

我使用了normalized root mean squared deviation。这给了我一个介于0和1之间的数字。数字越大,两个数据系列越远。 0表示信号与平滑信号之间的完美匹配。

答案 1 :(得分:3)

离散相关是一种在嘈杂的背景中检测已知波形的方法。只需找到两个信号之间的相关性。离散相关只是一个矢量点积:

for n in range(N):
   y[n] = sum( [x1[i]*x2[i+n] for i in range(N)] )

在纯Python中,或者:

y = xcorr(x1,x2);

在Matlab中,或者:

y = correlate(x1,x2) 

在Python + Scipy中。

相关性是两种信号相似性的非常敏感的度量。当两个信号在频率内容上相似并且彼此同相时,它被最大化。

答案 2 :(得分:0)

假设您对信号进行平滑以消除噪声,最自然的品质因数将是SNR。

类似于:

mean((smoothed[n] - original[n])^2) / mean( (smoothed[n])^2 )

以上假设信号的平均值为~0。