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

2018-08-31  本文已影响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滤波')

```

上一篇下一篇

猜你喜欢

热点阅读