Principes de base du traitement du signal
Glissez pour afficher le menu
Le traitement du signal est un domaine clé de l'informatique scientifique, axé sur l'analyse, la manipulation et l'interprétation des signaux—tels que les données audio, électriques ou issues de capteurs. En Python, le sous-module scipy.signal offre un ensemble complet d'outils pour les tâches de traitement du signal. Ces outils incluent le filtrage, la détection de pics, la convolution, et bien d'autres, permettant de traiter efficacement et précisément des signaux du monde réel.
1234567891011121314151617181920212223242526import numpy as np import matplotlib.pyplot as plt from scipy.signal import butter, filtfilt # Create a time array and a noisy signal t = np.linspace(0, 1.0, 200) clean_signal = np.sin(2 * np.pi * 5 * t) noise = np.random.normal(0, 0.5, t.shape) noisy_signal = clean_signal + noise # Design a low-pass Butterworth filter b, a = butter(N=4, Wn=0.2) # Apply the filter to the noisy signal filtered_signal = filtfilt(b, a, noisy_signal) # Plot the results plt.figure(figsize=(10, 4)) plt.plot(t, noisy_signal, label="Noisy Signal") plt.plot(t, filtered_signal, label="Filtered Signal", linewidth=2) plt.legend() plt.xlabel("Time [s]") plt.ylabel("Amplitude") plt.title("Low-pass Filtering with scipy.signal") plt.tight_layout() plt.show()
123456789101112131415161718192021import numpy as np import matplotlib.pyplot as plt from scipy.signal import find_peaks # Generate a signal with peaks x = np.linspace(0, 6 * np.pi, 200) signal = np.sin(x) + 0.5 * np.random.randn(200) # Find peaks in the signal peaks, _ = find_peaks(signal, height=0) # Plot signal and detected peaks plt.figure(figsize=(10, 4)) plt.plot(x, signal, label="Signal") plt.plot(x[peaks], signal[peaks], "x", label="Peaks", markersize=10) plt.xlabel("x") plt.ylabel("Amplitude") plt.title("Peak Detection with scipy.signal.find_peaks") plt.legend() plt.tight_layout() plt.show()
Le filtrage est une opération courante en traitement du signal qui permet d’éliminer les composantes indésirables, telles que le bruit, d’un signal. En utilisant des filtres comme le filtre de Butterworth, il est possible d’isoler les fréquences d’intérêt, améliorant ainsi la qualité des données pour l’analyse. La détection de pics, quant à elle, permet d’identifier les maxima locaux dans un signal—ceux-ci correspondent à des événements ou caractéristiques significatifs. Dans les applications scientifiques, le filtrage et la détection de pics sont essentiels pour des tâches telles que l’analyse de mesures expérimentales, la détection d’anomalies et l’extraction d’informations utiles à partir de données complexes.
1. Quel sous-module de SciPy est utilisé pour le traitement du signal ?
2. Quel est le but du filtrage d’un signal ?
3. Comment détecter des pics dans un signal avec SciPy ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion