Fundamentos del Procesamiento de Señales
Desliza para mostrar el menú
El procesamiento de señales es un área clave en la computación científica, centrada en el análisis, manipulación e interpretación de señales, como datos de audio, eléctricos o de sensores. En Python, el submódulo scipy.signal proporciona un conjunto completo de herramientas para tareas de procesamiento de señales. Estas herramientas incluyen filtrado, detección de picos, convolución y más, lo que permite procesar señales del mundo real de manera eficiente y precisa.
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()
El filtrado es una operación común en el procesamiento de señales que elimina componentes no deseados, como el ruido, de una señal. Utilizando filtros como el filtro Butterworth, es posible aislar las frecuencias de interés, mejorando la calidad de los datos para su análisis. La detección de picos, por otro lado, permite identificar máximos locales dentro de una señal; estos corresponden a eventos o características significativas. En aplicaciones científicas, el filtrado y la detección de picos son esenciales para tareas como el análisis de mediciones experimentales, la detección de anomalías y la extracción de información útil de datos complejos.
1. ¿Qué submódulo de SciPy se utiliza para el procesamiento de señales?
2. ¿Cuál es el propósito de filtrar una señal?
3. ¿Cómo se pueden detectar picos en una señal utilizando SciPy?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla