Comment mesurer l'accord entre les courbes?

11

J'ai des valeurs (tracées ci-dessous) des valeurs RSSI attendues au fil du temps que je voudrais comparer avec mes valeurs RSSI mesurées. Ce que je cherchais, c'était un moyen de le quantifier afin de pouvoir changer les paramètres et pouvoir comparer / contraster différentes approches.

C'est un problème difficile dans mon esprit parce que je ne sais pas comment comparer les signaux et pourtant prendre en compte la grande échelle (forme globale) et la petite échelle (fluctuations individuelles) du signal.

Par exemple, voici un tracé d'un ensemble de signaux: RSSI vs Time

Dans l'image, je peux voir que le signal de mesure rouge suit à peu près le modèle, mais il fait également un bon travail de simulation de certaines des qualités sinusoïdales du modèle (à certains endroits). Des pensées?

<> En réponse aux commentaires des pichenettes (qui semblent raisonnables), j'ai pris un diff des deux valeurs et tracé les abs (fft (diff)) et j'ai obtenu ceci: FFT

Je ne sais pas trop quoi en penser. Étant donné que nous n'avons pas de fréquences réelles, je ne sais pas comment mettre à l'échelle l'axe, et si je le faisais, quelle métrique utiliseriez-vous?

toozie21
la source
2
Qu'en est-il du calcul de quelque chose comme l'erreur quadratique dans différentes gammes de fréquences (ou de la décomposer en différentes bandes de fréquences)? Dans la plage de fréquences inférieure, il mesurera les capacités de suivi globales - indépendamment des bosses rapides. Dans la fréquence plus élevée, il mesurera la capacité de suivre les changements brusques indépendamment des erreurs CC plus importantes.
pichenettes
OK, j'ai ajouté une nouvelle intrigue au message d'origine (en tant que montage) pour montrer le fft (réel (diff)), mais je ne sais pas trop quoi en faire.
toozie21
2
Je les lisserais tous les deux en premier; alors vous obtenez un très bon accord (en supposant que c'est le résultat que vous voulez). PS Je recommande toujours de partager les données que vous avez utilisées pour créer vos parcelles afin que nous puissions vous aider plus facilement.
Emre
À quel point vous souciez-vous de faire correspondre la phase à des fréquences plus élevées? J'ai l'impression que vous voudrez peut-être comparer directement le signal du domaine temporel (après un filtre passe-bas), puis comparer le domaine fréquentiel pour les fréquences plus élevées, en ne regardant que l'amplitude et en ignorant la phase.
Dan Bryant
@ toozie21 connaissez-vous déjà les emplacements temporels auxquels les propriétés du signal changent? par exemple 8 ms, 17 ms .. ainsi de suite.
user13107

Réponses:

1

Si les signaux ne sont pas alignés, et pourtant vous avez une idée qu'ils "signifient" plus ou moins la même chose, ou se réfèrent à des données similaires, vous pouvez utiliser l'algorithme de distorsion temporelle dynamique (DTW) pour obtenir une meilleure correspondance (en prenant simplement le valeur au même endroit). Vous pouvez mesurer RMS, MSE ou tout ce que vous voulez, en utilisant ces correspondances. Pour DTW, vous voudrez peut-être vérifier: http://en.wikipedia.org/wiki/Dynamic_time_warping

Une bonne façon d'élaborer cette idée est utilisée dans Earth Mover Distance (EMD), qui calcule l'effort minimal pour amener les signaux à l'alignement, comme mesure de distance. EMD est présenté ici: http://ai.stanford.edu/~rubner/emd/default.htm

EMD vous donne une distance directe, que vous pourriez utiliser pour une analyse plus approfondie.

Tolga Birdal
la source
0

J'utilise RMS du vecteur d'erreur comme mesure. Étant donné que je traite de schémas de modulation complexes, j'utilise également l'EVM comme mesure.

Euripedes Rocha Filho
la source
0

Je combinerais probablement quelques approches. Tout d'abord, je lisserais les deux formes d'onde ou ferais une interpolation spline pour supprimer les variations à grande échelle. Vous voudrez peut-être combiner une autre étape après celle d'une corrélation croisée pour les aligner, en supposant que le biais de temps n'a pas d'importance pour vous. Une fois que vous avez le pic de corrélation croisée, vous pouvez même interpoler ce pic sur une forme de parabole, puis rééchantillonner une forme d'onde pour qu'elle corresponde à l'autre. Je calculerais le RMSE entre les deux formes d'onde à ce point et produirais une métrique indiquant le delta variant lentement.

Après cela, je soustrais la valeur interpolée de l'original afin que les écarts sur de petites échelles de temps soient normalisés. De là, vous pouvez essayer de les RMSE les uns contre les autres ou même simplement calculer une variance de chacun, pour avoir une idée de la quantité de «bruit» que vous avez sur la forme d'onde variant lentement, en fonction de ce dont vous avez besoin et de ce que vous essayez réellement mesurer.

Eric C.
la source