关于形态学基线矫正和滤波:截取中间时段和整段数据是否会有差别?
随机生成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滤波')
```