Grundlæggende Signalbehandling
Stryg for at vise menuen
Signalbehandling er et centralt område inden for videnskabelig databehandling, med fokus på analyse, bearbejdning og fortolkning af signaler—såsom lyd, elektriske eller sensordata. I Python tilbyder scipy.signal-undermodulet et omfattende sæt værktøjer til signalbehandlingsopgaver. Disse værktøjer omfatter filtrering, toppunktdetektion, konvolution og mere, hvilket gør det muligt at behandle virkelige signaler effektivt og præcist.
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()
Filtrering er en almindelig operation inden for signalbehandling, der fjerner uønskede komponenter, såsom støj, fra et signal. Ved at bruge filtre som Butterworth-filteret kan du isolere de ønskede frekvenser og forbedre kvaliteten af dine data til analyse. Toppunktdetektion hjælper derimod med at identificere lokale maksimumværdier i et signal—disse svarer til væsentlige hændelser eller karakteristika. I videnskabelige anvendelser er filtrering og toppunktdetektion essentielle til opgaver som analyse af eksperimentelle målinger, detektion af afvigelser og udtrækning af nyttig information fra komplekse data.
1. Hvilket SciPy-submodul bruges til signalbehandling?
2. Hvad er formålet med at filtrere et signal?
3. Hvordan kan du detektere toppe i et signal ved hjælp af SciPy?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat