def sine_testing2():
""" Sinus fit testing with the direct fit method. """
x_axis = np.linspace(0, 250, 75)
x_axis1 = np.linspace(250, 500, 75)
x_axis = np.append(x_axis, x_axis1)
x_nice = np.linspace(x_axis[0],x_axis[-1], 1000)
mod, params = qudi_fitting.make_sine_model()
params['phase'].value = np.pi/2 # np.random.uniform()*2*np.pi
params['frequency'].value = 0.01
params['amplitude'].value = 1.5
params['offset'].value = 0.4
data = mod.eval(x=x_axis, params=params)
data_noisy = (mod.eval(x=x_axis, params=params)
+ 1.5* np.random.normal(size=x_axis.shape))
# sorted_indices = x_axis.argsort()
# x_axis = x_axis[sorted_indices]
# data = data[sorted_indices]
# diff_array = np.ediff1d(x_axis)
# print(diff_array)
# print(diff_array.min())
# min_x_diff = diff_array.min()
# if np.isclose(min_x_diff, 0.0):
# index = np.argmin(diff_array)
# print('index',index)
# diff_array = np.delete(diff_array, index)
# print('diff_array',diff_array)
update_dict = {}
update_dict['phase'] = {'vary': False, 'value': np.pi/2.}
result = qudi_fitting.make_sine_fit(x_axis=x_axis, data=data_noisy,
add_params=update_dict)
plt.figure()
# plt.plot(x_axis, data, 'simulate data')
plt.plot(x_axis, data_noisy, label='noisy data')
plt.plot(x_axis, result.init_fit, label='initial data')
plt.plot(x_axis, result.best_fit, label='fit data')
plt.xlabel('time')
plt.ylabel('signal')
plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
ncol=2, mode="expand", borderaxespad=0.)
plt.show()
评论列表
文章目录