Scipy finden Peaks

Scipy finden Peaks

Python-Programmiersprache ist eine hochrangige Programmiersprache, die eine breite Palette hilfreicher Funktionen für alle Arten von mathematischen, statistischen und wissenschaftlichen Berechnungen bietet. Wir können eine einfache und komplexe Funktion mit den Funktionen und Methoden der Python -Bibliotheken ausführen. Dieser Handbuch befasst sich mit der Funktion scipy find_peaks () für die Signalverarbeitungsanalyse. Insbesondere konzentriert sich dieser Leitfaden darauf, wie die in ein Signal enthaltenen Peaks berechnet und identifiziert werden können.

Was scipy findet Peaks?

Die Scipy -Bibliothek bietet eine find_peaks () -Funktion, mit der Maxima, Minima oder Peak eines Signals ermittelt werden kann. Die Funktion find_peaks () wird mit den Signalen verwendet, um sie zu analysieren. Es wird verwendet, um den Peak, die Minima oder die Maxima des Signals einer mathematischen Funktion zu finden. Es findet die Peaks in den angegebenen Signalen basierend auf Peak -Eigenschaften. Durch Vergleich der Werte der nahe gelegenen Werte analysiert diese Skipyfunktion die Daten in Form eines eindimensionalen Arrays, um alle lokalen Maxima zu identifizieren. Lassen Sie uns die Syntax der Funktion "Find_peaks () () verstehen und dann mit dem Beispielabschnitt übergehen, um zu erfahren, wie die Funktion" find_peaks () in einem Python -Programm funktioniert.

Syntax von Scipy Find Peaks -Funktion

Wir sind kurz davor, die von der Scipy Library und des Signalpakets bereitgestellte Find_peaks () -Funktion auszunutzen. Wie wir zuvor diskutiert haben, wird die Funktion "Find_peaks () verwendet. Siehe die Syntax der folgenden Funktion:


Der Parameter „Peak“ wird verwendet, um das Signal mit Peaks zu definieren. Der Parameter „Höhe“ wird verwendet, um die Höhe der Peaks zu definieren. Der Parameter „Schwellenwert“ ist ein NDarray oder nur eine Zahl, die den Schwellenwert der Peaks definiert. Der Parameter „Abstand“ wird verwendet, um den minimalen horizontalen Abstand zwischen benachbarten Peaks zu definieren. Der Parameter „Prominenz“ wird verwendet, um die Bedeutung von Peaks zu definieren. Der Parameter „Breite“ definiert die Breite von Peaks. Der Parameter „WLEN“ wird verwendet, um die Prominzen des Peaks zu berechnen. Der Parameter „rel_height“ wird verwendet, um die Breite der Peaks zu berechnen. Zuletzt wird der Parameter „Plateau_Size“ verwendet, um die flache Oberseite der Peaks zu definieren. Die Funktion find_peaks () gibt ein nDarray zurück, das alle Spitzenindizes enthält, die die angegebenen Bedingungen zusammen mit ihren Eigenschaften erfüllen. Lassen Sie uns nun einige hilfreiche Programmierbeispiele untersuchen, um zu erfahren, wie Sie die Funktion für find_peaks implementieren können.

Beispiel 1:

Von der Wirtschaft über Datenwissenschaften bis zur Elektronik, die mit den Spitzen von Signalen arbeiten, hat in allen prominenten Bereichen grundlegende Bedeutung. Wie bereits erwähnt, geht es nicht nur darum, den Peak eines elektronischen Signals zu finden, sondern auch die Minima oder Maxima einer mathematischen Funktion. Da wir wissen, wie wichtig es ist, eine zuverlässige und schnelle Funktion zu haben, die uns hilft, den Wert und die Position von Minima und Maxima zu finden. Betrachten Sie das Beispielprogramm im folgenden Code -Snippet:

Numph als NP importieren
Matplotlib importieren.Pyplot als PLT
von Scipy.Signalimport find_peaks
#****** Datenerklärung ******
x = np.Linspace (0, 100, 200)
y = x*np.willkürlich.Randn (200) ** 2
#****** Peak -Befund ******
Peaks = find_peaks (y, Höhe = 2, Schwelle = 2, Abstand = 2)
H = Peaks [1] ['Peak_Heights']
pp = x [Peaks [0]]
#****** minima findet ******
y2 = y*-2
minima = find_peaks (y2)
min_pos = x [minima [0]]
min_height = y2 [minima [0]]
#****** Datenplotten ******
PLT.Diagramm (x, y)
PLT.Streuung (pp, h, color = 'r', label = 'maxima')
PLT.Streuung (min_pos, min_height*-1, label = 'minima')
PLT.Legende()
PLT.Netz()
PLT.zeigen()

Drei Bibliotheken werden in das Programm importiert - Numpy, Scipy und Matplotlib. Die Numpy -Bibliothek wird verwendet, um die Numpy -Arrays zu deklarieren. Die Scipy -Bibliothek wird verwendet, um die Funktion für Find_peaks () aufzurufen. Und die Matplotlib -Bibliothek wird verwendet, um die Grafik zu zeichnen.

