Scipy encuentra picos

Scipy encuentra picos

El lenguaje de programación de Python es un lenguaje de programación de alto nivel que ofrece una amplia gama de funciones útiles para todo tipo de cálculos matemáticos, estadísticos y científicos. Podemos realizar cualquier función simple y compleja utilizando las funciones y métodos de las bibliotecas de Python. Esta guía se ocupa de la función Scipy find_peaks () para el análisis de procesamiento de señales. Más específicamente, esta guía se centra en cómo calcular e identificar los picos incorporados en una señal.

¿Qué es Scipy Find Peaks??

La biblioteca Scipy ofrece una función find_peaks () que se utilizará para encontrar los máximos, mínimos o pico de una señal. La función find_peaks () se usa con las señales para analizarlas. Se utiliza para encontrar el pico, mínimos o máximos de la señal de una función matemática. Encuentra los picos dentro de las señales dadas basadas en propiedades máximas. Al comparar los valores de los valores cercanos, esta función Scipy analiza los datos en forma de una matriz unidimensional para identificar todos los máximos locales. Entendamos la sintaxis de la función find_peaks () y luego pasemos a la sección de ejemplo para aprender cómo funciona la función find_peaks () en un programa de Python.

Sintaxis de Scipy Find Peaks Función

Estamos a punto de explotar la función find_peaks () proporcionada por la biblioteca Scipy y su paquete de señal. Como discutimos anteriormente, la función find_peaks () se usa para procesar una señal específica para extraer la intensidad o la posición de los picos de señal múltiples. Vea la sintaxis de la siguiente función:


El parámetro "pico" se usa para definir la señal con picos. El parámetro de "altura" se usa para definir la altura de los picos. El parámetro "umbral" es un ndarray o solo un número que define el umbral de los picos. El parámetro de "distancia" se usa para definir la distancia horizontal mínima entre los picos vecinos. El parámetro de "prominencia" se usa para definir la prominencia de los picos. El parámetro de "ancho" define el ancho de los picos. El parámetro "wlen" se usa para calcular las prominencias del pico. El parámetro "Rel_height" se usa para calcular el ancho de los picos. Por último, el parámetro "Plateau_Size" se usa para definir la parte superior plana de los picos. La función find_peaks () devuelve un ndarray que contiene todos los índices máximos que satisfacen las condiciones dadas junto con sus propiedades. Ahora, exploremos algunos ejemplos de programación útiles para aprender a implementar la función find_peaks.

Ejemplo 1:

Desde la economía hasta las ciencias de los datos y la electrónica, trabajar con los picos de las señales tiene un significado fundamental en todos los campos prominentes. Como se discutió anteriormente, el hallazgo máximo no se trata solo de encontrar el pico de una señal electrónica sino los mínimos o máximos de cualquier función matemática. Dado que sabemos la importancia de tener una función confiable y rápida que nos ayuda a encontrar el valor y la posición de los mínimos y los máximos, usemos la función Find_peaks () para un cálculo automático y rápido. Considere el programa de muestra en el siguiente fragmento de código:

importar numpy como np
Importar matplotlib.Pyplot como PLT
De Scipy.Signal import Find_peaks
#****** Declaración de datos ******
x = NP.Linspace (0, 100, 200)
y = x*np.aleatorio.Randn (200) ** 2
#****** Peak Finding ******
Peaks = find_peaks (y, altura = 2, umbral = 2, distancia = 2)
h = picos [1] ['peak_heights']
pp = x [picos [0]]
#****** MINIMA FUENTA ******
y2 = y*-2
mínimo = find_peaks (y2)
min_pos = x [mínimo [0]]
min_height = y2 [mínimo [0]]
#****** trazado de datos ******
PLT.Parcela (x, y)
PLT.dispersión (pp, h, color = 'r', etiqueta = 'maxima')
PLT.dispersión (min_pos, min_height*-1, etiqueta = 'mínimo')
PLT.leyenda()
PLT.red()
PLT.espectáculo()

Tres bibliotecas se importan al programa: Numpy, Scipy y Matplotlib. La biblioteca Numpy se usa para declarar las matrices Numpy. La biblioteca Scipy se usa para llamar a la función find_peaks (). Y la biblioteca matplotlib se usa para trazar el gráfico.

Como puede ver, agrupamos las líneas de código de acuerdo con la función que están realizando. Primero, tenemos la sección "Declaración de datos" donde definimos los datos para la función find_peaks (). La segunda sección es "Peak Finding" donde usamos la función find_peaks () pasando los datos declarados recientemente.

La tercera sección del programa es "hallazgo mínimo" donde calculamos los mínimos y los máximos de los datos dados. La última sección es "trazado de datos" donde trazamos los datos utilizando el PLT.plot () y plt.Funciones show (). Para ver el gráfico generado por el programa dado, consulte la siguiente salida generada:

Ejemplo 2:

Trabajar con señales no es solo importante para el campo de ciencia de datos o electrónica, sino que también se puede usar en el campo de la medicina. El procesamiento de señal electrónica se usa más comúnmente y tiene una mayor importancia en el campo de la medicina que en cualquier otro campo. En este ejemplo, explotaremos la función del electrocardiograma para interpretar una señal electrónica. Consulte el código de muestra en el siguiente fragmento de código:

Importar matplotlib.Pyplot como PLT
De Scipy.Signal import Find_peaks
De Scipy.Electrocardiograma de importación misceláneos
#****** Peak Finding ******
x = electrocardiograma () [1000: 3000]
Peaks, _ = find_peaks (x, altura = 1)
#****** trazado de datos ******
PLT.Parcela (x)
PLT.Parcela (picos, x [picos], "x")
PLT.Parcela (NP.zeros_like (x), "-", color = "gris")
PLT.espectáculo()


La biblioteca matplotlib se incluye en el programa para trazar el gráfico. La biblioteca SciPy se usa para llamar al paquete de señal y misceláneas para que se puedan llamar a las funciones Find_peaks y Electrocardiograma del paquete respectivo. Ahora, al igual que en el ejemplo anterior, segmentamos el programa en secciones. La primera sección es la sección "Peak Finding" donde usamos las funciones Find_peaks () y Electrocardiogram () para encontrar los picos del electrocardiograma generado. La última sección es la sección "trazado de datos" donde trazamos el gráfico. Ahora, veamos el gráfico trazado en la siguiente salida:

Ejemplo 3:

Ejecutemos con otro ejemplo para que pueda ver claramente cómo funciona la función findpeaks (). Considere el Código de muestra de Followign:

importar numpy como np
de la señal de importación escasa
Importar matplotlib.Pyplot como PLT
#****** Declaración de datos ******
datos = np.Linspace (0, 4 * NP.Pi, 100)
Sig = NP.sin (datos) + 0.4 * NP.pecado (1.8 * Datos)
#****** Peak Finding ******
SP, _ = señal.find_peaks (sig)
prominción = señal.Peak_prominences (SIG, SP) [0]
H = Sig [sp] - promin
#****** trazado de datos ******
PLT.Parcela (Sig)
PLT.Plot (SP, Sig [SP], "*")
PLT.Vlines (x = sp, ymin = h, ymax = sig [sp])
PLT.espectáculo()


Nuevamente, el programa se segmenta en diferentes secciones, ya que cada sección realiza una función diferente. Los datos se declaran en la sección "Declaración de datos". La función de búsqueda de pico se realiza en la sección "Peak Finding". Por último, el gráfico se traza en la sección "trazado de datos". Ahora, verifiquemos el gráfico trazado en la siguiente salida:

Conclusión

Esta guía trata el procesamiento y el análisis de las señales utilizando la función find_peaks (). Find_peaks () es una función de procesamiento de señal definida en la biblioteca Scipy de Python. Se utiliza para encontrar los picos de la señal, los máximos y los mínimos de cualquier función matemática. Exploramos algunos ejemplos simples y complejos para comprender cómo se puede implementar la función find_peaks () en un programa de Python. Nos centramos específicamente en calcular y encontrar los picos que están contenidos en los datos dados y no en encontrar los máximos o mínimos de los datos dados.