代码之家  ›  专栏  ›  技术社区  ›  ibz

比较平滑信号和输入信号

  •  1
  • ibz  · 技术社区  · 15 年前

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

    我怎样才能比较平滑后的信号和输入信号呢?我希望能得到一个描述输入输出“关闭”程度的标量。有什么标准的方法可以做到这一点吗?我可以找个词吗?

    3 回复  |  直到 15 年前
        1
  •  3
  •   ibz    15 年前

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

        2
  •  3
  •   psihodelia    15 年前

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

    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中。

    相关性是对两个信号相似性的一个非常敏感的度量。当两个信号的频率成分相似且彼此处于同一相位时,最大化。

        3
  •  0
  •   nimrodm    15 年前

    假设您平滑信号以消除噪声,最自然的优点是信噪比。

    比如:

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

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