He estado tratando de calcular el ancho medio máximo (FWHM) del pico azul (ver imagen). El pico verde y el pico magenta combinados conforman el pico azul. He estado usando la siguiente ecuación para encontrar el FWHM de los picos verde y magenta: fwhm = 2*np.sqrt(2*(math.log(2)))*sd
donde sd = desviación estándar. Creé los picos verde y magenta y sé la desviación estándar, que es la razón por la que puedo usar esa ecuación.Encontrar el ancho máximo medio de un pico
que crearon los picos verdes y magenta utilizando el siguiente código:
def make_norm_dist(self, x, mean, sd):
import numpy as np
norm = []
for i in range(x.size):
norm += [1.0/(sd*np.sqrt(2*np.pi))*np.exp(-(x[i] - mean)**2/(2*sd**2))]
return np.array(norm)
Si no sabía el pico azul estaba compuesto de dos picos y sólo tenía el pico azul en mis datos, ¿cómo Encuentro el FWHM?
He estado usando este código para encontrar el pico superior:
peak_top = 0.0e-1000
for i in x_axis:
if i > peak_top:
peak_top = i
pude dividir el peak_top
por 2 para encontrar la mitad de la altura y luego tratar de encontrar los valores de y correspondientes a la media altura, pero luego me encontraría en problemas si no hay valores de x que coincidan exactamente con la mitad de la altura.
Estoy bastante seguro de que hay una solución más elegante para la que estoy tratando.
¿Por qué no simplemente calcula la desviación estándar del pico azul y usa su ecuación que relaciona el FWHM con la desviación estándar? –