Chiarimenti sulla funzione xcorr del Matlab
Salve,
ho bisogno di capire bene come funziona la xcorr del Matlab.
Ho implementato questo codice:
a = [1, 0, 1, 1, 0,1,0];
b = [1,1];
[c, lags] = xcorr(a,b);
Facendo il plot(lags,c), la funzione mi fa vedere un grafico che ha un picco laddove le due sequenze si assomigliano di più. Infatti, come potete notare, il vettore [a(3),a(4)] è esattamente uguale a b, quindi il grafico mi dice che ho un picco in posizione 3.
Ora, il punto è l'ampiezza del picco. Voglio che mi restituisca un valore che mi quantifichi quanto le due sequenze siano correlate. Cioè, se modifico il codice in questo modo:
a = [1, 0, 1, 1, 0,1,0];
b = [0.8,0.8];
[c, lags] = xcorr(a,b);
voglio che l'ampiezza del picco sia proporzionale al grado di somiglianza delle due sequenze. E' ovvio che è un problema di normalizzazione, ma non riesco a capire come si faccia.
Mi aiutate?
ho bisogno di capire bene come funziona la xcorr del Matlab.
Ho implementato questo codice:
a = [1, 0, 1, 1, 0,1,0];
b = [1,1];
[c, lags] = xcorr(a,b);
Facendo il plot(lags,c), la funzione mi fa vedere un grafico che ha un picco laddove le due sequenze si assomigliano di più. Infatti, come potete notare, il vettore [a(3),a(4)] è esattamente uguale a b, quindi il grafico mi dice che ho un picco in posizione 3.
Ora, il punto è l'ampiezza del picco. Voglio che mi restituisca un valore che mi quantifichi quanto le due sequenze siano correlate. Cioè, se modifico il codice in questo modo:
a = [1, 0, 1, 1, 0,1,0];
b = [0.8,0.8];
[c, lags] = xcorr(a,b);
voglio che l'ampiezza del picco sia proporzionale al grado di somiglianza delle due sequenze. E' ovvio che è un problema di normalizzazione, ma non riesco a capire come si faccia.
Mi aiutate?
e
è una funzione del tipo 
), diventa
a
) traslata del primo segnale (tuo primo esempio), per cui non c'è nessuno scalamento nelle ampiezze tra di loro. In questo modo la correlazione nel punto massimo sarà direttamente proporzionale all'energia del secondo segnale:
.
, questo perché i due segnali sono uguali nelle ampiezze (abbiamo supposto ci fosse solo una traslazione).
), che valga:
) e questo terzo segnale finestra (
), ottieni proprio l'energia del segnale
troncato, esattamente come fatto nel caso precedente.
è più vicina a 1, allora in tal punto i due segnali saranno tanto più simili anche nelle ampiezze.