Requisitos previos: Matplotlib , Scipy
En este artículo, veremos cómo encontrar todos los puntos ‘x’ por encima de 0 con la ayuda de la función find_peaks(), que toma una array 1-D y encuentra todos los máximos locales mediante una simple comparación de valores vecinos.
Acercarse:
- Importar módulo requerido.
- Encuentre picos dentro de una señal en función de las propiedades find_peaks().
- Etiqueta el gráfico.
- Mostrar gráfico.
Paso 1: importa todas las bibliotecas.
Python3
import matplotlib.pyplot as plt import numpy as np from scipy.signal import find_peaks from scipy import signal
Paso 2: electrocardiograma(): la señal devuelta es un electrocardiograma (ECG) de 5 minutos de duración, un registro médico de la actividad eléctrica del corazón, muestreado a 360 Hz.
Sintaxis:
scipy.signal.find_peaks(x, altura=Ninguno)
Parámetro:
- x: Una señal con picos.
- altura: Altura requerida de los picos. O un número, Ninguno,
Devolver:
picos: Índices de picos en x que satisfacen todas las condiciones dadas.
pico_alturas: si se da la altura, la altura de cada pico es x.
Python3
import matplotlib.pyplot as plt import numpy as np from scipy.signal import find_peaks from scipy import signal t = np.linspace(0, 1, 500, endpoint=False) sig = np.sin(2 * np.pi * t) x= signal.square(2 * np.pi * 30 * t, duty=(sig + 1)/2) peak, _ = find_peaks(x, height=0)
A continuación se muestra la implementación completa:
Python3
import matplotlib.pyplot as plt import numpy as np from scipy.signal import find_peaks from scipy import signal t = np.linspace(0, 1, 500, endpoint=False) sig = np.sin(2 * np.pi * t) x= signal.square(2 * np.pi * 30 * t, duty=(sig + 1)/2) peak, _ = find_peaks(x, height=0) plt.plot(x) plt.title("Find peaks inside a signal - Geeksforgeeks") plt.plot(peak, x[peak], "x", color = 'r') plt.plot(np.zeros_like(x), "--", color="black") plt.show()
Producción: