Ho dei microfoni che misurano il suono nel tempo in diverse posizioni nello spazio. I suoni che vengono registrati provengono tutti dalla stessa posizione nello spazio ma a causa dei diversi percorsi dal punto sorgente a ciascun microfono; il segnale sarà (tempo) spostato e distorto. Conoscenza a priori è stata utilizzata per compensare il più possibile i turni di tempo, ma nei dati esiste ancora qualche spostamento di tempo. Più vicine sono le posizioni di misurazione, più simili sono i segnali.
Sono interessato a classificare automaticamente i picchi. Con questo intendo che sto cercando un algoritmo che "guarda" i due segnali del microfono nella trama sottostante e "riconosca" dalla posizione e dalla forma d'onda che ci sono due suoni principali e riporta le loro posizioni temporali:
sound 1: sample 17 upper plot, sample 19 lower plot,
sound 2: sample 40 upper plot, sample 38 lower plot
Per fare ciò stavo pianificando di eseguire un'espansione di Chebyshev attorno a ciascun picco e di utilizzare il vettore dei coefficienti di Chebyshev come input per un algoritmo di cluster (k-significa?).
A titolo di esempio, qui ci sono parti dei segnali temporali misurati in due posizioni vicine (blu) approssimate da una serie di Chebyshev a 5 termini su 9 campioni (rossi) attorno a due picchi (cerchi blu):
Le approssimazioni sono abbastanza buone :-).
Però; i coefficienti di Chebyshev per la trama superiore sono:
Clu = -1.1834 85.4318 -39.1155 -33.6420 31.0028
Cru =-43.0547 -22.7024 -143.3113 11.1709 0.5416
E i coefficienti di Chebyshev per la trama inferiore sono:
Cll = 13.0926 16.6208 -75.6980 -28.9003 0.0337
Crl =-12.7664 59.0644 -73.2201 -50.2910 11.6775
Mi piacerebbe aver visto Clu ~ = Cll e Cru ~ = Crl, ma questo non sembra essere il caso :-(.
Forse c'è un'altra base ortogonale più adatta in questo caso?
Qualche consiglio su come procedere (sto usando Matlab)?
Grazie in anticipo per eventuali risposte!