如何衡量曲线之间的一致性?

信息处理 matlab 算法 采样
2022-01-09 10:57:01

我有一段时间内的预期 RSSI 值(如下图所示),我想将其与我测量的 RSSI 值进行比较。我一直在寻找一种量化它的方法,这样我就可以更改参数并能够比较/对比不同的方法。

这是我心中的一个难题,因为我不知道如何比较信号,却又考虑到信号的大尺度(整体形状)和小尺度(个体波动)。

例如,这是一组信号的图: RSSI 与时间

在图像中,我可以看到红色测量信号大致遵循模型,但它在模拟模型的某些正弦特性方面也做得很好(在某些地方)。有什么想法吗?

<> 为了回应 pichenettes 的评论(这似乎是合理的),我对这两个值进行了比较并绘制了 abs(fft(diff)) 并得到了这个: 快速傅里叶变换

我不知道该怎么做。由于我们没有任何实际频率,我不确定如何缩放轴,如果我这样做了,你会使用什么指标?

3个回答

如果信号没有对齐,但您有线索表明它们或多或少“意味着”相同的东西,或者参考相似的数据,您可以使用动态时间规整 (DTW) 算法来获得更好的对应关系(然后简单地采用相同位置的值)。您可以使用这些对应关系来测量 RMS、MSE 或任何您喜欢的东西。对于 DTW,您可能需要检查: http ://en.wikipedia.org/wiki/Dynamic_time_warping

推土机距离 (EMD) 中使用了一个很好的方法来阐述这个想法,它计算将信号对齐的最小努力,作为距离测量。EMD 在这里介绍:http: //ai.stanford.edu/~rubner/emd/default.htm

EMD 为您提供直接距离,您可以将其用于进一步分析。

我使用误差向量的 RMS 作为衡量标准。由于我正在处理复杂的调制方案,因此我也使用 EVM 作为衡量标准。

我可能会结合几种方法。首先,我将平滑两个波形或进行样条插值以消除大规模变化。您可能希望在互相关之后组合另一个步骤来排列它们,假设时间偏差对您无关紧要。一旦你得到了互相关峰值,你甚至可以在抛物线形状上插值该峰值,然后重新采样一个波形以匹配另一个波形。我将在该点计算两个波形之间的 RMSE,并生成一个指示缓慢变化的增量的指标。

之后,我会从原始值中减去插值,以便对小时间尺度上的偏差进行归一化。从那里您可以尝试对它们进行 RMSE,甚至只是计算每个的方差,以了解您对缓慢变化的波形有多少“噪声”,具体取决于您需要什么以及您实际尝试的内容测量。