美文网首页
关于形态学基线矫正和滤波:截取中间时段和整段数据是否会有差别?

关于形态学基线矫正和滤波:截取中间时段和整段数据是否会有差别?

作者: 古德蜡克 | 来源:发表于2018-08-31 10:56 被阅读0次

    随机生成1200个点

    1.形态学基线矫正:

    选择第500到1000个点和整段数据点进行比较:

    结论:在500-700个点之间会有差别,在700点之后完全相同

    2.滤波:

    选择500到1200个点和整段数据点结果进行比较

    结论:两者效果完全一致

    贴上代码:

    ```

    import numpy as np

    import random

    from scipyimport signal

    from signal_preprocessimport erosion_multich, dilation_multich, remove_base

    import matplotlib.pyplotas plt

    from matplotlib.font_managerimport FontProperties

    from my_processing_functionimport normalize_function

    g=int(10/0.13)

    data= np.array([random.random()for iin range(1200)])

    data1=data.reshape([-1,1])

    data2= data[500:1000].reshape([-1,1])

    #形态学比较

    remove_data1= remove_base(data1, g)

    remove_data2= remove_base(data2, g)

    remove_data3= np.zeros([len(data1),1])

    for i,kin enumerate(remove_data2):

        remove_data3[i+500]= k

    plt.rcParams['font.sans-serif']= ['SimHei']# 中文字体设置

    plt.rcParams['axes.unicode_minus']= False

    plt.figure()

    plt.plot(list(range(len(data1))), remove_data3,marker='*')

    plt.plot(list(range(len(data1))), remove_data1)

    plt.legend(['截取数据','整段数据'])

    plt.title('形态学基线矫正')

    #滤波效果比较

    f1,f2,fs=0.1,0.2,8

    wn= [2*f1/fs,2*f2/fs]

    b,a= signal.butter(2,wn,'bandpass')

    filter_data1= signal.lfilter(b,a,data1)

    filter_data2= signal.lfilter(b,a,data2)

    filter_data3= np.zeros([len(data1),1])

    for i,kin enumerate(filter_data2):

        filter_data3[i+500]= k

    plt.figure()

    plt.plot(list(range(len(data1))),filter_data3,marker='*')

    plt.plot(list(range(len(data1))),filter_data1)

    plt.legend(['截取数据','整段数据'])

    plt.title('butter滤波')

    ```

    相关文章

      网友评论

          本文标题:关于形态学基线矫正和滤波:截取中间时段和整段数据是否会有差别?

          本文链接:https://www.haomeiwen.com/subject/defswftx.html