@NickS
Puisqu'il est loin d'être certain que le deuxième signal dans les tracés soit en fait une version uniquement retardée du premier, d'autres méthodes en plus de la corrélation croisée classique doivent être tentées. En effet, la corrélation croisée (CC) est simplement un estimateur du maximum de vraisemblance si vos signaux sont des versions retardées les uns des autres. Dans ce cas, ils ne le sont clairement pas, pour ne rien dire non plus de leur non-stationnarité.
Dans ce cas, je pense que ce qui peut fonctionner est une estimation du temps de l' énergie significative des signaux. Certes, «significatif» peut ou ne peut pas être quelque peu subjectif, mais je crois qu'en examinant vos signaux d'un point de vue statistique, nous serons en mesure de quantifier «significatif» et de partir de là.
À cette fin, j'ai fait ce qui suit:
ÉTAPE 1: Calculez les enveloppes de signal:
Cette étape est simple, car la valeur absolue de sortie de la transformée de Hilbert de chacun de vos signaux est calculée. Il existe d'autres méthodes pour calculer les enveloppes, mais c'est assez simple. Cette méthode calcule essentiellement la forme analytique de votre signal, en d'autres termes, la représentation des phaseurs. Lorsque vous prenez la valeur absolue, vous détruisez la phase et seulement après l'énergie.
De plus, puisque nous recherchons une estimation temporelle de l'énergie de vos signaux, cette approche est justifiée.
ÉTAPE 2: Supprime le bruit avec des filtres médiaux non linéaires préservant les bords:
Ceci est une étape importante. L'objectif ici est de lisser vos enveloppes énergétiques, mais sans destruction ni lissage de vos bords et des temps de montée rapides. Il y a en fait un champ entier consacré à cela, mais pour nos besoins ici, nous pouvons simplement utiliser un filtre Medial non linéaire facile à implémenter . (Filtrage médian). Il s'agit d'une technique puissante car contrairement au filtrage moyen , le filtrage médial n'annulera pas vos bords, mais en même temps `` lissera '' votre signal sans dégradation significative des bords importants, car à aucun moment aucune arithmétique n'est effectuée sur votre signal (à condition que la longueur de la fenêtre soit impaire). Pour notre cas ici, j'ai sélectionné un filtre médian d'échantillons de taille de fenêtre 25:
ÉTAPE 3: Suppression du temps: construction des fonctions d'estimation de la densité du noyau gaussien:
Que se passerait-il si vous regardiez l'intrigue ci-dessus de côté au lieu de la manière normale? Mathématiquement parlant, cela signifie, qu'obtiendriez-vous si vous projetiez chaque échantillon de nos signaux débruités sur l'axe d'amplitude y? Ce faisant, nous parviendrons à gagner du temps, pour ainsi dire, et à pouvoir étudier uniquement les statistiques du signal.
Intuitivement, qu'est-ce qui ressort de la figure ci-dessus? Bien que l'énergie sonore soit faible, elle a l'avantage d'être plus «populaire». En revanche, alors que l'enveloppe de signal qui a de l'énergie est plus énergétique que le bruit, elle est fragmentée entre les seuils. Et si nous considérions la «popularité» comme une mesure d'énergie? C'est ce que nous ferons avec (mon grossier) l'implémentation d'une fonction de densité de noyau , (KDE), avec un noyau gaussien.
Pour ce faire, chaque échantillon est prélevé et une fonction gaussienne construite en utilisant sa valeur comme moyenne, et une largeur de bande (variance) prédéfinie sélectionnée a priori. Le réglage de la variance de votre gaussien est un paramètre important, mais vous pouvez le définir en fonction des statistiques de bruit en fonction de votre application et des signaux typiques. (Je n'ai que vos 2 fichiers pour démarrer). Si nous construisons ensuite l'estimation de KDE, nous obtenons le graphique suivant:
Vous pouvez considérer le KDE comme une forme continue d'histogramme pour ainsi dire, et la variance comme la largeur de votre bac. Cependant, il a l'avantage de garantir un PDF fluide sur lequel nous pouvons ensuite effectuer des calculs de première et deuxième dérivées. Maintenant que nous avons les KDE gaussiens, nous pouvons voir où les échantillons de bruit atteignent un sommet de popularité. N'oubliez pas que l'axe des x représente ici les projections de nos données sur l'espace d'amplitude. Ainsi, nous pouvons voir dans quels seuils le bruit est le plus «énergétique» et ceux-ci nous indiquent quels seuils éviter.
Dans le deuxième graphique, la dérivée première des KDE gaussiens est prise, et nous choisissons les abscisses du premier échantillon après la dérivée première après le pic du mélange de gaussiens pour atteindre une certaine valeur proche de zéro. (Ou premier passage à zéro). Nous pouvons utiliser cette méthode et être «sûrs» car notre KDE a été construit avec des gaussiens lisses de bande passante raisonnable, et la première dérivée de cette fonction lisse et sans bruit a été prise. (Généralement, les dérivées premières peuvent être problématiques dans tout sauf les signaux SNR élevés car elles amplifient le bruit).
Les lignes noires montrent alors à quels seuils il serait sage de «segmenter» l'image, de manière à éviter tout le bruit de fond. Si nous appliquons ensuite à nos signaux d'origine, nous atteignons les graphiques suivants, avec les lignes noires indiquant le début de l'énergie de nos signaux:
δt =241
J'espère que cela a aidé.