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 fournit 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 :
Parmi tous les paramètres, 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 :
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()
Comme observé à partir des 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3