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.
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()
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?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme