Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Grundläggande Signalbehandling | Integration, Interpolation och Signalbehandling
Introduktion till SciPy

Grundläggande Signalbehandling

Svep för att visa menyn

Signalbehandling är ett centralt område inom vetenskaplig databehandling, med fokus på analys, bearbetning och tolkning av signaler—såsom ljud, elektriska eller sensordata. I Python tillhandahåller delmodulen scipy.signal ett omfattande verktygsutbud för signalbehandling. Dessa verktyg inkluderar filtrering, toppdetektering, konvolution och mer, vilket möjliggör effektiv och noggrann bearbetning av signaler från verkliga tillämpningar.

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 är en vanlig operation inom signalbehandling som tar bort oönskade komponenter, såsom brus, från en signal. Med filter som Butterworth-filtret kan du isolera de frekvenser som är av intresse och förbättra datakvaliteten för analys. Toppdetektering hjälper å andra sidan till att identifiera lokala maxima i en signal—dessa motsvarar viktiga händelser eller egenskaper. Inom vetenskapliga tillämpningar är filtrering och toppdetektering avgörande för uppgifter som att analysera experimentella mätningar, upptäcka avvikelser och extrahera användbar information från komplex data.

1. Vilken SciPy-submodul används för signalbehandling?

2. Vad är syftet med att filtrera en signal?

3. Hur kan du detektera toppar i en signal med SciPy?

question mark

Vilken SciPy-submodul används för signalbehandling?

Vänligen välj det korrekta svaret

question mark

Vad är syftet med att filtrera en signal?

Vänligen välj det korrekta svaret

question mark

Hur kan du detektera toppar i en signal med SciPy?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 4. Kapitel 3
some-alt