Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grunnleggende Signalbehandling | Integrasjon, interpolasjon og signalbehandling
Introduksjon til SciPy

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.

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 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?

question mark

Hvilken SciPy-undermodul brukes til signalbehandling?

Velg det helt riktige svaret

question mark

Hva er formålet med å filtrere et signal?

Velg det helt riktige svaret

question mark

Hvordan kan du oppdage topper i et signal ved bruk av SciPy?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 3
some-alt