Grundlagen Der Signalverarbeitung
Swipe um das Menü anzuzeigen
Signalverarbeitung ist ein zentrales Gebiet im wissenschaftlichen Rechnen und befasst sich mit der Analyse, Manipulation und Interpretation von Signalen – wie Audio-, elektrischen oder Sensordaten. In Python stellt das Submodul scipy.signal eine umfassende Sammlung von Werkzeugen für Aufgaben der Signalverarbeitung bereit. Diese Werkzeuge umfassen Filterung, Spitzenerkennung, Faltung und mehr, wodurch reale Signale effizient und präzise verarbeitet werden können.
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()
Das Filtern ist eine gängige Operation in der Signalverarbeitung, bei der unerwünschte Komponenten wie Rauschen aus einem Signal entfernt werden. Mit Filtern wie dem Butterworth-Filter können die interessierenden Frequenzen isoliert werden, wodurch die Qualität der Daten für die Analyse verbessert wird. Die Spitzenerkennung hingegen hilft dabei, lokale Maxima innerhalb eines Signals zu identifizieren – diese entsprechen bedeutenden Ereignissen oder Merkmalen. In wissenschaftlichen Anwendungen sind Filtern und Spitzenerkennung unerlässlich für Aufgaben wie die Analyse experimenteller Messungen, das Erkennen von Anomalien und das Extrahieren nützlicher Informationen aus komplexen Daten.
1. Welches SciPy-Submodul wird für die Signalverarbeitung verwendet?
2. Was ist der Zweck des Filterns eines Signals?
3. Wie können Spitzen in einem Signal mit SciPy erkannt werden?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen