Grunnleggende Signalbehandling
Sveip for å vise menyen
Signalbehandling er et sentralt område innen vitenskapelig databehandling, med fokus på analyse, manipulering og tolkning av signaler—slik som lyd, elektriske signaler eller sensordata. I Python tilbyr scipy.signal-undermodulen et omfattende sett med verktøy for signalbehandlingsoppgaver. Disse verktøyene inkluderer filtrering, toppdeteksjon, konvolusjon og mer, noe som gjør det mulig å behandle signaler fra virkeligheten effektivt og nøyaktig.
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 vanlig operasjon innen signalbehandling som fjerner uønskede komponenter, som støy, fra et signal. Ved å bruke filtre som Butterworth-filteret kan du isolere de frekvensene som er av interesse, noe som forbedrer kvaliteten på dataene dine for analyse. Toppdeteksjon hjelper derimot med å identifisere lokale maksimum i et signal—disse tilsvarer viktige hendelser eller egenskaper. I vitenskapelige anvendelser er filtrering og toppdeteksjon essensielt for oppgaver som å analysere eksperimentelle målinger, oppdage avvik og hente ut nyttig informasjon fra komplekse data.
1. Hvilken SciPy-undermodul brukes til signalbehandling?
2. Hva er formålet med å filtrere et signal?
3. Hvordan kan du oppdage topper i et signal ved bruk av SciPy?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår