sto soffrendo nel trovare un buon modo per confrontare (misurare) la somiglianza tra due segnali diversi. Non voglio trovare il tempo di ritardo di un segnale a un altro, ma voglio vedere come sono simili tra loro. Ad esempio, ho i seguenti due segnali, diciamo s1 ans s2. i due segnali sembrano molto simili, tuttavia in un segnale c'è un salto improvviso che determina che la seconda parte del segnale (anche quella dominante) ha uno scostamento rispetto alla prima parte.misura due somiglianza del segnale (vettoriale) diverso
Quando uso il cross-covarianza così come cross-correlazione, mi dà un risultato molto povera, e cioè:
xcov(s1, s2, 0, 'coeff') ----> 0.2153
Tuttavia guardando i due segnali, possiamo vedere che sono molto simili. Infatti se prendere la croce-covarianza dei due segnali solo dal campione (50-> alla fine del segnale), il risultato è molto buono:
xcov(s1(50:280), s2(50:280), 0, 'coeff') ----> 0.9666
quindi credo che il problema è dovuto al grande salto attorno al campione 25 (nel segnale rosso).
Le mie domande sono:
- come superare il problema di cui sopra?
- La cross-covarianza (correlazione) è un buon modo per misurare la somiglianza tra due segnali?
- C'è un altro modo per farlo?
Grazie mille. Apprezzo davvero ogni tuo aiuto!
Vuoi prendere in considerazione la misurazione della somiglianza tra il * gradient * dei segnali? – Shai
È possibile utilizzare un filtro media mobile per calcolare un valore medio su un intervallo breve, quindi sottrarlo dal segnale en, quindi verificare le similitudini? – Adriaan
Se consideri che jump è un outlier, puoi provare metodi di rimozione di valori anomali come RANSAC (solo un pensiero ...) –