fit_logic_standalone.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:qudi 作者: Ulm-IQO 项目源码 文件源码
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()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号