def N15_testing2():
""" Test direkt the implemented fit method with simulated data."""
x_axis = np.linspace(2850, 2860, 101)*1e6
mod,params = qudi_fitting.make_multiplelorentzian_model(no_of_functions=2)
# print('Parameters of the model',mod.param_names)
p=Parameters()
p.add('l0_amplitude',value=-3e4)
p.add('l0_center',value=2850*1e6+abs(np.random.random(1)*8)*1e6)
# p.add('lorentz0_sigma',value=abs(np.random.random(1)*1)*1e6+0.5*1e6)
p.add('l0_sigma',value=0.5*1e6)
p.add('l1_amplitude',value=p['l0_amplitude'].value)
p.add('l1_center',value=p['l0_center'].value+3.03*1e6)
p.add('l1_sigma',value=p['l0_sigma'].value)
p.add('offset',value=100.)
data_nice = mod.eval(x=x_axis, params=p)
data_noisy=(data_nice + 14000*np.random.normal(size=x_axis.shape))
result = qudi_fitting.make_lorentziandouble_fit(x_axis, data_noisy,
estimator=qudi_fitting.estimate_lorentziandouble_N15)
plt.figure()
plt.plot(x_axis, data_noisy,'-b', label='data')
plt.plot(x_axis, result.init_fit,'-y', label='initial values')
plt.plot(x_axis, result.best_fit,'-r', label='actual fit')
plt.plot(x_axis, data_nice,'-g', label='actual fit')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Counts (#)')
plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
ncol=2, mode="expand", borderaxespad=0.)
plt.show()
评论列表
文章目录