Fit
ODMR
ODMR fitting tools.
import nvtools as nv
fitter = nv.ODMRFitter()
# assume you have some ODMR spectrum
mw_frequency = np.array(...)
odmr = np.array(...)
# tries to automatically guess the starting parameters for the fit
fit_results = fitter.fit_odmr_full(mw_frequency, odmr)
# if that does not work, try inputting the frequencies manually:
fit_results = fitter.fit_odmr_full(mw_frequency, odmr, p0_frequency=[<list of eight values>])
# fit_results contains all kinds of useful values
print(fit_results.frequency) # resonance frequency
print(fit_results.contrast) # ODMR contrast
print(fit_results.linewidth) # ODMR linewidth
print(fit_results.r_squared) # R^2 value of the fit
print(fit_results.sensitivity(photon_rate=1e6 * unit.Hz)) # CW ODMR sensitivity
plt.figure()
plt.plot(mw_frequency, odmr)
plt.plot(mw_frequency, fit_results.fit_func) # plot fit function
plt.show()
- class nvtools.fit.odmr.ODMRFitResult(mw_frequency: list, odmr: list, popt: list, pcov: list, perr: list, model: Callable, frequency: float | list[float], contrast: float | list[float], linewidth: float | list[float])[source]
ODMR fit results.
- contrast: float | list[float]
- property fit_func
Fit function values.
- frequency: float | list[float]
- linewidth: float | list[float]
- model: Callable
- mw_frequency: list
- odmr: list
- pcov: list
- perr: list
- popt: list
- property r_squared
R^2 value of fit.
- class nvtools.fit.odmr.ODMRFitter[source]
ODMR fitter.
ODMR Model
ODMR fit models.
- class nvtools.fit.odmr_model.ModelVoigt1[source]
Voigt model with 1 resonance.