La tâche d'identification des pics se pose dans diverses applications, allant de la recherche de pics dans Fourier transformations (FFT) pour extraire les pics des tableaux 2D. Un défi courant consiste à distinguer les vrais pics des fluctuations induites par le bruit.
Au lieu d'implémenter un algorithme de recherche de pic à partir de zéro, envisagez d'utiliser scipy Fonction .signal.find_peaks. Cette fonction offre des options pour filtrer et identifier les pics en fonction de critères spécifiques.
Pour exploiter efficacement la puissance de find_peaks, il est crucial de comprendre ses paramètres :
De tous les paramètres, la proéminence s'impose comme le plus efficace pour distinguer les vrais pics du bruit. Sa définition implique la descente verticale minimale requise pour atteindre un sommet plus élevé.
Pour illustrer son utilité, considérons une sinusoïde à fréquence variable contaminée par du bruit. La solution idéale identifierait les pics avec précision sans succomber aux pics de bruit parasite.
Le code suivant montre comment utiliser la fonction find_peaks avec diverses combinaisons de paramètres :
<code class="python">import numpy as np import matplotlib.pyplot as plt from scipy.signal import find_peaks # Generate signal x = np.sin(2*np.pi*(2**np.linspace(2,10,1000))*np.arange(1000)/48000) + np.random.normal(0, 1, 1000) * 0.15 # Find peaks using different parameters peaks, _ = find_peaks(x, distance=20) peaks2, _ = find_peaks(x, prominence=1) peaks3, _ = find_peaks(x, width=20) peaks4, _ = find_peaks(x, threshold=0.4) # Plot results plt.subplot(2, 2, 1) plt.plot(peaks, x[peaks], "xr"); plt.plot(x); plt.legend(['distance']) plt.subplot(2, 2, 2) plt.plot(peaks2, x[peaks2], "ob"); plt.plot(x); plt.legend(['prominence']) plt.subplot(2, 2, 3) plt.plot(peaks3, x[peaks3], "vg"); plt.plot(x); plt.legend(['width']) plt.subplot(2, 2, 4) plt.plot(peaks4, x[peaks4], "xk"); plt.plot(x); plt.legend(['threshold']) plt.show()</code>
Comme l'observent les résultats, l'utilisation de la proéminence (la ligne bleue dans la deuxième sous-intrigue) isole efficacement les vrais pics, tandis que la distance, la largeur et le seuil offrent des performances inférieures à la moyenne en présence de bruit.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!