@NickS
Poiché è tutt'altro che certo che il secondo segnale nei grafici sia in realtà una versione solo ritardata della prima, si devono tentare altri metodi oltre alla classica correlazione incrociata. Questo perché la correlazione incrociata (CC) è semplicemente uno stimatore della massima verosimiglianza se i segnali sono versioni ritardate l'una dell'altra. In questo caso, chiaramente non lo sono, per non dire nulla della non stazionarietà di entrambi.
In questo caso, credo che ciò che potrebbe funzionare sia una stima temporale dell'energia significativa dei segnali. Certo, "significativo" può o non può essere in qualche modo soggettivo, ma credo che guardando i tuoi segnali da un punto di vista statistico, saremo in grado di quantificare "significativo" e andare da lì.
A tal fine, ho fatto quanto segue:
PASSAGGIO 1: calcolare gli inviluppi di segnale:
Questo passaggio è semplice, poiché viene calcolato il valore assoluto dell'output della Trasformazione di Hilbert di ciascuno dei tuoi segnali. Esistono altri metodi per calcolare le buste, ma è piuttosto semplice. Questo metodo calcola essenzialmente la forma analitica del segnale, in altre parole, la rappresentazione del fasore. Quando prendi il valore assoluto, stai distruggendo la fase e solo dopo l'energia.
Inoltre, poiché stiamo perseguendo una stima del ritardo nell'energia dei tuoi segnali, questo approccio è garantito.
PASSAGGIO 2: antirumore con filtri mediali non lineari che preservano i bordi:
Questo è un passo importante. L'obiettivo qui è di appianare le tue buste energetiche, ma senza distruzione o levigare i bordi e i tempi di salita rapidi. In realtà c'è un intero campo dedicato a questo, ma per i nostri scopi qui, possiamo semplicemente usare un filtro mediale non lineare facile da implementare . (Filtro mediano). Questa è una tecnica potente perché, a differenza del filtro medio , il filtro mediale non annullerà i tuoi bordi, ma allo stesso tempo "livellerà" il tuo segnale senza un significativo degrado dei bordi importanti, poiché in nessun momento viene eseguita alcuna aritmetica sul tuo segnale (a condizione che la lunghezza della finestra sia dispari). Per il nostro caso qui, ho selezionato un filtro mediale di dimensioni della finestra di 25 campioni:
PASSAGGIO 3: rimuovere il tempo: costruire funzioni di stima della densità del kernel gaussiano:
Cosa accadrebbe se guardassi lateralmente la trama sopra invece che nel modo normale? In termini matematici, ciò significa che cosa otterresti se proiettassi ogni campione dei nostri segnali negati sull'asse dell'ampiezza y? In questo modo riusciremo a rimuovere il tempo per così dire, e saremo in grado di studiare solo le statistiche del segnale.
Intuitivamente cosa emerge dalla figura sopra? Mentre l'energia del rumore è bassa, ha il vantaggio di essere più "popolare". Al contrario, mentre l'inviluppo del segnale che ha energia è più energico del rumore, è frammentato attraverso le soglie. E se considerassimo la "popolarità" come una misura di energia? Questo è ciò che faremo con (il mio greggio) implementazione di una funzione di densità del kernel , (KDE), con un kernel gaussiano.
Per fare ciò, viene preso ogni campione e viene costruita una funzione gaussiana usando il suo valore come media, e una larghezza di banda preimpostata (varianza) selezionata a priori. L'impostazione della varianza del gaussiano è un parametro importante, ma è possibile impostarlo in base alle statistiche del rumore basate sull'applicazione e sui segnali tipici. (Ho solo i tuoi 2 file per andare avanti). Se poi costruiamo la stima di KDE, otteniamo il seguente diagramma:
Puoi pensare a KDE come una forma continua di un istogramma, per così dire, e alla varianza come larghezza del cestino. Tuttavia ha il vantaggio di garantire un PDF fluido su cui possiamo quindi eseguire il primo e il secondo calcolo derivato. Ora che abbiamo i KDE gaussiani, possiamo vedere dove i campioni di rumore raggiungono il picco di popolarità. Ricorda che l'asse x qui rappresenta le proiezioni dei nostri dati sullo spazio di ampiezza. Quindi, possiamo vedere in quali soglie il rumore è il più "energetico" e quelli ci dicono quali soglie evitare.
Nel secondo diagramma, viene presa la prima derivata dei KDE gaussiani e scegliamo l'ascissa del primo campione dopo la prima derivata dopo il picco della miscela di gaussiani per raggiungere un certo valore vicino allo zero. (O primo zero-crossing). Possiamo usare questo metodo ed essere "sicuri" perché il nostro KDE è stato costruito con gaussiani lisci con una larghezza di banda ragionevole, ed è stata presa la prima derivata di questa funzione fluida e senza rumore. (Tipicamente i primi derivati possono essere problematici in qualsiasi cosa tranne segnali SNR elevati poiché ingrandiscono il rumore).
Le linee nere mostrano quindi a quali soglie saremmo saggi per "segmentare" l'immagine, in modo da evitare l'intero rumore di fondo. Se poi applichiamo ai nostri segnali originali, otteniamo i seguenti grafici, con le linee nere che indicano l'inizio dell'energia dei nostri segnali:
Questo produce quindi un campioni.δt=241
Spero che questo abbia aiutato.