两个信号之间的百分比差异

时间:2014-02-10 17:26:19

标签: matlab signals signal-processing percentage

提前为我所想象的道歉是一个简单的问题,但我无法弄清楚如何做到这一点。

我有两个相同类型但有不同传感器类型的信号,下图将让您了解我所获得的一些数据:

enter image description here

我只想计算两个信号之间的平均百分比差异。到目前为止我尝试过的方法已经计算出了令人惊讶的结果,差异大约为200%。我的尝试如下:

  for i = 1:length(data)
      per(i) = abs((var1(i)-var2(i))/((var1(i)+var2(i))/2)) * 100;
  end

我认为这种方法的问题在于我只计算问题(i)中两个直接点之间的差异,而不是所有数据的大规模。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

确实,这不是Matlab问题,但更多的是如何计算它的问题。我会给出一个简短的答案,因为我认为现在需要同一时间来哀悼或写下我对这个问题的看法。

我建议使用另一个不是您的百分比的指标。

此外,我认为您不必为绘图中的每个点计算该指标,并为每个样本单独观察它。相反,您可以计算一个描述整个两个信号偏差的指标。

例如,您可以计算平方误差的总和(可能除以样本数...):

sum((data1-data2).^2)/length(data1)

其中data1和data2是包含两个信号的两个数组。

误差越小,两个信号之间的差异越小。是的,这个比例不会限制在0 ... 100%

对于均方根误差,您必须将其放入sqrt(...)

答案 1 :(得分:1)

如果您所追求的是均方误差,那么您的公式是错误的。我建议改用这个代码:

RMSE = sqrt(mean((var1-var2).^2)); 

这将以您的加速单位为您提供RMSE。