Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Signaalinkäsittelyn Perusteet | Integrointi, interpolointi ja signaalinkäsittely
Johdatus SciPyyn

Signaalinkäsittelyn Perusteet

Pyyhkäise näyttääksesi valikon

Signaalinkäsittely on keskeinen osa tieteellistä laskentaa, ja se keskittyy signaalien—kuten ääni-, sähkö- tai anturidatan—analysointiin, muokkaamiseen ja tulkintaan. Pythonissa scipy.signal-alipaketti tarjoaa kattavan työkalupaketin signaalinkäsittelytehtäviin. Näihin työkaluihin kuuluu suodatus, huippujen tunnistus, konvoluutio ja paljon muuta, mikä mahdollistaa reaalimaailman signaalien tehokkaan ja tarkan käsittelyn.

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()

Suodatus on yleinen toimenpide signaalinkäsittelyssä, jolla poistetaan ei-toivottuja komponentteja, kuten kohinaa, signaalista. Käyttämällä suodattimia, kuten Butterworth-suodatinta, voidaan eristää kiinnostavat taajuudet ja parantaa datan laatua analyysia varten. Huippujen tunnistus puolestaan auttaa tunnistamaan signaalin paikalliset maksimit, jotka vastaavat merkittäviä tapahtumia tai piirteitä. Tieteellisissä sovelluksissa suodatus ja huippujen tunnistus ovat olennaisia tehtävissä, kuten kokeellisten mittausten analysoinnissa, poikkeavuuksien havaitsemisessa ja hyödyllisen tiedon erottamisessa monimutkaisesta datasta.

1. Mitä SciPy-alamoottoria käytetään signaalinkäsittelyyn?

2. Mikä on signaalin suodatuksen tarkoitus?

3. Miten voit tunnistaa huiput signaalista SciPy:n avulla?

question mark

Mitä SciPy-alamoottoria käytetään signaalinkäsittelyyn?

Valitse oikea vastaus

question mark

Mikä on signaalin suodatuksen tarkoitus?

Valitse oikea vastaus

question mark

Miten voit tunnistaa huiput signaalista SciPy:n avulla?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 3
some-alt