Основи обробки сигналів
Свайпніть щоб показати меню
Обробка сигналів — ключова галузь у наукових обчисленнях, що зосереджена на аналізі, обробці та інтерпретації сигналів, таких як аудіо, електричні або сенсорні дані. У Python підмодуль scipy.signal надає широкий набір інструментів для задач обробки сигналів. Ці інструменти включають фільтрацію, виявлення піків, згортку та інші можливості, що дозволяють ефективно та точно обробляти сигнали з реального світу.
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()
Фільтрація — це поширена операція в обробці сигналів, яка видаляє небажані компоненти, такі як шум, із сигналу. Використовуючи фільтри, наприклад, фільтр Баттерворта, можна ізолювати потрібні частоти, покращуючи якість даних для аналізу. Виявлення піків, у свою чергу, допомагає ідентифікувати локальні максимуми в сигналі — вони відповідають значущим подіям або особливостям. У наукових застосуваннях фільтрація та виявлення піків є необхідними для таких завдань, як аналіз експериментальних вимірювань, виявлення аномалій та отримання корисної інформації з комплексних даних.
1. Який підмодуль SciPy використовується для обробки сигналів?
2. Яка мета фільтрації сигналу?
3. Як можна виявити піки у сигналі за допомогою SciPy?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат