Scipy trouve des pics

Scipy trouve des pics

Le langage de programmation Python est un langage de programmation de haut niveau qui offre un large éventail de fonctions utiles pour toutes sortes de calculs mathématiques, statistiques et scientifiques. Nous pouvons remplir n'importe quelle fonction simple et complexe en utilisant les fonctions et les méthodes des bibliothèques Python. Ce guide traite de la fonction Scipy Find_peaks () pour l'analyse de traitement du signal. Plus précisément, ce guide se concentre sur la façon de calculer et d'identifier les pics incorporés dans un signal.

Qu'est-ce que Scipy trouve des pics?

La bibliothèque Scipy propose une fonction find_peaks () à utiliser pour trouver les maxima, les minima ou le pic d'un signal. La fonction find_peaks () est utilisée avec les signaux pour les analyser. Il est utilisé pour trouver le pic du signal, les minima ou les maxima d'une fonction mathématique. Il trouve les pics à l'intérieur des signaux donnés en fonction des propriétés de pic. En comparant les valeurs des valeurs voisines, cette fonction Scipy analyse les données sous la forme d'un tableau unidimensionnel pour identifier tous les maxima locaux. Comprenons la syntaxe de la fonction find_peaks (), puis passez à la section d'exemple pour savoir comment la fonction find_peaks () fonctionne dans un programme Python.

Syntaxe de Scipy Trouver les pics fonction

Nous sommes sur le point d'exploiter la fonction find_peaks () fournie par la bibliothèque Scipy et son package de signaux. Comme nous l'avons discuté précédemment, la fonction find_peaks () est utilisée pour traiter un signal spécifique pour extraire l'intensité ou la position de plusieurs pics de signal. Voir la syntaxe de la fonction suivante:


Le paramètre «Peak» est utilisé pour définir le signal avec des pics. Le paramètre «hauteur» est utilisé pour définir la hauteur des pics. Le paramètre «seuil» est un ndarray ou tout simplement un nombre qui définit le seuil de pics. Le paramètre «Distance» est utilisé pour définir la distance horizontale minimale entre les pics voisins. Le paramètre «proéminence» est utilisé pour définir la proéminence des pics. Le paramètre «largeur» définit la largeur des pics. Le paramètre «wlen» est utilisé pour calculer les processions du pic. Le paramètre «rel_height» est utilisé pour calculer la largeur des pics. Enfin, le paramètre «Plateau_size» est utilisé pour définir le sommet plat des pics. La fonction find_peaks () renvoie un ndarray qui contient tous les indices de pointe qui satisfont aux conditions données avec leurs propriétés. Maintenant, explorons quelques exemples de programmation utiles pour apprendre à implémenter la fonction find_peaks.

Exemple 1:

De l'économie aux sciences des données en passant par l'électronique, travailler avec les pics des signaux a une signification fondamentale dans tous les domaines importants. Comme indiqué précédemment, la découverte de pointe ne consiste pas seulement à trouver le pic d'un signal électronique, mais à des minima ou des maxima de toute fonction mathématique. Puisque nous savons l'importance d'avoir une fonction fiable et rapide qui nous aide à trouver la valeur et la position des minima et des maxima, utilisons la fonction find_peaks () pour un calcul automatique et rapide. Considérez l'exemple de programme dans l'extrait de code suivant:

Importer Numpy comme NP
Importer Matplotlib.pypllot comme plt
de Scipy.Importation de signal find_peaks
# ****** Déclaration de données ******
x = np.lispace (0, 100, 200)
y = x * np.aléatoire.Randn (200) ** 2
# ****** PIET FINDING ******
pics = find_peaks (y, hauteur = 2, seuil = 2, distance = 2)
h = pics [1] ['Peak_heights']
pp = x [pics [0]]
# ****** Minima Find ******
y2 = y * -2
minima = find_peaks (y2)
min_pos = x [minima [0]]
min_height = y2 [minima [0]]
# ****** PLESSION DES DONNÉES ******
PLT.Terrain (x, y)
PLT.disperser (pp, h, color = 'r', label = 'maxima')
PLT.disperser (min_pos, min_height * -1, label = 'minima')
PLT.légende()
PLT.grille()
PLT.montrer()

