Ich habe ein Beispieldiagramm wie eines unter .., das ich mit einem Satz von (x, y) -Werten in einem Array X gezeichnet habe.
Wie Sie sehen können, hat das Bild dichte Spitzenwerte zwischen 4000 und 5100
Meine genaue Frage lautet: Kann ich programmatisch den Bereich finden, in dem der Graph am dichtesten ist?
dh .. mit Array X Wie kann ich den Bereich finden, in dem dieser Graph dicht ist?
für dieses Array wären es 4000 - 5100.
Angenommen, das Array weist der Einfachheit halber nur einen dichten Bereich auf.
Dankbar, wenn Sie einen Pseudocode / Code vorschlagen können.
Sie können die Varianz des Signals in einem bewegten Fenster verwenden. Hier ist ein Beispiel (siehe Graphik anbei, wo das Testsignal rot ist, die gefensterte Varianz grün ist und das gefilterte Signal blau ist):
:
Testsignalerzeugung:
%Vor%Berechnung der Bewegungsfenstervarianz:
%Vor%bekomme die Indizes, bei denen die Varianz hoch ist (hier wähle ich die Varianz des Kriteriums, die der Hälfte der maximalen Varianz überlegen ist ... du kannst sie an deinen Fall anpassen):
%Vor%oder filtern Sie das Signal (setzen Sie die Punkte mit niedriger Varianz auf Null)
%Vor%Sie können die absolute Differenz zwischen den benachbarten Werten berechnen, dann können Sie die Dinge mit gleitendem Fenster etwas glätten und dann die Regionen finden, in denen die geglätteten absoluten Differenzwerte bei 50% des Maximalwerts liegen.
mit Python (Sie haben Python in Tags) würde dies wie folgt aussehen:
%Vor%