@NickS
Da es sich bei dem zweiten Signal in den Diagrammen bei weitem nicht um eine ausschließlich verzögerte Version des ersten Signals handelt, müssen neben der klassischen Kreuzkorrelation andere Methoden versucht werden. Dies liegt daran, dass die Kreuzkorrelation (CC) nur ein Maximum-Likelihood-Schätzer ist, wenn Ihre Signale verzögerte Versionen voneinander sind. In diesem Fall sind sie eindeutig nicht, ganz zu schweigen von ihrer Nichtstationarität.
In diesem Fall glaube ich, dass eine Zeitschätzung der signifikanten Energie der Signale funktionieren könnte . Zugegeben, "signifikant" kann oder kann nicht subjektiv sein, aber ich glaube, wenn wir Ihre Signale von einem statistischen Standpunkt aus betrachten, können wir "signifikant" quantifizieren und von dort aus fortfahren.
Zu diesem Zweck habe ich Folgendes getan:
SCHRITT 1: Berechnen Sie die Signalhüllkurven:
Dieser Schritt ist einfach, da der absolute Ausgabewert der Hilbert-Transformation jedes Ihrer Signale berechnet wird. Es gibt andere Methoden zum Berechnen von Umschlägen, dies ist jedoch recht einfach. Diese Methode berechnet im Wesentlichen die analytische Form Ihres Signals, dh die Zeigerdarstellung. Wenn Sie den absoluten Wert nehmen, zerstören Sie Phase und nur nach Energie.
Da wir außerdem eine Zeitverzögerungsschätzung der Energie Ihrer Signale durchführen, ist dieser Ansatz gerechtfertigt.
SCHRITT 2: Rauschunterdrückung mit kantenerhaltenden nichtlinearen Medialfiltern:
Dies ist ein wichtiger Schritt. Das Ziel hierbei ist es, Ihre Energiehüllen zu glätten, ohne dabei die Kanten und die schnellen Anstiegszeiten zu zerstören oder zu glätten. Es gibt tatsächlich ein ganzes Feld, das diesem Thema gewidmet ist, aber für unsere Zwecke können wir hier einfach einen einfach zu implementierenden nichtlinearen Medial-Filter verwenden . (Medianfilterung). Dies ist eine leistungsfähige Technik , denn im Gegensatz zu mittlerer Filterung, medial - Filterung wird die Kanten nicht null, aber zugleich ‚glatt‘ out Ihr Signal ohne signifikante Verschlechterung der wichtigen Kanten, zu keiner Zeit , da jedes arithmetisches Wesen auf dem Signal durchgeführt (vorausgesetzt die Fensterlänge ist ungerade). Für unseren Fall hier habe ich einen Medialfilter mit einer Fenstergröße von 25 Samples ausgewählt:
SCHRITT 3: Entfernen der Zeit: Konstruieren der Dichteschätzfunktionen des Gaußschen Kernels:
Was würde passieren, wenn Sie die obige Handlung von der Seite betrachten, anstatt wie üblich? Mathematisch gesehen bedeutet das, was würden Sie erhalten, wenn Sie jedes Sample unserer entrauschten Signale auf die y-Amplitudenachse projizieren würden? Auf diese Weise schaffen wir es, sozusagen Zeit zu sparen und nur die Signalstatistik zu studieren.
Intuitiv, was aus der obigen Abbildung hervorgeht? Die Geräuschenergie ist zwar gering, hat aber den Vorteil, dass sie „beliebter“ ist. Im Gegensatz dazu ist die Signalhüllkurve, die Energie enthält, energiereicher als das Rauschen, sie ist jedoch über Schwellenwerte hinweg fragmentiert. Was wäre, wenn wir die Popularität als Maß für die Energie betrachten würden? Dies ist, was wir mit (meiner groben) Implementierung einer Kerneldichtefunktion (KDE) mit einem Gaußschen Kernel tun werden .
Zu diesem Zweck wird jeder Abtastwert entnommen und eine Gauß-Funktion unter Verwendung ihres Wertes als Mittelwert und einer voreingestellten Bandbreite (Varianz), die von vornherein ausgewählt wurde, konstruiert. Das Einstellen der Varianz Ihres Gaußschen ist ein wichtiger Parameter. Sie können sie jedoch basierend auf der Rauschstatistik basierend auf Ihrer Anwendung und typischen Signalen einstellen. (Ich habe nur deine 2 Dateien, auf die ich mich begeben kann). Wenn wir dann die KDE-Schätzung erstellen, erhalten wir das folgende Diagramm:
Sie können sich KDE sozusagen als kontinuierliche Form eines Histogramms und die Varianz als Ihre Bin-Breite vorstellen. Es hat jedoch den Vorteil, dass ein reibungsloses PDF gewährleistet ist, mit dem wir dann eine erste und eine zweite Ableitungsberechnung durchführen können. Jetzt, da wir die Gaußschen KDEs haben, können wir sehen, wo die Rauschproben an Popularität gewinnen. Denken Sie daran, dass die X-Achse hier die Projektionen unserer Daten auf den Amplitudenraum darstellt. Auf diese Weise können wir sehen, bei welchen Schwellenwerten das Rauschen am energiereichsten ist und welche Schwellenwerte zu vermeiden sind.
In der zweiten Darstellung wird die erste Ableitung der Gaußschen KDEs genommen, und wir wählen die Abszisse der ersten Probe nach der ersten Ableitung nach dem Peak der Mischung der Gaußschen, um einen bestimmten Wert nahe Null zu erreichen. (Oder erster Nulldurchgang). Wir können diese Methode anwenden und sind "sicher", da unser KDE aus glatten Gaußschen mit angemessener Bandbreite aufgebaut ist und die erste Ableitung dieser glatten und rauschfreien Funktion verwendet wurde. (In der Regel können erste Ableitungen bei Signalen mit hohem SNR problematisch sein, da sie das Rauschen verstärken.)
Die schwarzen Linien zeigen dann an, bei welchen Schwellenwerten wir das Bild "segmentieren" sollten, so dass wir das gesamte Grundrauschen vermeiden. Wenn wir dann auf unsere ursprünglichen Signale anwenden, erhalten wir die folgenden Diagramme, wobei die schwarzen Linien den Beginn der Energie unserer Signale angeben:
δt =241
Ich hoffe das hat geholfen.