Trois bibliothèques sont importées dans le programme - Numpy, Scipy et Matplotlib. La bibliothèque Numpy est utilisée pour déclarer les tableaux Numpy. La bibliothèque Scipy est utilisée pour appeler la fonction find_peaks (). Et la bibliothèque Matplotlib est utilisée pour tracer le graphique.

Comme vous pouvez le voir, nous avons regroupé les lignes de code en fonction de la fonction qu'ils remplissent. Tout d'abord, nous avons la section «Déclaration de données» où nous définissons les données de la fonction find_peaks (). La deuxième section est la «découverte de pic» où nous utilisons la fonction find_peaks () en passant les données récemment déclarées.

La troisième section du programme est la «constatation minimum» où nous calculons les minima et les maxima des données données. La dernière section est le «tracé de données» où nous tracons les données en utilisant le PLT.Plot () et plt.Fonctions show (). Pour voir le graphique généré par le programme donné, reportez-vous à la sortie générée suivante:

Exemple 2:

Travailler avec des signaux n'est pas seulement important pour le domaine des données de la science ou de l'électronique, mais il peut également être utilisé dans le domaine médical. Le traitement électronique du signal est le plus souvent utilisé et a une plus grande importance dans le domaine médical que dans tout autre domaine. Dans cet exemple, nous exploiterons la fonction d'électrocardiogramme pour interpréter un signal électronique. Voir l'exemple de code dans l'extrait de code suivant:

Importer Matplotlib.pypllot comme plt
de Scipy.Importation de signal find_peaks
de Scipy.Électrocardiogramme d'importation de mission
# ****** PIET FINDING ******
x = électrocardiogramme () [1000: 3000]
pics, _ = find_peaks (x, hauteur = 1)
# ****** PLESSION DES DONNÉES ******
PLT.tracé (x)
PLT.tracé (pics, x [pics], "x")
PLT.Terrain (NP.Zeros_like (x), "-", color = "gris")
PLT.montrer()


La bibliothèque Matplotlib est incluse dans le programme pour tracer le graphique. La bibliothèque SCIPY est utilisée pour appeler le package Signal et Misc afin que les fonctions Find_peaks et électrocardiogramme puissent être appelées à partir du package respectif. Maintenant, comme dans l'exemple précédent, nous segmons le programme en sections. La première section est la section «Recherche de pic» où nous utilisons les fonctions find_peaks () et électrocardiogram () pour trouver les pics de l'électrocardiogramme généré. La dernière section est la section «Plotage de données» où nous tracons le graphique. Maintenant, voyons le graphique tracé dans la sortie suivante:

Exemple 3:

Exécutons un autre exemple afin que vous puissiez clairement voir comment fonctionne la fonction FindPeaks (). Considérez l'exemple de code suivant:

Importer Numpy comme NP
à partir du signal d'importation Scipy
Importer Matplotlib.pypllot comme plt
# ****** Déclaration de données ******
données = np.lispace (0, 4 * np.pi, 100)
sig = np.sin (données) + 0.4 * np.péché (1.8 * Données)
# ****** PIET FINDING ******
sp, _ = signal.find_peaks (sig)
promin = signal.Peak_Prominences (SIG, SP) [0]
h = sig [sp] - promin
# ****** PLESSION DES DONNÉES ******
PLT.Terrain (sig)
PLT.Plot (Sp, Sig [Sp], "*")
PLT.vlines (x = sp, ymin = h, ymax = sig [sp])
PLT.montrer()


Encore une fois, le programme est segmenté en différentes sections, car chaque section remplit une fonction différente. Les données sont déclarées dans la section «Déclaration de données». La fonction de découverte de pointe est effectuée dans la section «Recherche de pointe». Enfin, le graphique est tracé dans la section «Plotage de données». Maintenant, vérifions le graphique tracé dans la sortie suivante:

Conclusion

Ce guide traite du traitement et de l'analyse des signaux à l'aide de la fonction find_peaks (). Le find_peaks () est une fonction de traitement du signal défini dans la bibliothèque Scipy de Python. Il est utilisé pour trouver les pics du signal, des maxima et des minima de toute fonction mathématique. Nous avons exploré quelques exemples simples et complexes pour comprendre comment la fonction find_peaks () peut être implémentée dans un programme Python. Nous nous sommes spécifiquement concentrés sur le calcul et la recherche des pics qui sont contenus dans les données données et non sur la recherche des maxima ou des minima des données données.