Wie Sie sehen können, haben wir die Codezeilen gemäß der Funktion, die sie ausführen, gruppiert. Erstens haben wir den Abschnitt „Datenerklärung“, in dem wir die Daten für die Funktion "Find_peaks () definieren. Der zweite Abschnitt ist „Peak -Befund“, bei dem wir die Funktion von Find_peaks () verwenden, indem wir die kürzlich deklarierten Daten übergeben.

Der dritte Abschnitt des Programms ist „Minima -Befund“, bei dem wir die Minima und Maxima der angegebenen Daten berechnen. Der letzte Abschnitt ist „Datenaufwand“, in dem wir die Daten mit der PLT zeichnen.Plot () und PLT.Show () Funktionen. Um die vom angegebene Programm generierte Grafik zu sehen, lesen Sie die folgende generierte Ausgabe:

Beispiel 2:

Die Arbeit mit Signalen ist nicht nur für das Feld Data Science oder Electronics wichtig, sondern kann auch im medizinischen Bereich verwendet werden. Die elektronische Signalverarbeitung wird am häufigsten angewendet und hat im medizinischen Bereich eine höhere Bedeutung als in jedem anderen Bereich. In diesem Beispiel werden wir die Elektrokardiogrammfunktion ausnutzen, um ein elektronisches Signal zu interpretieren. Siehe den Beispielcode im folgenden Code -Snippet:

Matplotlib importieren.Pyplot als PLT
von Scipy.Signalimport find_peaks
von Scipy.Miscorte -Elektrokardiogramm
#****** Peak -Befund ******
x = Elektrokardiogramm () [1000: 3000]
Peaks, _ = find_peaks (x, Höhe = 1)
#****** Datenplotten ******
PLT.Diagramm (x)
PLT.Diagramm (Peaks, x [Peaks], "x")
PLT.Diagramm (NP.Zeros_ik (x), "-", Color = "Gray")
PLT.zeigen()


Die Matplotlib -Bibliothek ist im Programm enthalten, um die Grafik zu zeichnen. Die Scipy -Bibliothek wird verwendet, um das Signal- und Misc -Paket so aufzurufen, damit die Funktionen für Find_Peaks und Elektrokardiogramme aus dem jeweiligen Paket aufgerufen werden können. Nun, genau wie im vorherigen Beispiel, segmentieren wir das Programm in Abschnitte. Der erste Abschnitt ist der Abschnitt „Peak Find“, in dem wir die Funktionen Find_peaks () und Electrocardiogramm () verwenden, um die Peaks des erzeugten Elektrokardiogramms zu finden. Der letzte Abschnitt ist der Abschnitt „Datenaufzeichnung“, in dem wir die Grafik zeichnen. Lassen Sie uns nun das geplante Diagramm in der folgenden Ausgabe sehen:

Beispiel 3:

Lassen Sie uns ein anderes Beispiel durchlaufen, damit Sie deutlich sehen können, wie die FindPeaks () -Funktion funktioniert. Betrachten Sie den folgenden Beispielcode:

Numph als NP importieren
vom Scipy -Importsignal
Matplotlib importieren.Pyplot als PLT
#****** Datenerklärung ******
Data = np.Linspace (0, 4 * NP.pi, 100)
sig = np.Sünde (Daten) + 0.4 * np.Sünde (1.8 * Daten)
#****** Peak -Befund ******
sp, _ = Signal.find_peaks (sig)
Promin = Signal.Peak_Prominces (Sig, SP) [0]
H = sig [sp] - promin
#****** Datenplotten ******
PLT.Handlung (Sig)
PLT.Diagramm (sp, sig [sp], "*")
PLT.vlines (x = sp, ymin = h, ymax = sig [sp])
PLT.zeigen()


Auch hier ist das Programm in verschiedene Abschnitte unterteilt, da jeder Abschnitt eine andere Funktion ausführt. Die Daten werden im Abschnitt „Datenerklärung“ deklariert. Die Spitzenfundfunktion wird im Abschnitt „Peak -Befund“ durchgeführt. Zuletzt ist das Diagramm im Abschnitt „Datendiagramm“ aufgezeichnet. Lassen Sie uns nun das gepreisende Diagramm in der folgenden Ausgabe überprüfen:

Abschluss

Dieser Leitfaden befasst sich mit der Verarbeitung und Analyse der Signale mit der Funktion "Find_peaks ()). Die find_peaks () ist eine Signalverarbeitungsfunktion, die in der Scipy -Bibliothek von Python definiert ist. Es wird verwendet, um die Peaks des Signals, der Maxima und der Minima einer mathematischen Funktion zu ermitteln. Wir haben einige einfache und komplexe Beispiele untersucht, um zu verstehen, wie die Funktion "find_peaks () in einem Python -Programm implementiert werden kann. Wir haben uns speziell darauf konzentriert, die Peaks zu berechnen und zu finden, die in den angegebenen Daten enthalten sind, und nicht darauf, die Maxima oder Minima der angegebenen Daten zu finden.