Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grundlæggende Signalbehandling | Integration, Interpolation og Signalbehandling
Introduktion til SciPy

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.

1234567891011121314151617181920212223242526
import 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()
123456789101112131415161718192021
import 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?

question mark

Hvilket SciPy-submodul bruges til signalbehandling?

Vælg det korrekte svar

question mark

Hvad er formålet med at filtrere et signal?

Vælg det korrekte svar

question mark

Hvordan kan du detektere toppe i et signal ved hjælp af SciPy?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 3
some-alt