Fondamenti dell'elaborazione dei segnali
Scorri per mostrare il menu
L'elaborazione dei segnali è un'area chiave nell'informatica scientifica, incentrata sull'analisi, la manipolazione e l'interpretazione dei segnali—come dati audio, elettrici o provenienti da sensori. In Python, il sottopacchetto scipy.signal offre un insieme completo di strumenti per le attività di elaborazione dei segnali. Questi strumenti includono filtraggio, rilevamento dei picchi, convoluzione e altro ancora, rendendo possibile l'elaborazione efficiente e accurata di segnali reali.
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()
Il filtraggio è un'operazione comune nell'elaborazione dei segnali che rimuove componenti indesiderate, come il rumore, da un segnale. Utilizzando filtri come il filtro Butterworth, è possibile isolare le frequenze di interesse, migliorando la qualità dei dati per l'analisi. Il rilevamento dei picchi, invece, consente di identificare i massimi locali all'interno di un segnale—questi corrispondono a eventi o caratteristiche significative. Nelle applicazioni scientifiche, il filtraggio e il rilevamento dei picchi sono fondamentali per attività come l'analisi di misurazioni sperimentali, il rilevamento di anomalie e l'estrazione di informazioni utili da dati complessi.
1. Quale sottopacchetto di SciPy viene utilizzato per l'elaborazione dei segnali?
2. Qual è lo scopo del filtraggio di un segnale?
3. Come si possono rilevare i picchi in un segnale utilizzando SciPy?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione